Pengembangan ekstensi
Tipe file di frontend ekstensi
Untuk file yang telah selesai diunggah, antarmuka frontend dapat menampilkan konten pratinjau yang berbeda berdasarkan tipe file. Field lampiran pada pengelola file telah menyediakan pratinjau file berbasis browser (disematkan dalam iframe), yang mendukung pratinjau langsung sebagian besar format file (gambar, video, audio, PDF, dan lainnya) di browser. Jika format file tidak didukung oleh pratinjau browser, atau diperlukan interaksi pratinjau khusus, Anda dapat mewujudkannya dengan memperluas komponen pratinjau berdasarkan tipe file.
Contoh
Misalnya, jika ingin menambahkan komponen carousel untuk file bertipe gambar, Anda dapat menggunakan kode berikut:
Di sini, attachmentFileTypes adalah objek entry untuk memperluas tipe file yang disediakan oleh paket @nocobase/client. Gunakan metode add yang disediakannya untuk memperluas objek deskripsi tipe file.
Setiap tipe file harus mengimplementasikan metode match() untuk memeriksa apakah tipe file memenuhi persyaratan. Pada contoh ini, metode yang disediakan oleh paket mime-match digunakan untuk memeriksa properti mimetype pada file. Jika cocok dengan tipe image/*, file tersebut dianggap sebagai tipe file yang perlu ditangani. Jika tidak cocok, penanganan akan diturunkan ke penanganan tipe bawaan.
Properti Previewer pada objek deskripsi tipe adalah komponen yang digunakan untuk pratinjau. Saat tipe file cocok, komponen tersebut akan dirender untuk pratinjau. Biasanya disarankan menggunakan komponen bertipe dialog sebagai wadah dasar (seperti <Modal />), lalu menempatkan konten pratinjau dan interaksi yang diperlukan ke dalam komponen tersebut untuk mewujudkan fungsi pratinjau.
API
attachmentFileTypes
attachmentFileTypes adalah instance global yang diimpor melalui @nocobase/client:
attachmentFileTypes.add()
Mendaftarkan objek deskripsi tipe file baru ke registry tipe file. Tipe objek deskripsi tersebut adalah AttachmentFileType.
AttachmentFileType
match()
Metode pencocokan format file.
Parameter file yang diteruskan adalah objek data file yang telah diunggah, yang berisi atribut terkait untuk digunakan dalam menentukan tipe:
mimetype: deskripsi mimetypeextname: ekstensi file, termasuk “.”path: jalur relatif penyimpanan fileurl: URL file
Nilai yang dikembalikan bertipe boolean, yang menunjukkan hasil apakah terjadi kecocokan.
Previewer
Komponen React yang digunakan untuk mempratinjau file.
Parameter Props yang diteruskan:
index: indeks file dalam daftar lampiranlist: daftar lampiranonSwitchIndex: metode untuk mengganti indeks
onSwitchIndex dapat menerima nilai indeks apa pun dalam list untuk beralih ke file lain. Jika menggunakan null sebagai parameter untuk beralih, komponen pratinjau akan langsung ditutup.

