* Change to using arrow functions Co-authored-by: v1b3m <vibenjamin6@gmail.com> Co-authored-by: Matheus <matheus_benini@hotmail.com> * Add lint rule --------- Co-authored-by: v1b3m <vibenjamin6@gmail.com> Co-authored-by: Matheus <matheus_benini@hotmail.com> Co-authored-by: Charles Bochet <charles@twenty.com>
44 lines
1.4 KiB
TypeScript
44 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 const useCommandMenu = () => {
|
|
const [, setIsCommandMenuOpened] = useRecoilState(isCommandMenuOpenedState);
|
|
const setCommands = useSetRecoilState(commandMenuCommandsState);
|
|
const {
|
|
setHotkeyScopeAndMemorizePreviousScope,
|
|
goBackToPreviousHotkeyScope,
|
|
} = usePreviousHotkeyScope();
|
|
|
|
const openCommandMenu = () => {
|
|
setIsCommandMenuOpened(true);
|
|
setHotkeyScopeAndMemorizePreviousScope(AppHotkeyScope.CommandMenu);
|
|
};
|
|
|
|
const closeCommandMenu = () => {
|
|
setIsCommandMenuOpened(false);
|
|
goBackToPreviousHotkeyScope();
|
|
};
|
|
|
|
const addToCommandMenu = (addCommand: Command[]) => {
|
|
setCommands((prev) => [...prev, ...addCommand]);
|
|
};
|
|
|
|
const setToIntitialCommandMenu = () => {
|
|
setCommands(commandMenuCommands);
|
|
};
|
|
|
|
return {
|
|
openCommandMenu,
|
|
closeCommandMenu,
|
|
addToCommandMenu,
|
|
setToIntitialCommandMenu,
|
|
};
|
|
};
|