3fb2352c78
Addresses review comments from the [first navbar customization PR](https://github.com/twentyhq/twenty/pull/17728) --------- Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com> Co-authored-by: Devessier <baptiste@devessier.fr>
58 lines
2.3 KiB
TypeScript
58 lines
2.3 KiB
TypeScript
import { useLingui } from '@lingui/react/macro';
|
|
import { useRecoilValue, useSetRecoilState } from 'recoil';
|
|
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 { addMenuItemInsertionContextState } from '@/navigation-menu-item/states/addMenuItemInsertionContextState';
|
|
import { navigationMenuItemsDraftState } from '@/navigation-menu-item/states/navigationMenuItemsDraftState';
|
|
import { selectedNavigationMenuItemInEditModeState } from '@/navigation-menu-item/states/selectedNavigationMenuItemInEditModeState';
|
|
|
|
export const useAddFolderToNavigationMenu = () => {
|
|
const { t } = useLingui();
|
|
const { addFolderToDraft } = useAddFolderToNavigationMenuDraft();
|
|
const { workspaceNavigationMenuItems } = useNavigationMenuItemsDraftState();
|
|
const navigationMenuItemsDraft = useRecoilValue(
|
|
navigationMenuItemsDraftState,
|
|
);
|
|
const setSelectedNavigationMenuItemInEditMode = useSetRecoilState(
|
|
selectedNavigationMenuItemInEditModeState,
|
|
);
|
|
const { openNavigationMenuItemInCommandMenu } =
|
|
useOpenNavigationMenuItemInCommandMenu();
|
|
const addMenuItemInsertionContext = useRecoilValue(
|
|
addMenuItemInsertionContextState,
|
|
);
|
|
const setAddMenuItemInsertionContext = useSetRecoilState(
|
|
addMenuItemInsertionContextState,
|
|
);
|
|
|
|
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 };
|
|
};
|