2282 Rename components to use the new naming convention part 3 (#2296)
part 3 of the renaming
This commit is contained in:
@@ -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: {
|
||||
|
||||
+8
-8
@@ -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: {
|
||||
|
||||
+8
-8
@@ -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,
|
||||
};
|
||||
|
||||
+11
-11
@@ -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 ?? '',
|
||||
},
|
||||
|
||||
+23
-23
@@ -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,
|
||||
|
||||
+9
-9
@@ -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,
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user