Просмотр исходного кода

fix(trace): remove click outside (#69862)

Remove deselecting of current node and only fire the default blur event
on the current row clicked
Jonas 10 месяцев назад
Родитель
Сommit
9afa04d7c0

+ 1 - 27
static/app/views/performance/newTraceDetails/index.tsx

@@ -42,7 +42,6 @@ import {
   type DispatchingReducerMiddleware,
   useDispatchingReducer,
 } from 'sentry/utils/useDispatchingReducer';
-import useOnClickOutside from 'sentry/utils/useOnClickOutside';
 import useOrganization from 'sentry/utils/useOrganization';
 import {useParams} from 'sentry/utils/useParams';
 import useProjects from 'sentry/utils/useProjects';
@@ -718,33 +717,8 @@ function TraceViewContent(props: TraceViewContentProps) {
     storeTraceViewPreferences(traceState.preferences);
   }, [traceState.preferences]);
 
-  // Setup outside click handler so that we can clear the currently clicked node
-  const onOutsideTraceContainerClick = useCallback(() => {
-    if (tree.type !== 'trace') {
-      // Dont clear the URL in case the trace is still loading or failed for some reason,
-      // we want to keep the eventId in the URL so the user can share the URL with support
-      return;
-    }
-    // we will drop eventId such that after users clicks outside and shares the URL
-    const {
-      node: _node,
-      eventId: _eventId,
-      ...queryParamsWithoutNode
-    } = qs.parse(location.search);
-
-    browserHistory.push({
-      pathname: location.pathname,
-      query: queryParamsWithoutNode,
-    });
-
-    traceDispatch({type: 'clear'});
-  }, [tree, traceDispatch]);
-
-  const [clickOutsideRef, setClickOutsideRef] = useState<HTMLElement | null>(null);
   const [traceGridRef, setTraceGridRef] = useState<HTMLElement | null>(null);
 
-  useOnClickOutside(clickOutsideRef, onOutsideTraceContainerClick);
-
   return (
     <TraceExternalLayout>
       <TraceUXChangeAlert />
@@ -763,7 +737,7 @@ function TraceViewContent(props: TraceViewContentProps) {
         traces={props.trace}
         traceID={props.traceSlug}
       />
-      <TraceInnerLayout ref={setClickOutsideRef}>
+      <TraceInnerLayout>
         <TraceToolbar>
           <TraceSearchInput
             trace_state={traceState}

+ 4 - 3
static/app/views/performance/newTraceDetails/trace.spec.tsx

@@ -1287,9 +1287,10 @@ describe('trace view', () => {
         expect(screen.queryAllByTestId(DRAWER_TABS_TEST_ID)).toHaveLength(3);
       });
 
-      await userEvent.click(
-        await screen.findAllByTestId(DRAWER_TABS_PIN_BUTTON_TEST_ID)[0]
-      );
+      const tabButtons = screen.queryAllByTestId(DRAWER_TABS_PIN_BUTTON_TEST_ID);
+      expect(tabButtons).toHaveLength(2);
+
+      await userEvent.click(tabButtons[0]);
       await waitFor(() => {
         expect(screen.queryAllByTestId(DRAWER_TABS_TEST_ID)).toHaveLength(2);
       });