Разработка расширений
Типы файлов на фронтенде
Для уже загруженных файлов в интерфейсе можно отображать разное содержимое предпросмотра в зависимости от типа файла. Поле вложений менеджера файлов включает встроенный предпросмотр в браузере (встроенный в iframe), который поддерживает просмотр непосредственно в браузере большинства форматов файлов (изображений, видео, аудио, PDF и других). Если формат файла не поддерживается браузером или требуется особое взаимодействие при предпросмотре, можно расширить компонент предпросмотра на основе типа файла.
Пример
Например, чтобы добавить компонент переключения изображений в формате карусели, можно использовать следующий код:
Здесь attachmentFileTypes — объект входа для расширения типов файлов, предоставляемый пакетом @nocobase/client; с помощью его метода add можно расширить объект описания типа файла.
Каждый тип файла должен реализовать метод match() для проверки соответствия требованиям типа файла. В примере с помощью метода, предоставляемого пакетом mime-match, проверяется свойство файла mimetype. Если оно соответствует типу image/*, файл считается требующим обработки. Если соответствие не найдено, используется встроенная обработка типа файла.
Свойство Previewer объекта описания типа представляет собой компонент предпросмотра. При совпадении типа файла этот компонент будет отрисован для предпросмотра. Обычно рекомендуется использовать в качестве базового к онтейнера компонент в виде всплывающего окна (например, <Modal />), а затем помещать в него содержимое для предпросмотра и взаимодействия, реализуя функцию предпросмотра.
API
attachmentFileTypes
attachmentFileTypes — глобальный экземпляр, импортируемый через @nocobase/client:
attachmentFileTypes.add()
Регистрация нового объекта описания типа файла в реестре типов файлов. Тип объекта описания — AttachmentFileType.
AttachmentFileType
match()
Метод сопоставления формата файла.
Передаваемый параметр file — объект данных загруженного файла, содержащий связанные свойства, которые можно использовать для определения типа:
mimetype: описание mimetypeextname: расширение файла, включая «.»path: относительный путь хранения файлаurl: URL файла
Возвращаемое значение имеет тип boolean и указывает на результат сопоставления.
Previewer
React-компонент для предпросмотр а файла.
Передаваемые параметры Props:
index: индекс файла в списке вложенийlist: список вложенийonSwitchIndex: метод переключения индекса
В onSwitchIndex можно передать любое значение индекса из list, чтобы переключиться на другой файл. Если для переключения в качестве параметра используется null, компонент предпросмотра будет закрыт напрямую.

