mirror of
https://github.com/twentyhq/twenty.git
synced 2026-06-14 10:59:20 -04:00
* Hide System Objects * add filter isSystem: false in FIND_MANY_METADATA_OBJECTS * add filter isSystem: false in FIND_MANY_METADATA_OBJECTS * update generated gql * add filter to useFindManyObjectMetadataItems --------- Co-authored-by: Charles Bochet <charles@twenty.com>
85 lines
2.7 KiB
TypeScript
85 lines
2.7 KiB
TypeScript
import { ObjectMetadataItem } from '../types/ObjectMetadataItem';
|
|
import { formatObjectMetadataItemInput } from '../utils/formatObjectMetadataItemInput';
|
|
import { getObjectSlug } from '../utils/getObjectSlug';
|
|
|
|
import { useCreateOneObjectRecordMetadataItem } from './useCreateOneObjectMetadataItem';
|
|
import { useDeleteOneObjectMetadataItem } from './useDeleteOneObjectMetadataItem';
|
|
import { useFindManyObjectMetadataItems } from './useFindManyObjectMetadataItems';
|
|
import { useUpdateOneObjectMetadataItem } from './useUpdateOneObjectMetadataItem';
|
|
|
|
export const useObjectMetadataItemForSettings = () => {
|
|
const { objectMetadataItems, loading } = useFindManyObjectMetadataItems({
|
|
filter: {
|
|
isSystem: { is: false },
|
|
},
|
|
});
|
|
|
|
const activeObjectMetadataItems = objectMetadataItems.filter(
|
|
({ isActive }) => isActive,
|
|
);
|
|
const disabledObjectMetadataItems = objectMetadataItems.filter(
|
|
({ isActive }) => !isActive,
|
|
);
|
|
|
|
const findActiveObjectMetadataItemBySlug = (slug: string) =>
|
|
activeObjectMetadataItems.find(
|
|
(activeObjectMetadataItem) =>
|
|
getObjectSlug(activeObjectMetadataItem) === slug,
|
|
);
|
|
|
|
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,
|
|
'id' | 'labelPlural' | 'labelSingular' | 'icon' | 'description'
|
|
>,
|
|
) =>
|
|
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,
|
|
disabledObjectMetadataItems,
|
|
disableObjectMetadataItem,
|
|
editObjectMetadataItem,
|
|
eraseObjectMetadataItem,
|
|
findActiveObjectMetadataItemBySlug,
|
|
loading,
|
|
};
|
|
};
|