Desarrollo de extensiones
Extender los tipos de archivo en el frontend
Para los archivos que ya se han cargado, se puede mostrar un contenido de vista previa diferente en la interfaz según el tipo de archivo. El campo de archivos adjuntos del gestor de archivos incluye una vista previa basada en el navegador (incrustada en un iframe), que admite la vista previa directa en el navegador de la mayoría de los formatos de archivo (imágenes, vídeos, audio y PDF, entre otros). Cuando el formato no es compatible con la vista previa del navegador o se necesita una interacción de vista previa especial, se puede implementar mediante la extensión de componentes de vista previa basados en el tipo de archivo.
Ejemplo
Por ejemplo, si se desea extender el tipo de archivo de imagen con un componente de carrusel, se puede hacer mediante el siguiente código:
Aquí, attachmentFileTypes es el objeto de entrada para extender los tipos de archivo proporcionado por el paquete @nocobase/client, que utiliza el método add proporcionado para extender un objeto de descripción de tipo de archivo.
Cada tipo de archivo debe implementar un método match() para comprobar si cumple los requisitos del tipo de archivo. En el ejemplo, se utiliza el método proporcionado por el paquete mime-match para comprobar la propiedad mimetype del archivo. Si coincide con el tipo image/*, se considera que es el tipo de archivo que debe procesarse. Si no se produce ninguna coincidencia, se recurre al procesamiento de tipos integrado.
La propiedad Previewer del objeto de descripción del tipo es el componente utilizado para la vista previa. Cuando el tipo de archivo coincide, se renderiza este componente para mostrar la vista previa. Por lo general, se recomienda utilizar un componente de tipo ventana emergente como contenedor base (por ejemplo, <Modal />) y colocar dentro de él la vista previa y el contenido interactivo necesario para implementar la funcionalidad de vista previa.
API
attachmentFileTypes
attachmentFileTypes es una instancia global que se importa mediante @nocobase/client:
attachmentFileTypes.add()
Registra un nuevo objeto de descripción de tipo de archivo en el registro de tipos de archivo. El tipo del objeto de descripción es AttachmentFileType.
AttachmentFileType
match()
Método de coincidencia del formato de archivo.
El parámetro file es el objeto de datos del archivo cargado e incluye las siguientes propiedades, que pueden utilizarse para determinar el tipo:
mimetype: descripción del mimetypeextname: extensión del archivo, incluido “.”path: ruta relativa donde se almacena el archivourl: URL del archivo
El valor devuelto es de tipo boolean e indica si se ha producido una coincidencia.
Previewer
Componente React utilizado para mostrar la vista previa del archivo.
Los parámetros de Props son:
index: índice del archivo en la lista de archivos adjuntoslist: lista de archivos adjuntosonSwitchIndex: método utilizado para cambiar el índice
onSwitchIndex puede recibir cualquier valor de índice de una lista para cambiar a otro archivo. Si se utiliza null como parámetro de cambio, el componente de vista previa se cierra directamente.

