diff options
| author | Fuwn <[email protected]> | 2026-02-07 05:28:55 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2026-02-07 05:28:55 -0800 |
| commit | 83319ce9db6eba6dd9f4ddbebb5d95c3cac69b9a (patch) | |
| tree | 652a8bfa52ef25479b2b06a5c40a93e4e12942fe /apps | |
| parent | fix: reset panel sizes without page reload, prevent partial-data max width cl... (diff) | |
| download | asa.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.tsx | 13 |
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) |