[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:
Raphaël Bosi
2026-04-09 10:18:49 +02:00
committed by GitHub
parent f8dff23a3e
commit 9080180156
8 changed files with 630 additions and 35 deletions
@@ -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 {