9426 migrate workflow pages to command menu (#9515)

Closes twentyhq/core-team-issues#53 

- Removes command menu top bar text input when the user is not on root
page
- Fixes bug when resetting command menu context
- Added animations on command menu open and close
- Refactored workflow visualizer code to remove unnecessary rerenders
and props drilling


https://github.com/user-attachments/assets/1da3adb8-220b-407b-9279-30354d3100d3
This commit is contained in:
Raphaël Bosi
2025-01-13 16:53:57 +01:00
committed by GitHub
parent 330addbc0b
commit 530a18558b
22 changed files with 328 additions and 168 deletions

View File

@ -11,6 +11,14 @@ export const mapRightDrawerPageToCommandMenuPage = (
return CommandMenuPages.ViewEmailThread;
case RightDrawerPages.ViewCalendarEvent:
return CommandMenuPages.ViewCalendarEvent;
case RightDrawerPages.WorkflowStepSelectTriggerType:
return CommandMenuPages.WorkflowStepSelectTriggerType;
case RightDrawerPages.WorkflowStepSelectAction:
return CommandMenuPages.WorkflowStepSelectAction;
case RightDrawerPages.WorkflowStepView:
return CommandMenuPages.WorkflowStepView;
case RightDrawerPages.WorkflowStepEdit:
return CommandMenuPages.WorkflowStepEdit;
default:
return CommandMenuPages.Root;
}

View File

@ -34,13 +34,18 @@ export const useSelectableList = (selectableListId?: string) => {
);
const setSelectedItemId = useRecoilCallback(
({ set }) =>
({ set, snapshot }) =>
(itemId: string) => {
resetSelectedItem();
const selectedItemId = getSnapshotValue(snapshot, selectedItemIdState);
if (isDefined(selectedItemId)) {
set(isSelectedItemIdSelector(selectedItemId), false);
}
set(selectedItemIdState, itemId);
set(isSelectedItemIdSelector(itemId), true);
},
[resetSelectedItem, selectedItemIdState, isSelectedItemIdSelector],
[selectedItemIdState, isSelectedItemIdSelector],
);
return {