diff options
Diffstat (limited to 'apps/web/app/reader/_components/reader-shell.tsx')
| -rw-r--r-- | apps/web/app/reader/_components/reader-shell.tsx | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/apps/web/app/reader/_components/reader-shell.tsx b/apps/web/app/reader/_components/reader-shell.tsx index 09278c3..247ec8d 100644 --- a/apps/web/app/reader/_components/reader-shell.tsx +++ b/apps/web/app/reader/_components/reader-shell.tsx @@ -1,6 +1,7 @@ "use client" -import { Group, Panel, Separator, useDefaultLayout } from "react-resizable-panels" +import { useEffect, useRef } from "react" +import { Group, Panel, Separator, useDefaultLayout, useGroupRef } from "react-resizable-panels" import { useUserInterfaceStore } from "@/lib/stores/user-interface-store" import { useMarkAllAsRead } from "@/lib/queries/use-mark-all-as-read" import { useSubscriptions } from "@/lib/queries/use-subscriptions" @@ -58,6 +59,23 @@ export function ReaderShell({ storage: typeof window !== "undefined" ? localStorage : { getItem: () => null, setItem: () => {} }, }) + const detailGroupRef = useGroupRef() + const detailOnLayoutChangedRef = useRef(detailLayout.onLayoutChanged) + detailOnLayoutChangedRef.current = detailLayout.onLayoutChanged + + useEffect(() => { + useUserInterfaceStore.getState().setResetDetailLayout(() => { + const group = detailGroupRef.current + if (!group) return + const appliedLayout = group.setLayout({ + "entry-list": 50, + "detail-panel": 50, + }) + detailOnLayoutChangedRef.current?.(appliedLayout) + }) + return () => useUserInterfaceStore.getState().setResetDetailLayout(null) + }, [detailGroupRef]) + useRealtimeEntries() let pageTitle = feedFilter === "saved" ? "saved" : "all entries" @@ -192,6 +210,7 @@ export function ReaderShell({ className="min-h-0 flex-1" defaultLayout={detailLayout.defaultLayout} onLayoutChanged={detailLayout.onLayoutChanged} + groupRef={detailGroupRef} > <Panel id="entry-list" defaultSize={selectedEntryIdentifier ? "40%" : "100%"} minSize="25%"> <div data-panel-zone="entryList" className={classNames( |