From 1e2ba2952dc5add9d082ff45abc58688a77d09ad Mon Sep 17 00:00:00 2001 From: Jared Pereira Date: Fri, 26 Sep 2025 14:06:08 -1000 Subject: [PATCH] factor out useDrawerOpen --- .../[rkey]/Interactions/InteractionDrawer.tsx | 20 +++++++++++-------- .../[did]/[publication]/[rkey]/PostPages.tsx | 7 +++++-- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/app/lish/[did]/[publication]/[rkey]/Interactions/InteractionDrawer.tsx b/app/lish/[did]/[publication]/[rkey]/Interactions/InteractionDrawer.tsx index 9127e9e6..b2c7d0c1 100644 --- a/app/lish/[did]/[publication]/[rkey]/Interactions/InteractionDrawer.tsx +++ b/app/lish/[did]/[publication]/[rkey]/Interactions/InteractionDrawer.tsx @@ -13,21 +13,16 @@ export const InteractionDrawer = (props: { comments: Comment[]; did: string; }) => { - let params = useSearchParams(); - let interactionDrawerSearchParam = params.get("interactionDrawer"); - let { drawerOpen: open, drawer } = useInteractionState(); - if (open === false || (open === undefined && !interactionDrawerSearchParam)) - return null; - let currentDrawer = drawer || interactionDrawerSearchParam; + let drawer = useDrawerOpen(); + if (!drawer) return null; return ( <> -
- {currentDrawer === "quotes" ? ( + {drawer === "quotes" ? ( ) : ( ); }; + +export const useDrawerOpen = () => { + let params = useSearchParams(); + let interactionDrawerSearchParam = params.get("interactionDrawer"); + let { drawerOpen: open, drawer } = useInteractionState(); + if (open === false || (open === undefined && !interactionDrawerSearchParam)) + return null; + return drawer || interactionDrawerSearchParam; +}; diff --git a/app/lish/[did]/[publication]/[rkey]/PostPages.tsx b/app/lish/[did]/[publication]/[rkey]/PostPages.tsx index 9357644e..380955b8 100644 --- a/app/lish/[did]/[publication]/[rkey]/PostPages.tsx +++ b/app/lish/[did]/[publication]/[rkey]/PostPages.tsx @@ -15,7 +15,10 @@ import { PostHeader } from "./PostHeader/PostHeader"; import { useIdentityData } from "components/IdentityProvider"; import { AppBskyFeedDefs } from "@atproto/api"; import { create } from "zustand/react"; -import { InteractionDrawer } from "./Interactions/InteractionDrawer"; +import { + InteractionDrawer, + useDrawerOpen, +} from "./Interactions/InteractionDrawer"; import { BookendSpacer, SandwichSpacer } from "components/LeafletLayout"; import { CSS } from "@react-spring/web"; import { PageOptionButton } from "components/Pages/PageOptions"; @@ -67,7 +70,7 @@ export function PostPages({ preferences: { showComments?: boolean }; }) { let { identity } = useIdentityData(); - let { drawerOpen } = useInteractionState(); + let drawerOpen = useDrawerOpen(); let pages = usePostPageUIState((s) => s.pages); if (!document || !document.documents_in_publications[0].publications) return null; -- 2.54.0