Feat/metadata add update and delete on frontend (#2102)

* Reworked metadata creation

* Wip

* Fix from PR

* Removed consolelog

* Post merge

* Fixed seeds
This commit is contained in:
Lucas Bordeau
2023-10-18 16:48:11 +02:00
committed by GitHub
parent 21c2834f52
commit 547a17b145
23 changed files with 482 additions and 77 deletions

View File

@ -0,0 +1,60 @@
import { useMemo } from 'react';
import { useQuery } from '@apollo/client';
import {
MetadataObjectsQuery,
MetadataObjectsQueryVariables,
} from '~/generated-metadata/graphql';
import { FIND_MANY_METADATA_OBJECTS } from '../graphql/queries';
import { formatPagedMetadataObjectsToMetadataObjects } from '../utils/formatPagedMetadataObjectsToMetadataObjects';
import { useApolloMetadataClient } from './useApolloMetadataClient';
// TODO: test fetchMore
export const useFindManyMetadataObjects = () => {
const apolloMetadataClient = useApolloMetadataClient();
const { data, fetchMore: fetchMoreInternal } = useQuery<
MetadataObjectsQuery,
MetadataObjectsQueryVariables
>(FIND_MANY_METADATA_OBJECTS, {
client: apolloMetadataClient ?? undefined,
skip: !apolloMetadataClient,
});
const hasMore = data?.objects?.pageInfo?.hasNextPage;
const fetchMore = () =>
fetchMoreInternal({
variables: {
afterCursor: data?.objects?.pageInfo?.endCursor,
},
});
const metadataObjects = useMemo(() => {
return formatPagedMetadataObjectsToMetadataObjects({
pagedMetadataObjects: data,
});
}, [data]);
const getMetadataObjectsFromCache = () => {
const queryResult = apolloMetadataClient?.readQuery<
MetadataObjectsQuery,
MetadataObjectsQueryVariables
>({
query: FIND_MANY_METADATA_OBJECTS,
});
return formatPagedMetadataObjectsToMetadataObjects({
pagedMetadataObjects: queryResult ?? undefined,
});
};
return {
metadataObjects,
hasMore,
fetchMore,
getMetadataObjectsFromCache,
};
};