@paroicms/bo-media-gallery
Version:
Basic media gallery react component for Paroi CMS.
26 lines (25 loc) • 1.07 kB
TypeScript
import type { Image, Media } from "@paroicms/public-anywhere-lib";
import type { HttpUploadMediaValue } from "../gallery-types.js";
import type { UploadingFileHandler } from "./http-upload.js";
import type { UploadingFile } from "./internal.types.js";
export interface UseUploadHandlerOptions {
mediaHandle: string;
acceptFilter?: (file: File) => boolean;
getMedias: (handle: string) => Promise<(Media | Image)[]>;
limitManager?: UploadLimitManager;
httpUploadMedia: ({ file, handle, attachedData, }: HttpUploadMediaValue) => UploadingFileHandler<Media | Image>;
}
export interface UploadLimitManager {
remainingMediaPlaces?: number;
updateMediaCount: (ev: {
handle: string;
count: number;
}) => void;
}
export interface UploadMediaHandler {
uploadFiles: (fileList: File[]) => Promise<(Media | Image | undefined)[]>;
uploadingFiles: UploadingFile[];
medias: (Media | Image)[];
refreshMedias: () => Promise<void>;
}
export declare function useUploadHandler(props: UseUploadHandlerOptions): UploadMediaHandler;