@ -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,
|
||||
};
|
||||
};
|
||||
|
||||
@ -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>
|
||||
}
|
||||
|
||||
@ -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)}
|
||||
/>
|
||||
}
|
||||
/>
|
||||
|
||||
Reference in New Issue
Block a user