diff --git a/apps/builder/src/features/graph/components/GroupSelectionMenu.tsx b/apps/builder/src/features/graph/components/GroupSelectionMenu.tsx index c3444b604..82018af7c 100644 --- a/apps/builder/src/features/graph/components/GroupSelectionMenu.tsx +++ b/apps/builder/src/features/graph/components/GroupSelectionMenu.tsx @@ -127,6 +127,9 @@ export const GroupSelectionMenu = ({ }, backspace: handleDelete, paste: handlePaste, + selectAll: () => { + setFocusedGroups(typebot?.groups.map((g) => g.id) ?? []); + }, }); return ( diff --git a/apps/builder/src/hooks/useKeyboardShortcuts.ts b/apps/builder/src/hooks/useKeyboardShortcuts.ts index e700e67ff..40c5d2fb7 100644 --- a/apps/builder/src/hooks/useKeyboardShortcuts.ts +++ b/apps/builder/src/hooks/useKeyboardShortcuts.ts @@ -12,6 +12,7 @@ type Props = { cut?: () => void; duplicate?: () => void; backspace?: () => void; + selectAll?: () => void; }; export const useKeyboardShortcuts = ({ @@ -22,6 +23,7 @@ export const useKeyboardShortcuts = ({ cut, duplicate, backspace, + selectAll, }: Props) => { const isUndoShortcut = (event: KeyboardEvent) => (event.metaKey || event.ctrlKey) && event.key === "z" && !event.shiftKey; @@ -41,6 +43,9 @@ export const useKeyboardShortcuts = ({ const isDuplicateShortcut = (event: KeyboardEvent) => (event.metaKey || event.ctrlKey) && event.key === "d"; + const isSelectAllShortcut = (event: KeyboardEvent) => + (event.metaKey || event.ctrlKey) && event.key === "a"; + const isBackspaceShortcut = (event: KeyboardEvent) => event.key === "Backspace"; @@ -95,5 +100,10 @@ export const useKeyboardShortcuts = ({ backspace(); return; } + if (selectAll && isSelectAllShortcut(event)) { + event.preventDefault(); + selectAll(); + return; + } }); };