summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorFuwn <[email protected]>2026-02-07 05:28:55 -0800
committerFuwn <[email protected]>2026-02-07 05:28:55 -0800
commit83319ce9db6eba6dd9f4ddbebb5d95c3cac69b9a (patch)
tree652a8bfa52ef25479b2b06a5c40a93e4e12942fe /apps
parentfix: reset panel sizes without page reload, prevent partial-data max width cl... (diff)
downloadasa.news-83319ce9db6eba6dd9f4ddbebb5d95c3cac69b9a.tar.xz
asa.news-83319ce9db6eba6dd9f4ddbebb5d95c3cac69b9a.zip
fix: dynamically calculate detail panel equal split from current layout
Diffstat (limited to 'apps')
-rw-r--r--apps/web/app/reader/_components/reader-shell.tsx13
1 files changed, 9 insertions, 4 deletions
diff --git a/apps/web/app/reader/_components/reader-shell.tsx b/apps/web/app/reader/_components/reader-shell.tsx
index 247ec8d..8180d85 100644
--- a/apps/web/app/reader/_components/reader-shell.tsx
+++ b/apps/web/app/reader/_components/reader-shell.tsx
@@ -67,10 +67,15 @@ export function ReaderShell({
useUserInterfaceStore.getState().setResetDetailLayout(() => {
const group = detailGroupRef.current
if (!group) return
- const appliedLayout = group.setLayout({
- "entry-list": 50,
- "detail-panel": 50,
- })
+ const currentLayout = group.getLayout()
+ const panelIdentifiers = Object.keys(currentLayout)
+ if (panelIdentifiers.length === 0) return
+ const equalSharePercentage = 100 / panelIdentifiers.length
+ const equalLayout: Record<string, number> = {}
+ for (const panelIdentifier of panelIdentifiers) {
+ equalLayout[panelIdentifier] = equalSharePercentage
+ }
+ const appliedLayout = group.setLayout(equalLayout)
detailOnLayoutChangedRef.current?.(appliedLayout)
})
return () => useUserInterfaceStore.getState().setResetDetailLayout(null)