From 69fbe8d59fd77e824c6da4ce202110bf1ffca10e Mon Sep 17 00:00:00 2001 From: Chris Schmitz Date: Wed, 15 May 2024 11:13:23 -0500 Subject: [PATCH] Fix expand link in related resource panel (#8515) --- .../src/components/RelatedResources/Panel.tsx | 11 +--------- .../RelatedResources/PanelHeader.tsx | 22 ++++++++++--------- .../RelatedResources/RelatedResourcePanel.tsx | 2 +- .../RelatedResources/TracePanel.tsx | 11 +++------- .../src/components/RelatedResources/hooks.ts | 4 ++-- 5 files changed, 19 insertions(+), 31 deletions(-) diff --git a/frontend/src/components/RelatedResources/Panel.tsx b/frontend/src/components/RelatedResources/Panel.tsx index 907e83fd231..1078ef0bc4f 100644 --- a/frontend/src/components/RelatedResources/Panel.tsx +++ b/frontend/src/components/RelatedResources/Panel.tsx @@ -1,6 +1,5 @@ import { Box, Dialog } from '@highlight-run/ui/components' import { useCallback, useEffect, useRef, useState } from 'react' -import { useLocation } from 'react-router-dom' import { useRelatedResource } from '@/components/RelatedResources/hooks' import { @@ -28,8 +27,7 @@ type PanelComponent = React.FC & { export const Panel: PanelComponent = ({ children, open }) => { const dragHandleRef = useRef(null) const [dragging, setDragging] = useState(false) - const { resource, remove, panelWidth, setPanelWidth } = useRelatedResource() - const location = useLocation() + const { remove, panelWidth, setPanelWidth } = useRelatedResource() const dialogStore = Dialog.useStore({ open, setOpen: (open) => { @@ -77,13 +75,6 @@ export const Panel: PanelComponent = ({ children, open }) => { } }, [dragging, handleMouseMove, handleMouseUp]) - useEffect(() => { - if (resource) { - remove() - } - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [location.pathname]) - return ( = ({ children, path }) => { @@ -62,14 +62,16 @@ export const PanelHeader: React.FC = ({ children, path }) => { {children} - } - emphasis="low" - kind="secondary" - onClick={() => { - navigate(path) - }} - /> + {path && ( + + } + emphasis="low" + kind="secondary" + onClick={() => null} + /> + + )} } diff --git a/frontend/src/components/RelatedResources/RelatedResourcePanel.tsx b/frontend/src/components/RelatedResources/RelatedResourcePanel.tsx index 0b350b79064..2104c36aa62 100644 --- a/frontend/src/components/RelatedResources/RelatedResourcePanel.tsx +++ b/frontend/src/components/RelatedResources/RelatedResourcePanel.tsx @@ -50,7 +50,7 @@ export const RelatedResourcePanel: React.FC = ({}) => { traceId={resource.id} spanId={resource.spanID} > - + )} diff --git a/frontend/src/components/RelatedResources/TracePanel.tsx b/frontend/src/components/RelatedResources/TracePanel.tsx index b7b84272554..387a4df7aba 100644 --- a/frontend/src/components/RelatedResources/TracePanel.tsx +++ b/frontend/src/components/RelatedResources/TracePanel.tsx @@ -1,25 +1,20 @@ import { Box, Callout, Text } from '@highlight-run/ui/components' import LoadingBox from '@/components/LoadingBox' -import { RelatedTrace } from '@/components/RelatedResources/hooks' import { Panel } from '@/components/RelatedResources/Panel' -import { useNumericProjectId } from '@/hooks/useProjectId' import { TraceHeader } from '@/pages/Traces/TraceHeader' import { useTrace } from '@/pages/Traces/TraceProvider' import { TraceSpanAttributes } from '@/pages/Traces/TraceSpanAttributes' import { TraceVisualizer } from '@/pages/Traces/TraceVisualizer' -export const TracePanel: React.FC<{ resource: RelatedTrace }> = ({ - resource, -}) => { - const { projectId } = useNumericProjectId() - const path = `/${projectId}/traces/${resource.id}` +export const TracePanel: React.FC = () => { const { highlightedSpan, loading, selectedSpan, traces } = useTrace() const span = selectedSpan || highlightedSpan + const path = `${window.location.pathname}${window.location.search}` return ( <> - + diff --git a/frontend/src/components/RelatedResources/hooks.ts b/frontend/src/components/RelatedResources/hooks.ts index f9e7482ec41..35d0b224e58 100644 --- a/frontend/src/components/RelatedResources/hooks.ts +++ b/frontend/src/components/RelatedResources/hooks.ts @@ -45,7 +45,7 @@ export type RelatedResource = | RelatedLogs const LOCAL_STORAGE_WIDTH_KEY = 'related-resource-panel-width' -const RELATED_RESOURCE_PARAM = 'related_resource' +export const RELATED_RESOURCE_PARAM = 'related_resource' const localStorageWidth = localStorage.getItem(LOCAL_STORAGE_WIDTH_KEY) const panelWidthVar = makeVar( @@ -112,7 +112,7 @@ export const useRelatedResource = () => { searchParams.set( RELATED_RESOURCE_PARAM, - encodeURI(JSON.stringify(newResource)), + JSON.stringify(newResource), // setSearchParams encodes the string ) setSearchParams(Object.fromEntries(searchParams.entries()))