Moves system-level operations (auth, billing, admin) to use the /metadata endpoint instead of /graphql. This cleans up the endpoint separation so /graphql is purely for core objects (Company, People, etc.) and /metadata handles all system operations. Part of prep work for webhook/API key core migration.
48 lines
1.3 KiB
TypeScript
48 lines
1.3 KiB
TypeScript
import { useQuery } from '@apollo/client';
|
|
import { useMemo } from 'react';
|
|
|
|
import { SnackBarVariant } from '@/ui/feedback/snack-bar-manager/components/SnackBar';
|
|
import { useSnackBar } from '@/ui/feedback/snack-bar-manager/hooks/useSnackBar';
|
|
import {
|
|
ObjectMetadataItemsQuery,
|
|
ObjectMetadataItemsQueryVariables,
|
|
} from '~/generated-metadata/graphql';
|
|
import { logError } from '~/utils/logError';
|
|
|
|
import { FIND_MANY_OBJECT_METADATA_ITEMS } from '../graphql/queries';
|
|
import { mapPaginatedObjectMetadataItemsToObjectMetadataItems } from '../utils/mapPaginatedObjectMetadataItemsToObjectMetadataItems';
|
|
|
|
export const useFindManyObjectMetadataItems = ({
|
|
skip,
|
|
}: {
|
|
skip?: boolean;
|
|
} = {}) => {
|
|
const { enqueueSnackBar } = useSnackBar();
|
|
|
|
const { data, loading, error, refetch } = useQuery<
|
|
ObjectMetadataItemsQuery,
|
|
ObjectMetadataItemsQueryVariables
|
|
>(FIND_MANY_OBJECT_METADATA_ITEMS, {
|
|
skip,
|
|
onError: (error) => {
|
|
logError('useFindManyObjectMetadataItems error : ' + error);
|
|
enqueueSnackBar(`${error.message}`, {
|
|
variant: SnackBarVariant.Error,
|
|
});
|
|
},
|
|
});
|
|
|
|
const objectMetadataItems = useMemo(() => {
|
|
return mapPaginatedObjectMetadataItemsToObjectMetadataItems({
|
|
pagedObjectMetadataItems: data,
|
|
});
|
|
}, [data]);
|
|
|
|
return {
|
|
objectMetadataItems,
|
|
loading,
|
|
error,
|
|
refetch,
|
|
};
|
|
};
|