Skip to content

Commit 313e142

Browse files
committed
Refactor version selector state management in VersionSelector component
- Remove localStorage handling for version selector state to simplify state management. - Streamline the component by eliminating unnecessary storage key logic and effects. - Ensure the selected version is set correctly without persisting state across sessions.
1 parent e2d215e commit 313e142

File tree

2 files changed

+1
-58
lines changed

2 files changed

+1
-58
lines changed

xp-archive/client/content/Content.tsx

-3
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,6 @@ const getDefaultView = (isWebpage: boolean, hasAttachment: boolean): ViewVariant
2323
return undefined;
2424
};
2525

26-
// Storage key for persisting version selector state
27-
const STORAGE_KEY = 'versionSelector_state';
28-
2926
export const Content = () => {
3027
const { selectedContentId, selectedLocale, selectedVersion, setSelectedVersion } =
3128
useAppState();

xp-archive/client/versionSelector/VersionSelector.tsx

+1-55
Original file line numberDiff line numberDiff line change
@@ -33,72 +33,18 @@ const VersionButton = ({ isSelected, onClick, children }: VersionButtonProps) =>
3333
</Button>
3434
);
3535

36-
// Storage key for persisting version selector state
37-
const getStorageKey = (contentId: string) => `versionSelector_state_${contentId}`;
38-
3936
export const VersionSelector = ({ versions, isOpen, onClose, onMount }: Props) => {
4037
const [searchQuery, setSearchQuery] = useState('');
41-
const { setSelectedContentId, selectedVersion, setSelectedVersion, selectedContentId } =
42-
useAppState();
43-
const storageKey = getStorageKey(selectedContentId || '');
44-
45-
// Load search query from localStorage on mount
46-
useEffect(() => {
47-
if (isOpen) {
48-
try {
49-
const savedState = localStorage.getItem(storageKey);
50-
if (savedState) {
51-
const { searchQuery: savedQuery } = JSON.parse(savedState);
52-
if (savedQuery) {
53-
setSearchQuery(savedQuery);
54-
}
55-
}
56-
} catch (e) {
57-
console.error('Failed to load version selector state', e);
58-
}
59-
}
60-
}, [isOpen, storageKey]);
61-
62-
// Save state to localStorage when it changes
63-
useEffect(() => {
64-
if (isOpen) {
65-
try {
66-
localStorage.setItem(
67-
storageKey,
68-
JSON.stringify({
69-
searchQuery,
70-
selectedVersion,
71-
})
72-
);
73-
} catch (e) {
74-
console.error('Failed to save version selector state', e);
75-
}
76-
}
77-
}, [isOpen, searchQuery, selectedVersion, storageKey]);
38+
const { setSelectedContentId, selectedVersion, setSelectedVersion } = useAppState();
7839

7940
const handleClose = () => {
80-
// Don't clear search query when closing
8141
onClose();
8242
};
8343

8444
const selectVersion = (versionId: string) => {
8545
const nodeId = versions.find((v) => v.versionId === versionId)?.nodeId;
8646
if (nodeId) setSelectedContentId(nodeId);
8747
setSelectedVersion(versionId);
88-
89-
// Save selected version to localStorage
90-
try {
91-
localStorage.setItem(
92-
storageKey,
93-
JSON.stringify({
94-
searchQuery,
95-
selectedVersion: versionId,
96-
keepOpen: true, // Flag to keep panel open
97-
})
98-
);
99-
} catch (e) {
100-
console.error('Failed to save version selection', e);
101-
}
10248
};
10349

10450
const filteredVersions = versions.filter((version) =>

0 commit comments

Comments
 (0)