import { Asset, AssetModalProps, CreateFolder, GetFolders, GetUsers, UploadFiles } from "./common"; export interface OnCustomActionClickParams { folderUid: string; stopLoading: Function; closeModal: Function; } export type OnCustomActionClick = ({ folderUid, stopLoading }: OnCustomActionClickParams) => void; export interface CustomAction { onClick: OnCustomActionClick; label: string; restButtonProps?: { [key: string]: boolean | string | Array | Object; }; } export interface Permissions { create: (parentFolder: any) => boolean; } export interface UploadAssetModalProps extends AssetModalProps { /** * Function called once the user confirms the selection * @param assets {Asset[]} the selected assets * @param rejectedFiles files failing validation * @returns void */ onSubmit: (assets: Asset[], rejectedFiles: { message: string; code: string; file: File; }[]) => void; getFolders: GetFolders; getUsers: GetUsers; createFolder: CreateFolder; upload: UploadFiles; getFilesFromFileSystem?: boolean; permissions?: Permissions; actions?: CustomAction[]; }