@ -3,6 +3,7 @@ import { formatMetadataObjectInput } from '../utils/formatMetadataObjectInput';
|
|||||||
import { getObjectSlug } from '../utils/getObjectSlug';
|
import { getObjectSlug } from '../utils/getObjectSlug';
|
||||||
|
|
||||||
import { useCreateOneMetadataObject } from './useCreateOneMetadataObject';
|
import { useCreateOneMetadataObject } from './useCreateOneMetadataObject';
|
||||||
|
import { useDeleteOneMetadataObject } from './useDeleteOneMetadataObject';
|
||||||
import { useFindManyMetadataObjects } from './useFindManyMetadataObjects';
|
import { useFindManyMetadataObjects } from './useFindManyMetadataObjects';
|
||||||
import { useUpdateOneMetadataObject } from './useUpdateOneMetadataObject';
|
import { useUpdateOneMetadataObject } from './useUpdateOneMetadataObject';
|
||||||
|
|
||||||
@ -23,6 +24,7 @@ export const useObjectMetadata = () => {
|
|||||||
|
|
||||||
const { createOneMetadataObject } = useCreateOneMetadataObject();
|
const { createOneMetadataObject } = useCreateOneMetadataObject();
|
||||||
const { updateOneMetadataObject } = useUpdateOneMetadataObject();
|
const { updateOneMetadataObject } = useUpdateOneMetadataObject();
|
||||||
|
const { deleteOneMetadataObject } = useDeleteOneMetadataObject();
|
||||||
|
|
||||||
const createObject = (
|
const createObject = (
|
||||||
input: Pick<
|
input: Pick<
|
||||||
@ -54,6 +56,9 @@ export const useObjectMetadata = () => {
|
|||||||
updatePayload: { isActive: false },
|
updatePayload: { isActive: false },
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const eraseObject = (metadataObject: Pick<MetadataObject, 'id'>) =>
|
||||||
|
deleteOneMetadataObject(metadataObject.id);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
activateObject,
|
activateObject,
|
||||||
activeObjects: activeMetadataObjects,
|
activeObjects: activeMetadataObjects,
|
||||||
@ -61,6 +66,7 @@ export const useObjectMetadata = () => {
|
|||||||
disabledObjects: disabledMetadataObjects,
|
disabledObjects: disabledMetadataObjects,
|
||||||
disableObject,
|
disableObject,
|
||||||
editObject,
|
editObject,
|
||||||
|
eraseObject,
|
||||||
findActiveObjectBySlug,
|
findActiveObjectBySlug,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@ -9,15 +9,17 @@ import { DropdownScope } from '@/ui/layout/dropdown/scopes/DropdownScope';
|
|||||||
import { MenuItem } from '@/ui/navigation/menu-item/components/MenuItem';
|
import { MenuItem } from '@/ui/navigation/menu-item/components/MenuItem';
|
||||||
|
|
||||||
type SettingsObjectDisabledMenuDropDownProps = {
|
type SettingsObjectDisabledMenuDropDownProps = {
|
||||||
scopeKey: string;
|
isCustomObject: boolean;
|
||||||
onActivate: () => void;
|
onActivate: () => void;
|
||||||
onErase: () => void;
|
onErase: () => void;
|
||||||
|
scopeKey: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const SettingsObjectDisabledMenuDropDown = ({
|
export const SettingsObjectDisabledMenuDropDown = ({
|
||||||
scopeKey,
|
isCustomObject,
|
||||||
onActivate,
|
onActivate,
|
||||||
onErase,
|
onErase,
|
||||||
|
scopeKey,
|
||||||
}: SettingsObjectDisabledMenuDropDownProps) => {
|
}: SettingsObjectDisabledMenuDropDownProps) => {
|
||||||
const dropdownScopeId = `${scopeKey}-settings-object-disabled-menu-dropdown`;
|
const dropdownScopeId = `${scopeKey}-settings-object-disabled-menu-dropdown`;
|
||||||
|
|
||||||
@ -47,12 +49,14 @@ export const SettingsObjectDisabledMenuDropDown = ({
|
|||||||
LeftIcon={IconArchiveOff}
|
LeftIcon={IconArchiveOff}
|
||||||
onClick={handleActivate}
|
onClick={handleActivate}
|
||||||
/>
|
/>
|
||||||
<MenuItem
|
{isCustomObject && (
|
||||||
text="Erase"
|
<MenuItem
|
||||||
LeftIcon={IconTrash}
|
text="Erase"
|
||||||
accent="danger"
|
LeftIcon={IconTrash}
|
||||||
onClick={handleErase}
|
accent="danger"
|
||||||
/>
|
onClick={handleErase}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
</DropdownMenuItemsContainer>
|
</DropdownMenuItemsContainer>
|
||||||
</DropdownMenu>
|
</DropdownMenu>
|
||||||
}
|
}
|
||||||
|
|||||||
@ -34,7 +34,7 @@ export const SettingsObjects = () => {
|
|||||||
const theme = useTheme();
|
const theme = useTheme();
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
|
||||||
const { activateObject, activeObjects, disabledObjects } =
|
const { activateObject, activeObjects, disabledObjects, eraseObject } =
|
||||||
useObjectMetadata();
|
useObjectMetadata();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@ -47,9 +47,7 @@ export const SettingsObjects = () => {
|
|||||||
title="New object"
|
title="New object"
|
||||||
accent="blue"
|
accent="blue"
|
||||||
size="small"
|
size="small"
|
||||||
onClick={() => {
|
onClick={() => navigate('/settings/objects/new')}
|
||||||
navigate('/settings/objects/new');
|
|
||||||
}}
|
|
||||||
/>
|
/>
|
||||||
</SettingsHeaderContainer>
|
</SettingsHeaderContainer>
|
||||||
<div>
|
<div>
|
||||||
@ -93,9 +91,10 @@ export const SettingsObjects = () => {
|
|||||||
objectItem={objectItem}
|
objectItem={objectItem}
|
||||||
action={
|
action={
|
||||||
<SettingsObjectDisabledMenuDropDown
|
<SettingsObjectDisabledMenuDropDown
|
||||||
|
isCustomObject={objectItem.isCustom}
|
||||||
scopeKey={objectItem.namePlural}
|
scopeKey={objectItem.namePlural}
|
||||||
onActivate={() => activateObject(objectItem)}
|
onActivate={() => activateObject(objectItem)}
|
||||||
onErase={() => undefined}
|
onErase={() => eraseObject(objectItem)}
|
||||||
/>
|
/>
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
|
|||||||
Reference in New Issue
Block a user