Files
twenty_crm/front/src/modules/command-menu/hooks/useCommandMenu.ts
Weiko 7d900ad1c6 Reorganize context/states/selectors in dedicated folders (#1205)
* Reorganize context/states/selectors in dedicated folders

* linter
2023-08-14 15:08:47 -07:00

46 lines
1.4 KiB
TypeScript

import { useRecoilState, useSetRecoilState } from 'recoil';
import { usePreviousHotkeyScope } from '@/ui/utilities/hotkey/hooks/usePreviousHotkeyScope';
import { AppHotkeyScope } from '@/ui/utilities/hotkey/types/AppHotkeyScope';
import { commandMenuCommands } from '../constants/commandMenuCommands';
import { commandMenuCommandsState } from '../states/commandMenuCommandsState';
import { isCommandMenuOpenedState } from '../states/isCommandMenuOpenedState';
import { Command } from '../types/Command';
export function useCommandMenu() {
const [, setIsCommandMenuOpenedState] = useRecoilState(
isCommandMenuOpenedState,
);
const setCommands = useSetRecoilState(commandMenuCommandsState);
const {
setHotkeyScopeAndMemorizePreviousScope,
goBackToPreviousHotkeyScope,
} = usePreviousHotkeyScope();
function openCommandMenu() {
setIsCommandMenuOpenedState(true);
setHotkeyScopeAndMemorizePreviousScope(AppHotkeyScope.CommandMenu);
}
function closeCommandMenu() {
setIsCommandMenuOpenedState(false);
goBackToPreviousHotkeyScope();
}
function addToCommandMenu(addCommand: Command[]) {
setCommands((prev) => [...prev, ...addCommand]);
}
function setToIntitialCommandMenu() {
setCommands(commandMenuCommands);
}
return {
openCommandMenu,
closeCommandMenu,
addToCommandMenu,
setToIntitialCommandMenu,
};
}