From 9a996241ab42b3aa9fcde237ded274bea7e24d5a Mon Sep 17 00:00:00 2001 From: walldenfilippa Date: Fri, 13 Feb 2026 16:15:57 +0100 Subject: [PATCH] added prop expandedByDefault to groups for sidenavigation --- src/codegen/Common.ts | 6 ++++++ src/features/navigation/components/PageGroup.tsx | 7 +++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/codegen/Common.ts b/src/codegen/Common.ts index dfa0c51be6..acc5b0ac88 100644 --- a/src/codegen/Common.ts +++ b/src/codegen/Common.ts @@ -800,6 +800,12 @@ const common = { .optional({ default: false }) .setDescription('Whether this group should mark pages as completed when the user finishes'), ), + new CG.prop( + 'expandedByDefault', + new CG.bool() + .optional({ default: false }) + .setDescription('Whether the sidebar group should be expanded by default'), + ), ), IPagesSettingsWithGroups: () => new CG.obj( diff --git a/src/features/navigation/components/PageGroup.tsx b/src/features/navigation/components/PageGroup.tsx index dee1d49edc..2cc861aa1a 100644 --- a/src/features/navigation/components/PageGroup.tsx +++ b/src/features/navigation/components/PageGroup.tsx @@ -132,8 +132,11 @@ function PageGroupMultiple({ const buttonId = `navigation-button-${group.id}`; const listId = `navigation-page-list-${group.id}`; - const [isOpen, setIsOpen] = useState(containsCurrentPage); - useLayoutEffect(() => setIsOpen(containsCurrentPage), [containsCurrentPage]); + const [isOpen, setIsOpen] = useState(containsCurrentPage || !!group.expandedByDefault); + useLayoutEffect( + () => setIsOpen(containsCurrentPage || !!group.expandedByDefault), + [containsCurrentPage, group.expandedByDefault], + ); const pageGroupHasErrors = validations !== ContextNotProvided && validations.hasErrors.group; const pageGroupIsComplete = validations !== ContextNotProvided && validations.isCompleted.group;