UNPKG

ar-design

Version:

AR Design is a (react | nextjs) ui library.

113 lines (112 loc) 2.71 kB
import { AllowedTypes } from "../../../libs/types"; import { IDisabled, IValidation } from "../../../libs/types/IGlobalProps"; interface IMultiple { /** * Yüklenen dosyalar dizisi. * * Örneğin; * * ```jsx * <Upload * file={[file1, file2]} * multiple={true} * onChange={(formData, files, isInvalid) => {}} * /> * ``` */ file: File[]; /** * Dosya seçimi veya değişikliğinde tetiklenen fonksiyon. * * @param formData - Dosyalarla oluşturulmuş FormData nesnesi. * @param files - Seçilen dosyalar dizisi. * @param isInvalidFileExist - Geçersiz dosya olup olmadığını belirtir. * * Örneğin; * * ```jsx * <Upload * onChange={(formData, files, isInvalid) => { * console.log(files.length, isInvalid); * }} * /> * ``` */ onChange: (formData: FormData, files: File[], base64: string[], isInvalidFileExist: boolean) => void; /** * Çoklu dosya seçiminin aktif olduğunu belirtir. * * Örneğin; * ```jsx * <Upload multiple={true} /> * ``` */ multiple: true; } interface ISingle { /** * Yüklenen tek dosya veya undefined. * * Örneğin; * * ```jsx * <Upload file={selectedFile} /> * ``` */ file: File | undefined; /** * Dosya seçimi veya değişikliğinde tetiklenen fonksiyon. * * @param formData - Dosyayla oluşturulmuş FormData nesnesi veya undefined. * @param files - Seçilen dosya veya null. * * Örneğin; * * ```jsx * <Upload onChange={(formData, file) => console.log(file)} /> * ``` */ onChange: (formData: FormData | undefined, files: File | null, base64: string) => void; /** * Çoklu dosya seçiminin devre dışı olduğunu belirtir. * * Örneğin; * * ```jsx * <Upload multiple={false} /> * ``` */ multiple?: false; } type Props = { /** * Bileşen ile ilgili açıklayıcı veya gösterilecek metin. * * Örneğin; * * ```jsx * <Upload text="Dosya yükle" /> * ``` */ text: string; /** * Kabul edilen dosya türlerinin listesi. * * Örneğin; * ```jsx * <Upload allowedTypes={["image/png", "application/pdf"]} /> * ``` */ allowedTypes?: AllowedTypes[]; /** * Kabul edilen maksimum dosya boyutu (byte cinsinden). * * Örneğin; * * ```jsx * <Upload maxSize={1} /> // 1 MB * ``` */ maxSize?: number; } & (IMultiple | ISingle) & IValidation & IDisabled; export default Props;