d7f025157b
As per title --------- Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
59 lines
2.5 KiB
TypeScript
59 lines
2.5 KiB
TypeScript
import { useLingui } from '@lingui/react/macro';
|
|
import { isDefined } from 'twenty-shared/utils';
|
|
import { IconFolder } from 'twenty-ui/display';
|
|
|
|
import { useAddFolderToNavigationMenuDraft } from '@/navigation-menu-item/hooks/useAddFolderToNavigationMenuDraft';
|
|
import { useNavigationMenuItemsDraftState } from '@/navigation-menu-item/hooks/useNavigationMenuItemsDraftState';
|
|
import { useOpenNavigationMenuItemInCommandMenu } from '@/navigation-menu-item/hooks/useOpenNavigationMenuItemInCommandMenu';
|
|
import { addMenuItemInsertionContextStateV2 } from '@/navigation-menu-item/states/addMenuItemInsertionContextStateV2';
|
|
import { navigationMenuItemsDraftStateV2 } from '@/navigation-menu-item/states/navigationMenuItemsDraftStateV2';
|
|
import { selectedNavigationMenuItemInEditModeStateV2 } from '@/navigation-menu-item/states/selectedNavigationMenuItemInEditModeStateV2';
|
|
import { useRecoilValueV2 } from '@/ui/utilities/state/jotai/hooks/useRecoilValueV2';
|
|
import { useSetRecoilStateV2 } from '@/ui/utilities/state/jotai/hooks/useSetRecoilStateV2';
|
|
|
|
export const useAddFolderToNavigationMenu = () => {
|
|
const { t } = useLingui();
|
|
const { addFolderToDraft } = useAddFolderToNavigationMenuDraft();
|
|
const { workspaceNavigationMenuItems } = useNavigationMenuItemsDraftState();
|
|
const navigationMenuItemsDraft = useRecoilValueV2(
|
|
navigationMenuItemsDraftStateV2,
|
|
);
|
|
const setSelectedNavigationMenuItemInEditMode = useSetRecoilStateV2(
|
|
selectedNavigationMenuItemInEditModeStateV2,
|
|
);
|
|
const { openNavigationMenuItemInCommandMenu } =
|
|
useOpenNavigationMenuItemInCommandMenu();
|
|
const addMenuItemInsertionContext = useRecoilValueV2(
|
|
addMenuItemInsertionContextStateV2,
|
|
);
|
|
const setAddMenuItemInsertionContext = useSetRecoilStateV2(
|
|
addMenuItemInsertionContextStateV2,
|
|
);
|
|
|
|
const currentDraft = isDefined(navigationMenuItemsDraft)
|
|
? navigationMenuItemsDraft
|
|
: workspaceNavigationMenuItems;
|
|
|
|
const handleAddFolder = () => {
|
|
const targetFolderId = addMenuItemInsertionContext?.targetFolderId ?? null;
|
|
const targetIndex = addMenuItemInsertionContext?.targetIndex;
|
|
|
|
const itemId = addFolderToDraft(
|
|
t`New folder`,
|
|
currentDraft,
|
|
targetFolderId,
|
|
targetIndex,
|
|
);
|
|
|
|
setAddMenuItemInsertionContext(null);
|
|
setSelectedNavigationMenuItemInEditMode(itemId);
|
|
openNavigationMenuItemInCommandMenu({
|
|
pageTitle: t`Edit folder`,
|
|
pageIcon: IconFolder,
|
|
focusTitleInput: true,
|
|
});
|
|
};
|
|
|
|
return { handleAddFolder };
|
|
};
|