Plug filter delete to backend (#2303)

* plug-filter-delete-to-backend

* delete console
This commit is contained in:
bosiraphael
2023-10-31 18:06:43 +01:00
committed by GitHub
parent f9920d2f24
commit 951680113e
3 changed files with 26 additions and 10 deletions

View File

@ -102,7 +102,6 @@ export const useFindOneObjectMetadataItem = ({
} }
`; `;
// TODO: implement backend delete
const deleteOneMutation = foundObjectMetadataItem const deleteOneMutation = foundObjectMetadataItem
? generateDeleteOneObjectMutation({ ? generateDeleteOneObjectMutation({
objectMetadataItem: foundObjectMetadataItem, objectMetadataItem: foundObjectMetadataItem,

View File

@ -4,7 +4,6 @@ import { capitalize } from '~/utils/string/capitalize';
import { ObjectMetadataItem } from '../types/ObjectMetadataItem'; import { ObjectMetadataItem } from '../types/ObjectMetadataItem';
// TODO: implement
export const generateDeleteOneObjectMutation = ({ export const generateDeleteOneObjectMutation = ({
objectMetadataItem, objectMetadataItem,
}: { }: {
@ -13,8 +12,8 @@ export const generateDeleteOneObjectMutation = ({
const capitalizedObjectName = capitalize(objectMetadataItem.nameSingular); const capitalizedObjectName = capitalize(objectMetadataItem.nameSingular);
return gql` return gql`
mutation DeleteOne${capitalizedObjectName}($input: ${capitalizedObjectName}DeleteInput!) { mutation DeleteOne${capitalizedObjectName}($idToDelete: ID!) {
createOne${capitalizedObjectName}(data: $input) { deleteOne${capitalizedObjectName}(id: $idToDelete) {
id id
} }
} }

View File

@ -14,10 +14,14 @@ import { ViewFilter } from '@/views/types/ViewFilter';
import { useViewSetStates } from '../useViewSetStates'; import { useViewSetStates } from '../useViewSetStates';
export const useViewFilters = (viewScopeId: string) => { export const useViewFilters = (viewScopeId: string) => {
const { updateOneMutation, createOneMutation, findManyQuery } = const {
useFindOneObjectMetadataItem({ updateOneMutation,
objectNameSingular: 'viewFilterV2', createOneMutation,
}); deleteOneMutation,
findManyQuery,
} = useFindOneObjectMetadataItem({
objectNameSingular: 'viewFilterV2',
});
const apolloClient = useApolloClient(); const apolloClient = useApolloClient();
const { setCurrentViewFilters } = useViewSetStates(viewScopeId); const { setCurrentViewFilters } = useViewSetStates(viewScopeId);
@ -76,7 +80,16 @@ export const useViewFilters = (viewScopeId: string) => {
const deleteViewFilters = (viewFilterIdsToDelete: string[]) => { const deleteViewFilters = (viewFilterIdsToDelete: string[]) => {
if (!viewFilterIdsToDelete.length) return; if (!viewFilterIdsToDelete.length) return;
// Todo return Promise.all(
viewFilterIdsToDelete.map((viewFilterId) =>
apolloClient.mutate({
mutation: deleteOneMutation,
variables: {
idToDelete: viewFilterId,
},
}),
),
);
}; };
const currentViewFilters = snapshot const currentViewFilters = snapshot
@ -121,7 +134,11 @@ export const useViewFilters = (viewScopeId: string) => {
const filterKeysToDelete = Object.keys(savedViewFiltersByKey).filter( const filterKeysToDelete = Object.keys(savedViewFiltersByKey).filter(
(previousFilterKey) => !filterKeys.includes(previousFilterKey), (previousFilterKey) => !filterKeys.includes(previousFilterKey),
); );
await deleteViewFilters(filterKeysToDelete); const filterIdsToDelete = filterKeysToDelete.map(
(filterKeyToDelete) =>
savedViewFiltersByKey[filterKeyToDelete].id ?? '',
);
await deleteViewFilters(filterIdsToDelete);
set( set(
savedViewFiltersScopedFamilyState({ savedViewFiltersScopedFamilyState({
scopeId: viewScopeId, scopeId: viewScopeId,
@ -133,6 +150,7 @@ export const useViewFilters = (viewScopeId: string) => {
[ [
apolloClient, apolloClient,
createOneMutation, createOneMutation,
deleteOneMutation,
findManyQuery, findManyQuery,
updateOneMutation, updateOneMutation,
viewScopeId, viewScopeId,