|
@@ -11,6 +11,7 @@ type Props = {
|
|
|
acceptedUploadFileType: AcceptedUploadFileType,
|
|
acceptedUploadFileType: AcceptedUploadFileType,
|
|
|
children?: ReactNode,
|
|
children?: ReactNode,
|
|
|
onUpload?: (files: File[]) => void,
|
|
onUpload?: (files: File[]) => void,
|
|
|
|
|
+ onClose?: () => void,
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
export const AttachmentsDropdownItem = (props: Props): JSX.Element => {
|
|
export const AttachmentsDropdownItem = (props: Props): JSX.Element => {
|
|
@@ -19,6 +20,7 @@ export const AttachmentsDropdownItem = (props: Props): JSX.Element => {
|
|
|
acceptedUploadFileType,
|
|
acceptedUploadFileType,
|
|
|
children,
|
|
children,
|
|
|
onUpload,
|
|
onUpload,
|
|
|
|
|
+ onClose,
|
|
|
} = props;
|
|
} = props;
|
|
|
|
|
|
|
|
const {
|
|
const {
|
|
@@ -26,17 +28,24 @@ export const AttachmentsDropdownItem = (props: Props): JSX.Element => {
|
|
|
getInputProps,
|
|
getInputProps,
|
|
|
open,
|
|
open,
|
|
|
} = useFileDropzone({
|
|
} = useFileDropzone({
|
|
|
- onUpload,
|
|
|
|
|
|
|
+ // close after uploading
|
|
|
|
|
+ // https://github.com/weseek/growi/pull/8564
|
|
|
|
|
+ onUpload: (files: File[]) => { onUpload?.(files); onClose?.() },
|
|
|
acceptedUploadFileType,
|
|
acceptedUploadFileType,
|
|
|
dropzoneOpts: {
|
|
dropzoneOpts: {
|
|
|
- noClick: true, noDrag: true, noKeyboard: true,
|
|
|
|
|
|
|
+ noClick: true,
|
|
|
|
|
+ noDrag: true,
|
|
|
|
|
+ noKeyboard: true,
|
|
|
|
|
+ // close after cancelling
|
|
|
|
|
+ // https://github.com/weseek/growi/pull/8564
|
|
|
|
|
+ onFileDialogCancel: onClose,
|
|
|
},
|
|
},
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
return (
|
|
return (
|
|
|
<div {...getRootProps()} className="dropzone">
|
|
<div {...getRootProps()} className="dropzone">
|
|
|
<input {...getInputProps()} />
|
|
<input {...getInputProps()} />
|
|
|
- <DropdownItem className="d-flex gap-2 align-items-center" onClick={open}>
|
|
|
|
|
|
|
+ <DropdownItem toggle={false} className="d-flex gap-2 align-items-center" onClick={open}>
|
|
|
{children}
|
|
{children}
|
|
|
</DropdownItem>
|
|
</DropdownItem>
|
|
|
</div>
|
|
</div>
|