summaryrefslogtreecommitdiffhomepage
path: root/desktop
diff options
context:
space:
mode:
authorOliver <oliver@mohlin.dev>2025-09-18 14:29:55 +0200
committerTobias Järvelöv <tobias.jarvelov@mullvad.net>2025-09-22 12:35:44 +0200
commit9301ba3afd8ca0dd4375df3cbe714b87f13f93c9 (patch)
tree94bac9b2bea8d421f7b38056064fad1205fdca3a /desktop
parent00df068104fde1b0f85ac1d4ef3b201180233c4d (diff)
downloadmullvadvpn-9301ba3afd8ca0dd4375df3cbe714b87f13f93c9.tar.xz
mullvadvpn-9301ba3afd8ca0dd4375df3cbe714b87f13f93c9.zip
Persist SettingsAccordion expanded state in router location
Diffstat (limited to 'desktop')
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/settings-accordion/SettingsAccordion.tsx20
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}
/>
);