2282 Rename components to use the new naming convention part 3 (#2296)

part 3 of the renaming
This commit is contained in:
bosiraphael
2023-10-31 12:38:53 +01:00
committed by GitHub
parent adeaa35e8d
commit a2e84db049
69 changed files with 604 additions and 564 deletions
@@ -1,26 +1,26 @@
import { useMutation } from '@apollo/client';
import { getOperationName } from '@apollo/client/utilities';
import { MetadataObjectIdentifier } from '../types/MetadataObjectIdentifier';
import { ObjectMetadataItemIdentifier } from '../types/ObjectMetadataItemIdentifier';
import { useFindOneMetadataObject } from './useFindOneMetadataObject';
import { useFindOneObjectMetadataItem } from './useFindOneObjectMetadataItem';
export const useCreateOneObject = ({
objectNamePlural,
}: Pick<MetadataObjectIdentifier, 'objectNamePlural'>) => {
}: Pick<ObjectMetadataItemIdentifier, 'objectNamePlural'>) => {
const {
foundMetadataObject,
foundObjectMetadataItem,
objectNotFoundInMetadata,
findManyQuery,
createOneMutation,
} = useFindOneMetadataObject({
} = useFindOneObjectMetadataItem({
objectNamePlural,
});
// TODO: type this with a minimal type at least with Record<string, any>
const [mutate] = useMutation(createOneMutation);
const createOneObject = foundMetadataObject
const createOneObject = foundObjectMetadataItem
? (input: Record<string, any>) => {
return mutate({
variables: {
@@ -2,8 +2,8 @@ import { ApolloClient, useMutation } from '@apollo/client';
import { getOperationName } from '@apollo/client/utilities';
import {
CreateOneMetadataObjectMutation,
CreateOneMetadataObjectMutationVariables,
CreateOneObjectMetadataItemMutation,
CreateOneObjectMetadataItemMutationVariables,
} from '~/generated-metadata/graphql';
import { CREATE_ONE_METADATA_OBJECT } from '../graphql/mutations';
@@ -11,18 +11,18 @@ import { FIND_MANY_METADATA_OBJECTS } from '../graphql/queries';
import { useApolloMetadataClient } from './useApolloMetadataClient';
export const useCreateOneMetadataObject = () => {
export const useCreateOneObjectMetadataItem = () => {
const apolloMetadataClient = useApolloMetadataClient();
const [mutate] = useMutation<
CreateOneMetadataObjectMutation,
CreateOneMetadataObjectMutationVariables
CreateOneObjectMetadataItemMutation,
CreateOneObjectMetadataItemMutationVariables
>(CREATE_ONE_METADATA_OBJECT, {
client: apolloMetadataClient ?? ({} as ApolloClient<any>),
});
const createOneMetadataObject = async (
input: CreateOneMetadataObjectMutationVariables['input']['object'],
const createOneObjectMetadataItem = async (
input: CreateOneObjectMetadataItemMutationVariables['input']['object'],
) => {
return await mutate({
variables: {
@@ -38,6 +38,6 @@ export const useCreateOneMetadataObject = () => {
};
return {
createOneMetadataObject,
createOneObjectMetadataItem,
};
};
@@ -1,26 +1,26 @@
import { useMutation } from '@apollo/client';
import { getOperationName } from '@apollo/client/utilities';
import { MetadataObjectIdentifier } from '../types/MetadataObjectIdentifier';
import { ObjectMetadataItemIdentifier } from '../types/ObjectMetadataItemIdentifier';
import { useFindOneMetadataObject } from './useFindOneMetadataObject';
import { useFindOneObjectMetadataItem } from './useFindOneObjectMetadataItem';
export const useDeleteOneObject = ({
objectNamePlural,
}: Pick<MetadataObjectIdentifier, 'objectNamePlural'>) => {
}: Pick<ObjectMetadataItemIdentifier, 'objectNamePlural'>) => {
const {
foundMetadataObject,
foundObjectMetadataItem,
objectNotFoundInMetadata,
findManyQuery,
deleteOneMutation,
} = useFindOneMetadataObject({
} = useFindOneObjectMetadataItem({
objectNamePlural,
});
// TODO: type this with a minimal type at least with Record<string, any>
const [mutate] = useMutation(deleteOneMutation);
const deleteOneObject = foundMetadataObject
const deleteOneObject = foundObjectMetadataItem
? (input: Record<string, any>) => {
return mutate({
variables: {
@@ -2,8 +2,8 @@ import { ApolloClient, useMutation } from '@apollo/client';
import { getOperationName } from '@apollo/client/utilities';
import {
DeleteOneMetadataObjectMutation,
DeleteOneMetadataObjectMutationVariables,
DeleteOneObjectMetadataItemMutation,
DeleteOneObjectMetadataItemMutationVariables,
} from '~/generated-metadata/graphql';
import { DELETE_ONE_METADATA_OBJECT } from '../graphql/mutations';
@@ -11,18 +11,18 @@ import { FIND_MANY_METADATA_OBJECTS } from '../graphql/queries';
import { useApolloMetadataClient } from './useApolloMetadataClient';
export const useDeleteOneMetadataObject = () => {
export const useDeleteOneObjectMetadataItem = () => {
const apolloMetadataClient = useApolloMetadataClient();
const [mutate] = useMutation<
DeleteOneMetadataObjectMutation,
DeleteOneMetadataObjectMutationVariables
DeleteOneObjectMetadataItemMutation,
DeleteOneObjectMetadataItemMutationVariables
>(DELETE_ONE_METADATA_OBJECT, {
client: apolloMetadataClient ?? ({} as ApolloClient<any>),
});
const deleteOneMetadataObject = async (
idToDelete: DeleteOneMetadataObjectMutationVariables['idToDelete'],
const deleteOneObjectMetadataItem = async (
idToDelete: DeleteOneObjectMetadataItemMutationVariables['idToDelete'],
) => {
return await mutate({
variables: {
@@ -34,6 +34,6 @@ export const useDeleteOneMetadataObject = () => {
};
return {
deleteOneMetadataObject,
deleteOneObjectMetadataItem,
};
};
@@ -2,12 +2,12 @@ import { useMemo } from 'react';
import { useQuery } from '@apollo/client';
import {
MetadataObjectsQuery,
MetadataObjectsQueryVariables,
ObjectMetadataItemsQuery,
ObjectMetadataItemsQueryVariables,
} from '~/generated-metadata/graphql';
import { FIND_MANY_METADATA_OBJECTS } from '../graphql/queries';
import { formatPagedMetadataObjectsToMetadataObjects } from '../utils/formatPagedMetadataObjectsToMetadataObjects';
import { formatPagedObjectMetadataItemsToObjectMetadataItems } from '../utils/formatPagedObjectMetadataItemsToObjectMetadataItems';
import { useApolloMetadataClient } from './useApolloMetadataClient';
@@ -16,8 +16,8 @@ export const useFindAllMetadata = () => {
const apolloMetadataClient = useApolloMetadataClient();
const { data, fetchMore: fetchMoreInternal } = useQuery<
MetadataObjectsQuery,
MetadataObjectsQueryVariables
ObjectMetadataItemsQuery,
ObjectMetadataItemsQueryVariables
>(FIND_MANY_METADATA_OBJECTS, {
client: apolloMetadataClient ?? ({} as any),
skip: !apolloMetadataClient,
@@ -32,14 +32,14 @@ export const useFindAllMetadata = () => {
},
});
const metadataObjects = useMemo(() => {
return formatPagedMetadataObjectsToMetadataObjects({
pagedMetadataObjects: data,
const objectMetadataItems = useMemo(() => {
return formatPagedObjectMetadataItemsToObjectMetadataItems({
pagedObjectMetadataItems: data,
});
}, [data]);
return {
metadataObjects,
objectMetadataItems,
hasMore,
fetchMore,
};
@@ -3,18 +3,18 @@ import { useQuery } from '@apollo/client';
import { useSnackBar } from '@/ui/feedback/snack-bar/hooks/useSnackBar';
import {
MetadataObjectsQuery,
MetadataObjectsQueryVariables,
ObjectMetadataItemsQuery,
ObjectMetadataItemsQueryVariables,
} from '~/generated-metadata/graphql';
import { logError } from '~/utils/logError';
import { FIND_MANY_METADATA_OBJECTS } from '../graphql/queries';
import { formatPagedMetadataObjectsToMetadataObjects } from '../utils/formatPagedMetadataObjectsToMetadataObjects';
import { formatPagedObjectMetadataItemsToObjectMetadataItems } from '../utils/formatPagedObjectMetadataItemsToObjectMetadataItems';
import { useApolloMetadataClient } from './useApolloMetadataClient';
// TODO: test fetchMore
export const useFindManyMetadataObjects = () => {
export const useFindManyObjectMetadataItems = () => {
const apolloMetadataClient = useApolloMetadataClient();
const { enqueueSnackBar } = useSnackBar();
@@ -24,15 +24,15 @@ export const useFindManyMetadataObjects = () => {
fetchMore: fetchMoreInternal,
loading,
error,
} = useQuery<MetadataObjectsQuery, MetadataObjectsQueryVariables>(
} = useQuery<ObjectMetadataItemsQuery, ObjectMetadataItemsQueryVariables>(
FIND_MANY_METADATA_OBJECTS,
{
client: apolloMetadataClient ?? undefined,
skip: !apolloMetadataClient,
onError: (error) => {
logError('useFindManyMetadataObjects error : ' + error);
logError('useFindManyObjectMetadataItems error : ' + error);
enqueueSnackBar(
`Error during useFindManyMetadataObjects, ${error.message}`,
`Error during useFindManyObjectMetadataItems, ${error.message}`,
{
variant: 'error',
},
@@ -51,14 +51,14 @@ export const useFindManyMetadataObjects = () => {
},
});
const metadataObjects = useMemo(() => {
return formatPagedMetadataObjectsToMetadataObjects({
pagedMetadataObjects: data,
const objectMetadataItems = useMemo(() => {
return formatPagedObjectMetadataItemsToObjectMetadataItems({
pagedObjectMetadataItems: data,
});
}, [data]);
return {
metadataObjects,
objectMetadataItems,
hasMore,
fetchMore,
loading,
@@ -4,11 +4,11 @@ import { useQuery } from '@apollo/client';
import { useSnackBar } from '@/ui/feedback/snack-bar/hooks/useSnackBar';
import { logError } from '~/utils/logError';
import { MetadataObjectIdentifier } from '../types/MetadataObjectIdentifier';
import { ObjectMetadataItemIdentifier } from '../types/ObjectMetadataItemIdentifier';
import { PaginatedObjectType } from '../types/PaginatedObjectType';
import { formatPagedObjectsToObjects } from '../utils/formatPagedObjectsToObjects';
import { useFindOneMetadataObject } from './useFindOneMetadataObject';
import { useFindOneObjectMetadataItem } from './useFindOneObjectMetadataItem';
// TODO: test with a wrong name
// TODO: add zod to validate that we have at least id on each object
@@ -19,13 +19,13 @@ export const useFindManyObjects = <
filter,
orderBy,
onCompleted,
}: Pick<MetadataObjectIdentifier, 'objectNamePlural'> & {
}: Pick<ObjectMetadataItemIdentifier, 'objectNamePlural'> & {
filter?: any;
orderBy?: any;
onCompleted?: (data: any) => void;
}) => {
const { foundMetadataObject, objectNotFoundInMetadata, findManyQuery } =
useFindOneMetadataObject({
const { foundObjectMetadataItem, objectNotFoundInMetadata, findManyQuery } =
useFindOneObjectMetadataItem({
objectNamePlural,
});
@@ -34,7 +34,7 @@ export const useFindManyObjects = <
const { data, loading, error } = useQuery<PaginatedObjectType<ObjectType>>(
findManyQuery,
{
skip: !foundMetadataObject,
skip: !foundObjectMetadataItem,
variables: {
filter: filter ?? {},
orderBy: orderBy ?? {},
@@ -1,8 +1,8 @@
import { useQuery } from '@apollo/client';
import { MetadataObjectIdentifier } from '../types/MetadataObjectIdentifier';
import { ObjectMetadataItemIdentifier } from '../types/ObjectMetadataItemIdentifier';
import { useFindOneMetadataObject } from './useFindOneMetadataObject';
import { useFindOneObjectMetadataItem } from './useFindOneObjectMetadataItem';
export const useFindOneObject = <
ObjectType extends { id: string } & Record<string, any>,
@@ -10,12 +10,12 @@ export const useFindOneObject = <
objectNameSingular,
objectId,
onCompleted,
}: Pick<MetadataObjectIdentifier, 'objectNameSingular'> & {
}: Pick<ObjectMetadataItemIdentifier, 'objectNameSingular'> & {
objectId: string | undefined;
onCompleted?: (data: ObjectType) => void;
}) => {
const { foundMetadataObject, objectNotFoundInMetadata, findOneQuery } =
useFindOneMetadataObject({
const { foundObjectMetadataItem, objectNotFoundInMetadata, findOneQuery } =
useFindOneObjectMetadataItem({
objectNameSingular,
});
@@ -23,7 +23,7 @@ export const useFindOneObject = <
{ [nameSingular: string]: ObjectType },
{ objectId: string }
>(findOneQuery, {
skip: !foundMetadataObject || !objectId,
skip: !foundObjectMetadataItem || !objectId,
variables: {
objectId: objectId ?? '',
},
@@ -6,7 +6,7 @@ import { FilterDefinition } from '@/ui/object/object-filter-dropdown/types/Filte
import { SortDefinition } from '@/ui/object/object-sort-dropdown/types/SortDefinition';
import { ColumnDefinition } from '@/ui/object/record-table/types/ColumnDefinition';
import { MetadataObjectIdentifier } from '../types/MetadataObjectIdentifier';
import { ObjectMetadataItemIdentifier } from '../types/ObjectMetadataItemIdentifier';
import { formatMetadataFieldAsColumnDefinition } from '../utils/formatMetadataFieldAsColumnDefinition';
import { formatMetadataFieldAsFilterDefinition } from '../utils/formatMetadataFieldAsFilterDefinition';
import { formatMetadataFieldAsSortDefinition } from '../utils/formatMetadataFieldAsSortDefinition';
@@ -16,15 +16,15 @@ import { generateFindManyCustomObjectsQuery } from '../utils/generateFindManyCus
import { generateFindOneCustomObjectQuery } from '../utils/generateFindOneCustomObjectQuery';
import { generateUpdateOneObjectMutation } from '../utils/generateUpdateOneObjectMutation';
import { useFindManyMetadataObjects } from './useFindManyMetadataObjects';
import { useFindManyObjectMetadataItems } from './useFindManyObjectMetadataItems';
export const useFindOneMetadataObject = ({
export const useFindOneObjectMetadataItem = ({
objectNamePlural,
objectNameSingular,
}: MetadataObjectIdentifier) => {
const { metadataObjects, loading } = useFindManyMetadataObjects();
}: ObjectMetadataItemIdentifier) => {
const { objectMetadataItems, loading } = useFindManyObjectMetadataItems();
const foundMetadataObject = metadataObjects.find(
const foundObjectMetadataItem = objectMetadataItems.find(
(object) =>
object.namePlural === objectNamePlural ||
object.nameSingular === objectNameSingular,
@@ -33,21 +33,21 @@ export const useFindOneMetadataObject = ({
const { icons } = useLazyLoadIcons();
const objectNotFoundInMetadata =
metadataObjects.length === 0 ||
(metadataObjects.length > 0 && !foundMetadataObject);
objectMetadataItems.length === 0 ||
(objectMetadataItems.length > 0 && !foundObjectMetadataItem);
const columnDefinitions: ColumnDefinition<FieldMetadata>[] =
foundMetadataObject?.fields.map((field, index) =>
foundObjectMetadataItem?.fields.map((field, index) =>
formatMetadataFieldAsColumnDefinition({
position: index,
field,
metadataObject: foundMetadataObject,
objectMetadataItem: foundObjectMetadataItem,
icons,
}),
) ?? [];
const filterDefinitions: FilterDefinition[] =
foundMetadataObject?.fields.map((field) =>
foundObjectMetadataItem?.fields.map((field) =>
formatMetadataFieldAsFilterDefinition({
field,
icons,
@@ -55,16 +55,16 @@ export const useFindOneMetadataObject = ({
) ?? [];
const sortDefinitions: SortDefinition[] =
foundMetadataObject?.fields.map((field) =>
foundObjectMetadataItem?.fields.map((field) =>
formatMetadataFieldAsSortDefinition({
field,
icons,
}),
) ?? [];
const findManyQuery = foundMetadataObject
const findManyQuery = foundObjectMetadataItem
? generateFindManyCustomObjectsQuery({
metadataObject: foundMetadataObject,
objectMetadataItem: foundObjectMetadataItem,
})
: gql`
query EmptyQuery {
@@ -72,9 +72,9 @@ export const useFindOneMetadataObject = ({
}
`;
const findOneQuery = foundMetadataObject
const findOneQuery = foundObjectMetadataItem
? generateFindOneCustomObjectQuery({
metadataObject: foundMetadataObject,
objectMetadataItem: foundObjectMetadataItem,
})
: gql`
query EmptyQuery {
@@ -82,9 +82,9 @@ export const useFindOneMetadataObject = ({
}
`;
const createOneMutation = foundMetadataObject
const createOneMutation = foundObjectMetadataItem
? generateCreateOneObjectMutation({
metadataObject: foundMetadataObject,
objectMetadataItem: foundObjectMetadataItem,
})
: gql`
mutation EmptyMutation {
@@ -92,9 +92,9 @@ export const useFindOneMetadataObject = ({
}
`;
const updateOneMutation = foundMetadataObject
const updateOneMutation = foundObjectMetadataItem
? generateUpdateOneObjectMutation({
metadataObject: foundMetadataObject,
objectMetadataItem: foundObjectMetadataItem,
})
: gql`
mutation EmptyMutation {
@@ -103,9 +103,9 @@ export const useFindOneMetadataObject = ({
`;
// TODO: implement backend delete
const deleteOneMutation = foundMetadataObject
const deleteOneMutation = foundObjectMetadataItem
? generateDeleteOneObjectMutation({
metadataObject: foundMetadataObject,
objectMetadataItem: foundObjectMetadataItem,
})
: gql`
mutation EmptyMutation {
@@ -114,7 +114,7 @@ export const useFindOneMetadataObject = ({
`;
return {
foundMetadataObject,
foundObjectMetadataItem,
objectNotFoundInMetadata,
columnDefinitions,
filterDefinitions,
@@ -1,18 +0,0 @@
import { useAvailableScopeIdOrThrow } from '@/ui/utilities/recoil-scope/scopes-internal/hooks/useAvailableScopeId';
import { MetadataObjectScopeInternalContext } from '../scopes/scope-internal-context/MetadataObjectScopeInternalContext';
type UseMetadataObjectProps = {
metadataObjectNamePlural?: string;
};
export const useMetadataObject = (props?: UseMetadataObjectProps) => {
const scopeId = useAvailableScopeIdOrThrow(
MetadataObjectScopeInternalContext,
props?.metadataObjectNamePlural,
);
return {
scopeId,
};
};
@@ -1,73 +0,0 @@
import { MetadataObject } from '../types/MetadataObject';
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';
export const useMetadataObjectForSettings = () => {
const { metadataObjects, loading } = useFindManyMetadataObjects();
const activeMetadataObjects = metadataObjects.filter(
({ isActive }) => isActive,
);
const disabledMetadataObjects = metadataObjects.filter(
({ isActive }) => !isActive,
);
const findActiveMetadataObjectBySlug = (slug: string) =>
activeMetadataObjects.find(
(activeMetadataObject) => getObjectSlug(activeMetadataObject) === slug,
);
const { createOneMetadataObject } = useCreateOneMetadataObject();
const { updateOneMetadataObject } = useUpdateOneMetadataObject();
const { deleteOneMetadataObject } = useDeleteOneMetadataObject();
const createMetadataObject = (
input: Pick<
MetadataObject,
'labelPlural' | 'labelSingular' | 'icon' | 'description'
>,
) => createOneMetadataObject(formatMetadataObjectInput(input));
const editMetadataObject = (
input: Pick<
MetadataObject,
'id' | 'labelPlural' | 'labelSingular' | 'icon' | 'description'
>,
) =>
updateOneMetadataObject({
idToUpdate: input.id,
updatePayload: formatMetadataObjectInput(input),
});
const activateMetadataObject = (metadataObject: Pick<MetadataObject, 'id'>) =>
updateOneMetadataObject({
idToUpdate: metadataObject.id,
updatePayload: { isActive: true },
});
const disableMetadataObject = (metadataObject: Pick<MetadataObject, 'id'>) =>
updateOneMetadataObject({
idToUpdate: metadataObject.id,
updatePayload: { isActive: false },
});
const eraseMetadataObject = (metadataObject: Pick<MetadataObject, 'id'>) =>
deleteOneMetadataObject(metadataObject.id);
return {
activateMetadataObject,
activeMetadataObjects,
createMetadataObject,
disabledMetadataObjects,
disableMetadataObject,
editMetadataObject,
eraseMetadataObject,
findActiveMetadataObjectBySlug,
loading,
};
};
@@ -1,34 +0,0 @@
import { useContext } from 'react';
import { MetadataObjectScopeInternalContext } from '../scopes/scope-internal-context/MetadataObjectScopeInternalContext';
import { useFindOneMetadataObject } from './useFindOneMetadataObject';
export const useMetadataObjectInContext = () => {
const context = useContext(MetadataObjectScopeInternalContext);
if (!context) {
throw new Error(
'Could not find MetadataObjectScopeInternalContext while in useMetadataObjectInContext',
);
}
const {
foundMetadataObject,
loading,
columnDefinitions,
filterDefinitions,
sortDefinitions,
} = useFindOneMetadataObject({
objectNamePlural: context.objectNamePlural,
});
return {
...context,
foundMetadataObject,
loading,
columnDefinitions,
filterDefinitions,
sortDefinitions,
};
};
@@ -0,0 +1,18 @@
import { useAvailableScopeIdOrThrow } from '@/ui/utilities/recoil-scope/scopes-internal/hooks/useAvailableScopeId';
import { ObjectMetadataItemScopeInternalContext } from '../scopes/scope-internal-context/ObjectMetadataItemScopeInternalContext';
type UseObjectMetadataItemProps = {
objectMetadataItemNamePlural?: string;
};
export const useObjectMetadataItem = (props?: UseObjectMetadataItemProps) => {
const scopeId = useAvailableScopeIdOrThrow(
ObjectMetadataItemScopeInternalContext,
props?.objectMetadataItemNamePlural,
);
return {
scopeId,
};
};
@@ -0,0 +1,79 @@
import { ObjectMetadataItem } from '../types/ObjectMetadataItem';
import { formatObjectMetadataItemInput } from '../utils/formatObjectMetadataItemInput';
import { getObjectSlug } from '../utils/getObjectSlug';
import { useCreateOneObjectMetadataItem } from './useCreateOneObjectMetadataItem';
import { useDeleteOneObjectMetadataItem } from './useDeleteOneObjectMetadataItem';
import { useFindManyObjectMetadataItems } from './useFindManyObjectMetadataItems';
import { useUpdateOneObjectMetadataItem } from './useUpdateOneObjectMetadataItem';
export const useObjectMetadataItemForSettings = () => {
const { objectMetadataItems, loading } = useFindManyObjectMetadataItems();
const activeObjectMetadataItems = objectMetadataItems.filter(
({ isActive }) => isActive,
);
const disabledObjectMetadataItems = objectMetadataItems.filter(
({ isActive }) => !isActive,
);
const findActiveObjectMetadataItemBySlug = (slug: string) =>
activeObjectMetadataItems.find(
(activeObjectMetadataItem) =>
getObjectSlug(activeObjectMetadataItem) === slug,
);
const { createOneObjectMetadataItem } = useCreateOneObjectMetadataItem();
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,
};
};
@@ -0,0 +1,34 @@
import { useContext } from 'react';
import { ObjectMetadataItemScopeInternalContext } from '../scopes/scope-internal-context/ObjectMetadataItemScopeInternalContext';
import { useFindOneObjectMetadataItem } from './useFindOneObjectMetadataItem';
export const useObjectMetadataItemInContext = () => {
const context = useContext(ObjectMetadataItemScopeInternalContext);
if (!context) {
throw new Error(
'Could not find ObjectMetadataItemScopeInternalContext while in useObjectMetadataItemInContext',
);
}
const {
foundObjectMetadataItem,
loading,
columnDefinitions,
filterDefinitions,
sortDefinitions,
} = useFindOneObjectMetadataItem({
objectNamePlural: context.objectNamePlural,
});
return {
...context,
foundObjectMetadataItem,
loading,
columnDefinitions,
filterDefinitions,
sortDefinitions,
};
};
@@ -1,15 +1,15 @@
import { isNonEmptyArray } from '~/utils/isNonEmptyArray';
import { useCreateOneMetadataField } from './useCreateOneMetadataField';
import { useCreateOneMetadataObject } from './useCreateOneMetadataObject';
import { useCreateOneObjectMetadataItem } from './useCreateOneObjectMetadataItem';
export const useSeedCustomObjectsTemp = () => {
const { createOneMetadataObject } = useCreateOneMetadataObject();
const { createOneObjectMetadataItem } = useCreateOneObjectMetadataItem();
const { createOneMetadataField } = useCreateOneMetadataField();
return async () => {
const { data: createdMetadataObject, errors } =
await createOneMetadataObject({
const { data: createdObjectMetadataItem, errors } =
await createOneObjectMetadataItem({
labelPlural: 'Suppliers',
labelSingular: 'Supplier',
nameSingular: 'supplier',
@@ -19,7 +19,8 @@ export const useSeedCustomObjectsTemp = () => {
});
if (!isNonEmptyArray(errors)) {
const supplierObjectId = createdMetadataObject?.createOneObject?.id ?? '';
const supplierObjectId =
createdObjectMetadataItem?.createOneObject?.id ?? '';
await createOneMetadataField({
objectId: supplierObjectId,
@@ -1,20 +1,20 @@
import { useMutation } from '@apollo/client';
import { getOperationName } from '@apollo/client/utilities';
import { MetadataObjectIdentifier } from '../types/MetadataObjectIdentifier';
import { ObjectMetadataItemIdentifier } from '../types/ObjectMetadataItemIdentifier';
import { useFindOneMetadataObject } from './useFindOneMetadataObject';
import { useFindOneObjectMetadataItem } from './useFindOneObjectMetadataItem';
export const useUpdateOneObject = ({
objectNamePlural,
objectNameSingular,
}: MetadataObjectIdentifier) => {
}: ObjectMetadataItemIdentifier) => {
const {
foundMetadataObject,
foundObjectMetadataItem,
objectNotFoundInMetadata,
findManyQuery,
updateOneMutation,
} = useFindOneMetadataObject({
} = useFindOneObjectMetadataItem({
objectNamePlural,
objectNameSingular,
});
@@ -24,7 +24,7 @@ export const useUpdateOneObject = ({
refetchQueries: [getOperationName(findManyQuery) ?? ''],
});
const updateOneObject = foundMetadataObject
const updateOneObject = foundObjectMetadataItem
? ({
idToUpdate,
input,
@@ -2,8 +2,8 @@ import { useMutation } from '@apollo/client';
import { getOperationName } from '@apollo/client/utilities';
import {
UpdateOneMetadataObjectMutation,
UpdateOneMetadataObjectMutationVariables,
UpdateOneObjectMetadataItemMutation,
UpdateOneObjectMetadataItemMutationVariables,
} from '~/generated-metadata/graphql';
import { UPDATE_ONE_METADATA_OBJECT } from '../graphql/mutations';
@@ -12,23 +12,23 @@ import { FIND_MANY_METADATA_OBJECTS } from '../graphql/queries';
import { useApolloMetadataClient } from './useApolloMetadataClient';
// TODO: Slice the Apollo store synchronously in the update function instead of subscribing, so we can use update after read in the same function call
export const useUpdateOneMetadataObject = () => {
export const useUpdateOneObjectMetadataItem = () => {
const apolloClientMetadata = useApolloMetadataClient();
const [mutate] = useMutation<
UpdateOneMetadataObjectMutation,
UpdateOneMetadataObjectMutationVariables
UpdateOneObjectMetadataItemMutation,
UpdateOneObjectMetadataItemMutationVariables
>(UPDATE_ONE_METADATA_OBJECT, {
client: apolloClientMetadata ?? undefined,
});
const updateOneMetadataObject = async ({
const updateOneObjectMetadataItem = async ({
idToUpdate,
updatePayload,
}: {
idToUpdate: UpdateOneMetadataObjectMutationVariables['idToUpdate'];
idToUpdate: UpdateOneObjectMetadataItemMutationVariables['idToUpdate'];
updatePayload: Pick<
UpdateOneMetadataObjectMutationVariables['updatePayload'],
UpdateOneObjectMetadataItemMutationVariables['updatePayload'],
| 'description'
| 'icon'
| 'isActive'
@@ -49,6 +49,6 @@ export const useUpdateOneMetadataObject = () => {
};
return {
updateOneMetadataObject,
updateOneObjectMetadataItem,
};
};