Skip to content

Commit 3f46412

Browse files
committed
Refactor version selector logic for improved readability and maintainability
1 parent c63494b commit 3f46412

File tree

1 file changed

+33
-28
lines changed

1 file changed

+33
-28
lines changed

xp-archive/client/content/Content.tsx

+33-28
Original file line numberDiff line numberDiff line change
@@ -157,34 +157,39 @@ export const Content = () => {
157157
{getVersionDisplay()}
158158
</Button>
159159

160-
{versionSelectorCache.component ? (
161-
versionSelectorCache.component
162-
) : (
163-
<VersionSelector
164-
versions={
165-
versionSelectorCache.versions.length > 0
166-
? versionSelectorCache.versions
167-
: data?.versions || []
168-
}
169-
isOpen={versionSelectorCache.isOpen}
170-
onClose={() => {
171-
setVersionSelectorCache((prev) => ({
172-
...prev,
173-
isOpen: false,
174-
}));
175-
}}
176-
onMount={(component) => {
177-
setCachedVersionSelector(
178-
selectedContentId ?? '',
179-
component,
180-
versionSelectorCache.versions.length > 0
181-
? versionSelectorCache.versions
182-
: data?.versions || [],
183-
versionSelectorCache.isOpen
184-
);
185-
}}
186-
/>
187-
)}
160+
{versionSelectorCache.component
161+
? versionSelectorCache.component
162+
: (() => {
163+
const versionSelectorVersions =
164+
versionSelectorCache.versions.length > 0
165+
? versionSelectorCache.versions
166+
: data?.versions || [];
167+
168+
const handleClose = () => {
169+
setVersionSelectorCache((prev) => ({
170+
...prev,
171+
isOpen: false,
172+
}));
173+
};
174+
175+
const handleMount = (component: React.ReactNode) => {
176+
setCachedVersionSelector(
177+
selectedContentId ?? '',
178+
component,
179+
versionSelectorVersions,
180+
versionSelectorCache.isOpen
181+
);
182+
};
183+
184+
return (
185+
<VersionSelector
186+
versions={versionSelectorVersions}
187+
isOpen={versionSelectorCache.isOpen}
188+
onClose={handleClose}
189+
onMount={handleMount}
190+
/>
191+
);
192+
})()}
188193
</div>
189194
<div className={style.viewSelector}>
190195
<Label className={style.label}>Visning</Label>

0 commit comments

Comments
 (0)