Refine reupload input behavior
This commit is contained in:
parent
4c96b0c0dc
commit
3e3f163aa9
@ -156,7 +156,13 @@ export default function AdminPhotoMenu({
|
|||||||
/>,
|
/>,
|
||||||
action: () => new Promise(resolve => {
|
action: () => new Promise(resolve => {
|
||||||
onUploadFinishRef.current = resolve;
|
onUploadFinishRef.current = resolve;
|
||||||
inputRef.current?.click();
|
if (inputRef.current) {
|
||||||
|
inputRef.current.value = '';
|
||||||
|
inputRef.current.click();
|
||||||
|
inputRef.current.oncancel = () => resolve(false);
|
||||||
|
} else {
|
||||||
|
resolve();
|
||||||
|
}
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -220,6 +226,7 @@ export default function AdminPhotoMenu({
|
|||||||
}}/>
|
}}/>
|
||||||
<ImageInput
|
<ImageInput
|
||||||
ref={inputRef}
|
ref={inputRef}
|
||||||
|
multiple={false}
|
||||||
onBlobReady={async ({ blob, extension }) =>
|
onBlobReady={async ({ blob, extension }) =>
|
||||||
uploadPhotoFromClient(blob, extension)
|
uploadPhotoFromClient(blob, extension)
|
||||||
.then(updatedStorageUrl =>
|
.then(updatedStorageUrl =>
|
||||||
|
|||||||
@ -202,7 +202,8 @@ export default function AppStateProvider({
|
|||||||
}, [router, pathname]);
|
}, [router, pathname]);
|
||||||
|
|
||||||
// Returns false when upload is cancelled
|
// Returns false when upload is cancelled
|
||||||
const startUpload = useCallback(() => new Promise<boolean>(resolve => {
|
const startUpload = useCallback(() =>
|
||||||
|
new Promise<boolean>(resolve => {
|
||||||
if (uploadInputRef.current) {
|
if (uploadInputRef.current) {
|
||||||
uploadInputRef.current.value = '';
|
uploadInputRef.current.value = '';
|
||||||
uploadInputRef.current.click();
|
uploadInputRef.current.click();
|
||||||
|
|||||||
@ -15,6 +15,7 @@ export default function ImageInput({
|
|||||||
id = 'file',
|
id = 'file',
|
||||||
onStart,
|
onStart,
|
||||||
onBlobReady,
|
onBlobReady,
|
||||||
|
multiple = true,
|
||||||
shouldResize,
|
shouldResize,
|
||||||
maxSize = MAX_IMAGE_SIZE,
|
maxSize = MAX_IMAGE_SIZE,
|
||||||
quality = 0.9,
|
quality = 0.9,
|
||||||
@ -31,6 +32,7 @@ export default function ImageInput({
|
|||||||
hasMultipleUploads?: boolean,
|
hasMultipleUploads?: boolean,
|
||||||
isLastBlob?: boolean,
|
isLastBlob?: boolean,
|
||||||
}) => Promise<any>
|
}) => Promise<any>
|
||||||
|
multiple?: boolean
|
||||||
shouldResize?: boolean
|
shouldResize?: boolean
|
||||||
maxSize?: number
|
maxSize?: number
|
||||||
quality?: number
|
quality?: number
|
||||||
@ -102,7 +104,7 @@ export default function ImageInput({
|
|||||||
className="hidden!"
|
className="hidden!"
|
||||||
accept={ACCEPTED_PHOTO_FILE_TYPES.join(',')}
|
accept={ACCEPTED_PHOTO_FILE_TYPES.join(',')}
|
||||||
disabled={disabled}
|
disabled={disabled}
|
||||||
multiple
|
multiple={multiple}
|
||||||
onChange={async e => {
|
onChange={async e => {
|
||||||
onStart?.();
|
onStart?.();
|
||||||
const { files } = e.currentTarget;
|
const { files } = e.currentTarget;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user