[COMMAND MENU ITEMS] Sync object metadata with navigation command menu items (#19456)
When an object is created or enabled we create a navigation command menu item to that object. And when the object is disabled or deleted, we remove this command menu item.
This commit is contained in:
+16
-2
@@ -1,6 +1,7 @@
|
||||
import { useMutation } from '@apollo/client/react';
|
||||
import { useApolloClient, useMutation } from '@apollo/client/react';
|
||||
import {
|
||||
type UpdateOneObjectInput,
|
||||
FindManyCommandMenuItemsDocument,
|
||||
UpdateOneObjectMetadataItemDocument,
|
||||
} from '~/generated-metadata/graphql';
|
||||
|
||||
@@ -20,9 +21,11 @@ export const useUpdateOneObjectMetadataItem = () => {
|
||||
UpdateOneObjectMetadataItemDocument,
|
||||
);
|
||||
|
||||
const client = useApolloClient();
|
||||
const { handleMetadataError } = useMetadataErrorHandler();
|
||||
const { enqueueErrorSnackBar } = useSnackBar();
|
||||
const { updateInDraft, applyChanges } = useUpdateMetadataStoreDraft();
|
||||
const { updateInDraft, replaceDraft, applyChanges } =
|
||||
useUpdateMetadataStoreDraft();
|
||||
|
||||
const updateOneObjectMetadataItem = async ({
|
||||
idToUpdate,
|
||||
@@ -52,6 +55,17 @@ export const useUpdateOneObjectMetadataItem = () => {
|
||||
objectData as FlatObjectMetadataItem,
|
||||
]);
|
||||
applyChanges();
|
||||
|
||||
const commandMenuItemsResult = await client.query({
|
||||
query: FindManyCommandMenuItemsDocument,
|
||||
fetchPolicy: 'network-only',
|
||||
});
|
||||
|
||||
replaceDraft(
|
||||
'commandMenuItems',
|
||||
commandMenuItemsResult.data?.commandMenuItems ?? [],
|
||||
);
|
||||
applyChanges();
|
||||
}
|
||||
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user