4b3a46d953
- Removes the intermediate `CommandMenuItemConfig` / `CommandConfigContext` / `CommandMenuItemDisplay` abstraction layers, replacing them with a single `CommandMenuItemRenderer` that renders directly from the command menu items from the backend - Eliminates the server-items/ subdirectory by moving its contents (hooks/, contexts/, states/, display/, edit/) up into the parent command-menu-item/ module, removing an unnecessary nesting level.
22 lines
725 B
TypeScript
22 lines
725 B
TypeScript
import { useCallback } from 'react';
|
|
import { useStore } from 'jotai';
|
|
|
|
import { commandMenuItemsDraftState } from '@/command-menu-item/edit/states/commandMenuItemsDraftState';
|
|
import { commandMenuItemsSelector } from '@/command-menu-item/states/commandMenuItemsSelector';
|
|
|
|
// Resets the draft to the current server state, discarding all user edits.
|
|
export const useResetCommandMenuItemsDraft = () => {
|
|
const store = useStore();
|
|
|
|
const resetCommandMenuItemsDraft = useCallback(() => {
|
|
const serverItems = store.get(commandMenuItemsSelector.atom);
|
|
|
|
store.set(
|
|
commandMenuItemsDraftState.atom,
|
|
serverItems.map((item) => ({ ...item })),
|
|
);
|
|
}, [store]);
|
|
|
|
return { resetCommandMenuItemsDraft };
|
|
};
|