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
? generateDeleteOneObjectMutation({
objectMetadataItem: foundObjectMetadataItem,

View File

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

View File

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