feat: remove disabled custom objects (#2247)

Closes #2147
This commit is contained in:
Thaïs
2023-10-27 11:08:02 +02:00
committed by GitHub
parent 3f2e1b622e
commit 3d5ee6d7ca
3 changed files with 22 additions and 13 deletions

View File

@ -3,6 +3,7 @@ import { formatMetadataObjectInput } from '../utils/formatMetadataObjectInput';
import { getObjectSlug } from '../utils/getObjectSlug';
import { useCreateOneMetadataObject } from './useCreateOneMetadataObject';
import { useDeleteOneMetadataObject } from './useDeleteOneMetadataObject';
import { useFindManyMetadataObjects } from './useFindManyMetadataObjects';
import { useUpdateOneMetadataObject } from './useUpdateOneMetadataObject';
@ -23,6 +24,7 @@ export const useObjectMetadata = () => {
const { createOneMetadataObject } = useCreateOneMetadataObject();
const { updateOneMetadataObject } = useUpdateOneMetadataObject();
const { deleteOneMetadataObject } = useDeleteOneMetadataObject();
const createObject = (
input: Pick<
@ -54,6 +56,9 @@ export const useObjectMetadata = () => {
updatePayload: { isActive: false },
});
const eraseObject = (metadataObject: Pick<MetadataObject, 'id'>) =>
deleteOneMetadataObject(metadataObject.id);
return {
activateObject,
activeObjects: activeMetadataObjects,
@ -61,6 +66,7 @@ export const useObjectMetadata = () => {
disabledObjects: disabledMetadataObjects,
disableObject,
editObject,
eraseObject,
findActiveObjectBySlug,
};
};

View File

@ -9,15 +9,17 @@ import { DropdownScope } from '@/ui/layout/dropdown/scopes/DropdownScope';
import { MenuItem } from '@/ui/navigation/menu-item/components/MenuItem';
type SettingsObjectDisabledMenuDropDownProps = {
scopeKey: string;
isCustomObject: boolean;
onActivate: () => void;
onErase: () => void;
scopeKey: string;
};
export const SettingsObjectDisabledMenuDropDown = ({
scopeKey,
isCustomObject,
onActivate,
onErase,
scopeKey,
}: SettingsObjectDisabledMenuDropDownProps) => {
const dropdownScopeId = `${scopeKey}-settings-object-disabled-menu-dropdown`;
@ -47,12 +49,14 @@ export const SettingsObjectDisabledMenuDropDown = ({
LeftIcon={IconArchiveOff}
onClick={handleActivate}
/>
<MenuItem
text="Erase"
LeftIcon={IconTrash}
accent="danger"
onClick={handleErase}
/>
{isCustomObject && (
<MenuItem
text="Erase"
LeftIcon={IconTrash}
accent="danger"
onClick={handleErase}
/>
)}
</DropdownMenuItemsContainer>
</DropdownMenu>
}

View File

@ -34,7 +34,7 @@ export const SettingsObjects = () => {
const theme = useTheme();
const navigate = useNavigate();
const { activateObject, activeObjects, disabledObjects } =
const { activateObject, activeObjects, disabledObjects, eraseObject } =
useObjectMetadata();
return (
@ -47,9 +47,7 @@ export const SettingsObjects = () => {
title="New object"
accent="blue"
size="small"
onClick={() => {
navigate('/settings/objects/new');
}}
onClick={() => navigate('/settings/objects/new')}
/>
</SettingsHeaderContainer>
<div>
@ -93,9 +91,10 @@ export const SettingsObjects = () => {
objectItem={objectItem}
action={
<SettingsObjectDisabledMenuDropDown
isCustomObject={objectItem.isCustom}
scopeKey={objectItem.namePlural}
onActivate={() => activateObject(objectItem)}
onErase={() => undefined}
onErase={() => eraseObject(objectItem)}
/>
}
/>