import UploadPreview, { PreviewComponentProps, PreviewMethods } from '@rpldy/upload-preview' import { useAbortItem, useItemAbortListener, useItemCancelListener, useItemErrorListener, useItemProgressListener } from '@rpldy/uploady'; import { useState } from 'react' import ScreenShotsThumbnail from './ScreenshotThumbnail' export default function ImagePreviews() { return ( ) } function CustomImagePreview({ id, url }: PreviewComponentProps) { const [progress, setProgress] = useState(0); const [itemState, setItemState] = useState(STATES.PROGRESS); const abortItem = useAbortItem(); useItemProgressListener(item => { if (item.completed > progress) { setProgress(() => item.completed); if (item.completed === 100) { setItemState(STATES.DONE) } else { setItemState(STATES.PROGRESS) } } }, id); useItemAbortListener(item => { setItemState(STATES.CANCELLED); }, id); useItemCancelListener(item => { setItemState(STATES.CANCELLED); }, id); useItemErrorListener(item => { setItemState(STATES.ERROR); }, id); if (itemState === STATES.DONE || itemState === STATES.CANCELLED) return null return { abortItem(id) }} /> // return
// //
//
// {itemState === STATES.PROGRESS && //
// //
} // {itemState === STATES.ERROR && //
// Failed... //
} // {itemState === STATES.CANCELLED && //
// Cancelled //
} //
; }; const STATES = { PROGRESS: "PROGRESS", DONE: "DONE", CANCELLED: "CANCELLED", ERROR: "ERROR" };