diff options
| author | Oliver <oliver@mohlin.dev> | 2025-09-18 14:29:55 +0200 |
|---|---|---|
| committer | Tobias Järvelöv <tobias.jarvelov@mullvad.net> | 2025-09-22 12:35:44 +0200 |
| commit | 9301ba3afd8ca0dd4375df3cbe714b87f13f93c9 (patch) | |
| tree | 94bac9b2bea8d421f7b38056064fad1205fdca3a | |
| parent | 00df068104fde1b0f85ac1d4ef3b201180233c4d (diff) | |
| download | mullvadvpn-9301ba3afd8ca0dd4375df3cbe714b87f13f93c9.tar.xz mullvadvpn-9301ba3afd8ca0dd4375df3cbe714b87f13f93c9.zip | |
Persist SettingsAccordion expanded state in router location
| -rw-r--r-- | desktop/packages/mullvad-vpn/src/renderer/components/settings-accordion/SettingsAccordion.tsx | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/desktop/packages/mullvad-vpn/src/renderer/components/settings-accordion/SettingsAccordion.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/settings-accordion/SettingsAccordion.tsx index b4aa0129e9..7df1931bbf 100644 --- a/desktop/packages/mullvad-vpn/src/renderer/components/settings-accordion/SettingsAccordion.tsx +++ b/desktop/packages/mullvad-vpn/src/renderer/components/settings-accordion/SettingsAccordion.tsx @@ -11,17 +11,33 @@ export type SettingsAccordion = Omit<AccordionProps, 'animation'> & { }; function SettingsAccordion({ accordionId, anchorId, ...props }: SettingsAccordion) { - const { location } = useHistory(); + const history = useHistory(); + const { location } = history; + const { state } = location; const initialExpanded = location.state.expandedSections[accordionId]; const [expanded, setExpanded] = React.useState(initialExpanded); const { ref, animation } = useScrollToListItem(anchorId); + const handleOnExpandedChange = React.useCallback( + (value: boolean) => { + setExpanded(value); + history.replace(location, { + ...state, + expandedSections: { + ...state.expandedSections, + [accordionId]: value, + }, + }); + }, + [accordionId, history, location, state], + ); + return ( <Accordion ref={ref} animation={animation} expanded={expanded} - onExpandedChange={setExpanded} + onExpandedChange={handleOnExpandedChange} {...props} /> ); |
