Plug filter delete to backend (#2303)
* plug-filter-delete-to-backend * delete console
This commit is contained in:
@ -102,7 +102,6 @@ export const useFindOneObjectMetadataItem = ({
|
|||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
// TODO: implement backend delete
|
|
||||||
const deleteOneMutation = foundObjectMetadataItem
|
const deleteOneMutation = foundObjectMetadataItem
|
||||||
? generateDeleteOneObjectMutation({
|
? generateDeleteOneObjectMutation({
|
||||||
objectMetadataItem: foundObjectMetadataItem,
|
objectMetadataItem: foundObjectMetadataItem,
|
||||||
|
|||||||
@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user