From c91da6387c1f0a17c173410d428332f5aeed591f Mon Sep 17 00:00:00 2001 From: Connor Prussin Date: Wed, 28 May 2025 21:07:04 -0700 Subject: [PATCH] fix(insights): properly restore feed component url --- .../components/PriceComponentDrawer/index.tsx | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/apps/insights/src/components/PriceComponentDrawer/index.tsx b/apps/insights/src/components/PriceComponentDrawer/index.tsx index 1fa50c61b1..c608e1a769 100644 --- a/apps/insights/src/components/PriceComponentDrawer/index.tsx +++ b/apps/insights/src/components/PriceComponentDrawer/index.tsx @@ -17,7 +17,14 @@ import dynamic from "next/dynamic"; import { useRouter } from "next/navigation"; import { useQueryState, parseAsString } from "nuqs"; import type { ReactNode } from "react"; -import { Suspense, useState, useCallback, useMemo, useTransition } from "react"; +import { + Suspense, + useState, + useCallback, + useMemo, + useTransition, + useRef, +} from "react"; import { RouterProvider, useDateFormatter, @@ -68,6 +75,7 @@ export const usePriceComponentDrawer = ({ const drawer = useDrawer(); const router = useRouter(); const [isRouting, startTransition] = useTransition(); + const didRestoreUrl = useRef(false); const navigate = useCallback( (route: string) => { @@ -102,10 +110,12 @@ export const usePriceComponentDrawer = ({ }, [updateSelectedComponentId]); useMountEffect(() => { - if (selectedComponentId) { + if (selectedComponentId && !didRestoreUrl.current) { + didRestoreUrl.current = true; const component = components.find( (component) => - component[identifiesPublisher ? "publisherKey" : "feedKey"], + component[identifiesPublisher ? "publisherKey" : "feedKey"] === + selectedComponentId, ); if (component) { openDrawer(component);