* Update SettingsObjectAboutSection.tsx changed "Disable" CTA to "Deactivate" * Update SettingsObjects.tsx Additional changes: Disabled sections to inactive * Update SettingsObjectAboutSection.tsx I think you meant changing Disable to Deactivate * Update and rename SettingsObjectDisabledMenuDropDown.tsx to SettingsObjectInactiveMenuDropDown.tsx additional changes to #4153 * Update SettingsObjects.tsx * Update and rename SettingsObjectDisabledMenuDropDown.stories.tsx to SettingsObjectInactiveMenuDropDown.stories.tsx * fix typescript errors * respect issue requirements --------- Co-authored-by: bosiraphael <raphael.bosi@gmail.com>
101 lines
3.2 KiB
TypeScript
101 lines
3.2 KiB
TypeScript
import { useRecoilValue } from 'recoil';
|
|
|
|
import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState';
|
|
|
|
import { ObjectMetadataItem } from '../types/ObjectMetadataItem';
|
|
import { formatObjectMetadataItemInput } from '../utils/formatObjectMetadataItemInput';
|
|
import { getObjectSlug } from '../utils/getObjectSlug';
|
|
|
|
import { useCreateOneObjectRecordMetadataItem } from './useCreateOneObjectMetadataItem';
|
|
import { useDeleteOneObjectMetadataItem } from './useDeleteOneObjectMetadataItem';
|
|
import { useUpdateOneObjectMetadataItem } from './useUpdateOneObjectMetadataItem';
|
|
|
|
export const useObjectMetadataItemForSettings = () => {
|
|
const objectMetadataItems = useRecoilValue(objectMetadataItemsState);
|
|
|
|
const activeObjectMetadataItems = objectMetadataItems.filter(
|
|
({ isActive, isSystem }) => isActive && !isSystem,
|
|
);
|
|
const inactiveObjectMetadataItems = objectMetadataItems.filter(
|
|
({ isActive, isSystem }) => !isActive && !isSystem,
|
|
);
|
|
|
|
const findActiveObjectMetadataItemBySlug = (slug: string) =>
|
|
activeObjectMetadataItems.find(
|
|
(activeObjectMetadataItem) =>
|
|
getObjectSlug(activeObjectMetadataItem) === slug,
|
|
);
|
|
|
|
const findObjectMetadataItemById = (id: string) =>
|
|
objectMetadataItems.find(
|
|
(objectMetadataItem) => objectMetadataItem.id === id,
|
|
);
|
|
|
|
const findObjectMetadataItemByNamePlural = (namePlural: string) =>
|
|
objectMetadataItems.find(
|
|
(objectMetadataItem) => objectMetadataItem.namePlural === namePlural,
|
|
);
|
|
|
|
const { createOneObjectMetadataItem } =
|
|
useCreateOneObjectRecordMetadataItem();
|
|
const { updateOneObjectMetadataItem } = useUpdateOneObjectMetadataItem();
|
|
const { deleteOneObjectMetadataItem } = useDeleteOneObjectMetadataItem();
|
|
|
|
const createObjectMetadataItem = (
|
|
input: Pick<
|
|
ObjectMetadataItem,
|
|
'labelPlural' | 'labelSingular' | 'icon' | 'description'
|
|
>,
|
|
) => createOneObjectMetadataItem(formatObjectMetadataItemInput(input));
|
|
|
|
const editObjectMetadataItem = (
|
|
input: Pick<
|
|
ObjectMetadataItem,
|
|
| 'description'
|
|
| 'icon'
|
|
| 'id'
|
|
| 'labelIdentifierFieldMetadataId'
|
|
| 'labelPlural'
|
|
| 'labelSingular'
|
|
>,
|
|
) =>
|
|
updateOneObjectMetadataItem({
|
|
idToUpdate: input.id,
|
|
updatePayload: formatObjectMetadataItemInput(input),
|
|
});
|
|
|
|
const activateObjectMetadataItem = (
|
|
objectMetadataItem: Pick<ObjectMetadataItem, 'id'>,
|
|
) =>
|
|
updateOneObjectMetadataItem({
|
|
idToUpdate: objectMetadataItem.id,
|
|
updatePayload: { isActive: true },
|
|
});
|
|
|
|
const disableObjectMetadataItem = (
|
|
objectMetadataItem: Pick<ObjectMetadataItem, 'id'>,
|
|
) =>
|
|
updateOneObjectMetadataItem({
|
|
idToUpdate: objectMetadataItem.id,
|
|
updatePayload: { isActive: false },
|
|
});
|
|
|
|
const eraseObjectMetadataItem = (
|
|
objectMetadataItem: Pick<ObjectMetadataItem, 'id'>,
|
|
) => deleteOneObjectMetadataItem(objectMetadataItem.id);
|
|
|
|
return {
|
|
activateObjectMetadataItem,
|
|
activeObjectMetadataItems,
|
|
createObjectMetadataItem,
|
|
inactiveObjectMetadataItems,
|
|
disableObjectMetadataItem,
|
|
editObjectMetadataItem,
|
|
eraseObjectMetadataItem,
|
|
findActiveObjectMetadataItemBySlug,
|
|
findObjectMetadataItemById,
|
|
findObjectMetadataItemByNamePlural,
|
|
objectMetadataItems,
|
|
};
|
|
};
|