Create open side panel page action (#11481)

Closes https://github.com/twentyhq/core-team-issues/issues/697
This commit is contained in:
Raphaël Bosi
2025-04-10 11:34:34 +02:00
committed by GitHub
parent 4a4ce9a6fe
commit b84a31cb8a
3 changed files with 65 additions and 37 deletions

View File

@ -0,0 +1,48 @@
import { ActionDisplay } from '@/action-menu/actions/display/components/ActionDisplay';
import { ActionConfigContext } from '@/action-menu/contexts/ActionConfigContext';
import { useNavigateCommandMenu } from '@/command-menu/hooks/useNavigateCommandMenu';
import { commandMenuSearchState } from '@/command-menu/states/commandMenuSearchState';
import { CommandMenuPages } from '@/command-menu/types/CommandMenuPages';
import { useContext } from 'react';
import { useSetRecoilState } from 'recoil';
import { IconComponent } from 'twenty-ui/display';
export const ActionOpenSidePanelPage = ({
page,
pageTitle,
pageIcon,
onClick,
shouldResetSearchState = false,
}: {
page: CommandMenuPages;
pageTitle: string;
pageIcon: IconComponent;
onClick?: () => void;
shouldResetSearchState?: boolean;
}) => {
const actionConfig = useContext(ActionConfigContext);
const { navigateCommandMenu } = useNavigateCommandMenu();
const setCommandMenuSearchState = useSetRecoilState(commandMenuSearchState);
if (!actionConfig) {
return null;
}
const handleClick = () => {
onClick?.();
navigateCommandMenu({
page,
pageTitle,
pageIcon,
});
if (shouldResetSearchState) {
setCommandMenuSearchState('');
}
};
return <ActionDisplay action={actionConfig} onClick={handleClick} />;
};