fixed: Media Library - Can`t delete empty folder #17263

This commit is contained in:
so_hell 2023-07-12 12:31:53 +05:30
parent 670f4a65e1
commit fe2b24bcc1

View File

@ -147,152 +147,150 @@ export const EditFolderDialog = ({ onClose, folder, location, parentFolderId })
} }
return ( return (
<> <ModalLayout onClose={() => onClose()} labelledBy="title">
<ModalLayout onClose={() => onClose()} labelledBy="title"> <Formik
<Formik validationSchema={folderSchema}
validationSchema={folderSchema} validateOnChange={false}
validateOnChange={false} onSubmit={handleSubmit}
onSubmit={handleSubmit} initialValues={initialFormData}
initialValues={initialFormData} >
> {({ values, errors, handleChange, setFieldValue }) => (
{({ values, errors, handleChange, setFieldValue }) => ( <Form noValidate>
<Form noValidate> <EditFolderModalHeader isEditing={isEditing} />
<EditFolderModalHeader isEditing={isEditing} />
<ModalBody> <ModalBody>
<Grid gap={4}> <Grid gap={4}>
{isEditing && ( {isEditing && (
<GridItem xs={12} col={12}> <GridItem xs={12} col={12}>
<ContextInfo <ContextInfo
blocks={[ blocks={[
{ {
label: formatMessage({ label: formatMessage({
id: getTrad('modal.folder.create.elements'), id: getTrad('modal.folder.create.elements'),
defaultMessage: 'Elements', defaultMessage: 'Elements',
}), }),
value: formatMessage( value: formatMessage(
{ {
id: getTrad('modal.folder.elements.count'), id: getTrad('modal.folder.elements.count'),
defaultMessage: '{folderCount} folders, {assetCount} assets', defaultMessage: '{folderCount} folders, {assetCount} assets',
}, },
{ {
assetCount: folder?.files?.count ?? 0, assetCount: folder?.files?.count ?? 0,
folderCount: folder?.children?.count ?? 0, folderCount: folder?.children?.count ?? 0,
} }
), ),
}, },
{ {
label: formatMessage({ label: formatMessage({
id: getTrad('modal.folder.create.creation-date'), id: getTrad('modal.folder.create.creation-date'),
defaultMessage: 'Creation Date', defaultMessage: 'Creation Date',
}), }),
value: formatDate(new Date(folder.createdAt)), value: formatDate(new Date(folder.createdAt)),
}, },
]} ]}
/>
</GridItem>
)}
<GridItem xs={12} col={6}>
<TextInput
label={formatMessage({
id: getTrad('form.input.label.folder-name'),
defaultMessage: 'Name',
})}
name="name"
value={values.name}
error={errors.name}
onChange={handleChange}
disabled={formDisabled}
/> />
</GridItem> </GridItem>
)}
<GridItem xs={12} col={6}> <GridItem xs={12} col={6}>
<Flex direction="column" alignItems="stretch" gap={1}> <TextInput
<FieldLabel htmlFor="folder-parent"> label={formatMessage({
{formatMessage({ id: getTrad('form.input.label.folder-name'),
id: getTrad('form.input.label.folder-location'), defaultMessage: 'Name',
defaultMessage: 'Location', })}
})} name="name"
</FieldLabel> value={values.name}
error={errors.name}
onChange={handleChange}
disabled={formDisabled}
/>
</GridItem>
<SelectTree <GridItem xs={12} col={6}>
options={folderStructure} <Flex direction="column" alignItems="stretch" gap={1}>
onChange={(value) => { <FieldLabel htmlFor="folder-parent">
setFieldValue('parent', value); {formatMessage({
}} id: getTrad('form.input.label.folder-location'),
isDisabled={formDisabled} defaultMessage: 'Location',
defaultValue={values.parent} })}
name="parent" </FieldLabel>
menuPortalTarget={document.querySelector('body')}
inputId="folder-parent"
disabled={formDisabled}
error={errors?.parent}
ariaErrorMessage="folder-parent-error"
/>
{errors.parent && ( <SelectTree
<Typography options={folderStructure}
variant="pi" onChange={(value) => {
as="p" setFieldValue('parent', value);
id="folder-parent-error" }}
textColor="danger600" isDisabled={formDisabled}
> defaultValue={values.parent}
{errors.parent} name="parent"
</Typography> menuPortalTarget={document.querySelector('body')}
)} inputId="folder-parent"
</Flex>
</GridItem>
</Grid>
</ModalBody>
<ModalFooter
startActions={
<Button onClick={() => onClose()} variant="tertiary" name="cancel">
{formatMessage({ id: 'cancel', defaultMessage: 'Cancel' })}
</Button>
}
endActions={
<Flex gap={2}>
{isEditing && canUpdate && (
<Button
type="button"
variant="danger-light"
onClick={() => setShowConfirmDialog(true)}
name="delete"
disabled={!canUpdate || isEditFolderLoading}
>
{formatMessage({
id: getTrad('modal.folder.create.delete'),
defaultMessage: 'Delete folder',
})}
</Button>
)}
<Button
name="submit"
loading={isEditFolderLoading}
disabled={formDisabled} disabled={formDisabled}
type="submit" error={errors?.parent}
> ariaErrorMessage="folder-parent-error"
{formatMessage( />
isEditing
? { id: getTrad('modal.folder.edit.submit'), defaultMessage: 'Save' } {errors.parent && (
: { id: getTrad('modal.folder.create.submit'), defaultMessage: 'Create' } <Typography
)} variant="pi"
</Button> as="p"
id="folder-parent-error"
textColor="danger600"
>
{errors.parent}
</Typography>
)}
</Flex> </Flex>
} </GridItem>
/> </Grid>
</Form> </ModalBody>
)}
</Formik> <ModalFooter
</ModalLayout> startActions={
<Button onClick={() => onClose()} variant="tertiary" name="cancel">
{formatMessage({ id: 'cancel', defaultMessage: 'Cancel' })}
</Button>
}
endActions={
<Flex gap={2}>
{isEditing && canUpdate && (
<Button
type="button"
variant="danger-light"
onClick={() => setShowConfirmDialog(true)}
name="delete"
disabled={!canUpdate || isEditFolderLoading}
>
{formatMessage({
id: getTrad('modal.folder.create.delete'),
defaultMessage: 'Delete folder',
})}
</Button>
)}
<Button
name="submit"
loading={isEditFolderLoading}
disabled={formDisabled}
type="submit"
>
{formatMessage(
isEditing
? { id: getTrad('modal.folder.edit.submit'), defaultMessage: 'Save' }
: { id: getTrad('modal.folder.create.submit'), defaultMessage: 'Create' }
)}
</Button>
</Flex>
}
/>
</Form>
)}
</Formik>
{showConfirmDialog && ( {showConfirmDialog && (
<RemoveFolderDialog onClose={() => setShowConfirmDialog(false)} onConfirm={handleDelete} /> <RemoveFolderDialog onClose={() => setShowConfirmDialog(false)} onConfirm={handleDelete} />
)} )}
</> </ModalLayout>
); );
}; };