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

ref(discover): Remove frontend feature flags for events api usage (#41940)

eventsv2 is deprecated and all ui components are using the events
endpoint now. This removes all the feature flag logic from the front end
since it is no longer needed.
edwardgou-sentry 2 лет назад
Родитель
Сommit
ee809d4a7f

+ 1 - 4
static/app/components/charts/simpleTableChart.tsx

@@ -81,12 +81,9 @@ function SimpleTableChart({
   }
 
   const meta = metadata ?? {};
-  const usingEvents = organization.features.includes(
-    'discover-frontend-use-events-endpoint'
-  );
   const columns = decodeColumnOrder(
     fields.map((field, index) => ({field, alias: fieldAliases[index]})),
-    usingEvents
+    true
   );
 
   return (

+ 262 - 281
static/app/components/discover/transactionsList.spec.jsx

@@ -87,7 +87,7 @@ describe('TransactionsList', function () {
         '<https://sentry.io/fake/next>; rel="next"; results="true"; cursor="0:20:0"';
 
       MockApiClient.addMockResponse({
-        url: `/organizations/${organization.slug}/eventsv2/`,
+        url: `/organizations/${organization.slug}/events/`,
         headers: {Link: pageLinks},
         body: {
           meta: {transaction: 'string', count: 'number'},
@@ -99,7 +99,7 @@ describe('TransactionsList', function () {
         match: [MockApiClient.matchQuery({sort: 'transaction'})],
       });
       MockApiClient.addMockResponse({
-        url: `/organizations/${organization.slug}/eventsv2/`,
+        url: `/organizations/${organization.slug}/events/`,
         headers: {Link: pageLinks},
         body: {
           meta: {transaction: 'string', count: 'number'},
@@ -152,298 +152,279 @@ describe('TransactionsList', function () {
       });
     });
 
-    describe.each(['events', 'eventsv2'])('with %s', function (featureSide) {
-      const isOnEventsFeatureSide = featureSide === 'events';
-      if (isOnEventsFeatureSide) {
-        beforeEach(function () {
-          organization.features.push('performance-frontend-use-events-endpoint');
-        });
-      }
-      it('renders basic UI components', async function () {
-        render(
-          <WrapperComponent
-            api={api}
-            location={location}
-            organization={organization}
-            eventView={eventView}
-            selected={options[0]}
-            options={options}
-            handleDropdownChange={handleDropdownChange}
-          />,
-          {
-            context: routerContext,
-          }
-        );
-
-        expect(await screen.findByTestId('transactions-table')).toBeInTheDocument();
-        expect(
-          screen.getByRole('button', {
-            name: 'Open in Discover',
-          })
-        ).toBeInTheDocument();
-
-        expect(screen.getAllByTestId('table-header')).toHaveLength(2);
-        expect(
-          screen.getByRole('button', {name: 'Filter Transactions'})
-        ).toBeInTheDocument();
-        expect(screen.getByRole('button', {name: 'Previous'})).toBeInTheDocument();
-        expect(screen.getByRole('button', {name: 'Next'})).toBeInTheDocument();
-
-        const gridCells = screen.getAllByTestId('grid-cell');
-        expect(gridCells.map(e => e.textContent)).toEqual(['/a', '100', '/b', '1000']);
+    it('renders basic UI components', async function () {
+      render(
+        <WrapperComponent
+          api={api}
+          location={location}
+          organization={organization}
+          eventView={eventView}
+          selected={options[0]}
+          options={options}
+          handleDropdownChange={handleDropdownChange}
+        />,
+        {
+          context: routerContext,
+        }
+      );
+
+      expect(await screen.findByTestId('transactions-table')).toBeInTheDocument();
+      expect(
+        screen.getByRole('button', {
+          name: 'Open in Discover',
+        })
+      ).toBeInTheDocument();
+
+      expect(screen.getAllByTestId('table-header')).toHaveLength(2);
+      expect(
+        screen.getByRole('button', {name: 'Filter Transactions'})
+      ).toBeInTheDocument();
+      expect(screen.getByRole('button', {name: 'Previous'})).toBeInTheDocument();
+      expect(screen.getByRole('button', {name: 'Next'})).toBeInTheDocument();
+
+      const gridCells = screen.getAllByTestId('grid-cell');
+      expect(gridCells.map(e => e.textContent)).toEqual(['/a', '100', '/b', '1000']);
+    });
+
+    it('renders a trend view', async function () {
+      options.push({
+        sort: {kind: 'desc', field: 'trend_percentage()'},
+        value: 'regression',
+        label: t('Trending Regressions'),
+        trendType: 'regression',
       });
+      render(
+        <WrapperComponent
+          api={api}
+          location={location}
+          organization={organization}
+          trendView={eventView}
+          selected={options[2]}
+          options={options}
+          handleDropdownChange={handleDropdownChange}
+        />,
+        {
+          context: routerContext,
+        }
+      );
 
-      it('renders a trend view', async function () {
-        options.push({
-          sort: {kind: 'desc', field: 'trend_percentage()'},
-          value: 'regression',
-          label: t('Trending Regressions'),
-          trendType: 'regression',
-        });
-        render(
-          <WrapperComponent
-            api={api}
-            location={location}
-            organization={organization}
-            trendView={eventView}
-            selected={options[2]}
-            options={options}
-            handleDropdownChange={handleDropdownChange}
-          />,
-          {
-            context: routerContext,
-          }
-        );
-
-        expect(await screen.findByTestId('transactions-table')).toBeInTheDocument();
-
-        const filterDropdown = screen.getByRole('button', {
-          name: 'Filter Trending Regressions',
-        });
-        expect(filterDropdown).toBeInTheDocument();
-        userEvent.click(filterDropdown);
-
-        const menuOptions = await screen.findAllByRole('menuitemradio');
-        expect(menuOptions.map(e => e.textContent)).toEqual([
-          'Transactions',
-          'Failing Transactions',
-          'Trending Regressions',
-        ]);
+      expect(await screen.findByTestId('transactions-table')).toBeInTheDocument();
 
-        expect(
-          screen.queryByRole('button', {
-            name: 'Open in Discover',
-          })
-        ).not.toBeInTheDocument();
-
-        expect(screen.getByRole('button', {name: 'Previous'})).toBeInTheDocument();
-        expect(screen.getByRole('button', {name: 'Next'})).toBeInTheDocument();
-
-        const gridCells = screen.getAllByTestId('grid-cell');
-        expect(gridCells.map(e => e.textContent)).toEqual(
-          expect.arrayContaining([
-            '/a',
-            '(no value)',
-            '(no value)',
-            '/b',
-            '(no value)',
-            '(no value)',
-          ])
-        );
-
-        const tableHeadings = screen.getAllByTestId('table-header');
-        expect(tableHeadings.map(e => e.textContent)).toEqual([
-          'transaction',
-          'percentage',
-          'difference',
-        ]);
+      const filterDropdown = screen.getByRole('button', {
+        name: 'Filter Trending Regressions',
       });
+      expect(filterDropdown).toBeInTheDocument();
+      userEvent.click(filterDropdown);
+
+      const menuOptions = await screen.findAllByRole('menuitemradio');
+      expect(menuOptions.map(e => e.textContent)).toEqual([
+        'Transactions',
+        'Failing Transactions',
+        'Trending Regressions',
+      ]);
+
+      expect(
+        screen.queryByRole('button', {
+          name: 'Open in Discover',
+        })
+      ).not.toBeInTheDocument();
+
+      expect(screen.getByRole('button', {name: 'Previous'})).toBeInTheDocument();
+      expect(screen.getByRole('button', {name: 'Next'})).toBeInTheDocument();
+
+      const gridCells = screen.getAllByTestId('grid-cell');
+      expect(gridCells.map(e => e.textContent)).toEqual(
+        expect.arrayContaining([
+          '/a',
+          '(no value)',
+          '(no value)',
+          '/b',
+          '(no value)',
+          '(no value)',
+        ])
+      );
+
+      const tableHeadings = screen.getAllByTestId('table-header');
+      expect(tableHeadings.map(e => e.textContent)).toEqual([
+        'transaction',
+        'percentage',
+        'difference',
+      ]);
+    });
 
-      it('renders default titles', async function () {
-        render(
-          <WrapperComponent
-            api={api}
-            location={location}
-            organization={organization}
-            eventView={eventView}
-            selected={options[0]}
-            options={options}
-            handleDropdownChange={handleDropdownChange}
-          />,
-          {
-            context: routerContext,
-          }
-        );
-
-        expect(await screen.findByTestId('transactions-table')).toBeInTheDocument();
-
-        const tableHeadings = screen.getAllByTestId('table-header');
-        expect(tableHeadings.map(e => e.textContent)).toEqual(['transaction', 'count()']);
-      });
+    it('renders default titles', async function () {
+      render(
+        <WrapperComponent
+          api={api}
+          location={location}
+          organization={organization}
+          eventView={eventView}
+          selected={options[0]}
+          options={options}
+          handleDropdownChange={handleDropdownChange}
+        />,
+        {
+          context: routerContext,
+        }
+      );
 
-      it('renders custom titles', async function () {
-        render(
-          <WrapperComponent
-            api={api}
-            location={location}
-            organization={organization}
-            eventView={eventView}
-            selected={options[0]}
-            options={options}
-            handleDropdownChange={handleDropdownChange}
-            titles={['foo', 'bar']}
-          />,
-          {
-            context: routerContext,
-          }
-        );
-
-        expect(await screen.findByTestId('transactions-table')).toBeInTheDocument();
-
-        const tableHeadings = screen.getAllByTestId('table-header');
-        expect(tableHeadings.map(e => e.textContent)).toEqual(['foo', 'bar']);
-      });
+      expect(await screen.findByTestId('transactions-table')).toBeInTheDocument();
 
-      it('allows users to change the sort in the dropdown', async function () {
-        let component = null;
-
-        const handleDropdown = value => {
-          const selected = options.find(option => option.value === value);
-          if (selected && component) {
-            component.rerender(
-              <WrapperComponent
-                selected={selected}
-                api={api}
-                location={location}
-                organization={organization}
-                eventView={eventView}
-                options={options}
-              />
-            );
-          }
-        };
-
-        component = render(
-          <WrapperComponent
-            api={api}
-            location={location}
-            organization={organization}
-            eventView={eventView}
-            selected={options[0]}
-            options={options}
-            handleDropdownChange={handleDropdown}
-          />,
-          {
-            context: routerContext,
-          }
-        );
-
-        expect(await screen.findByTestId('transactions-table')).toBeInTheDocument();
-
-        const gridCells = screen.getAllByTestId('grid-cell');
-        expect(gridCells.map(e => e.textContent)).toEqual(['/a', '100', '/b', '1000']);
-
-        const filterDropdown = screen.getByRole('button', {
-          name: 'Filter Transactions',
-        });
-        expect(filterDropdown).toBeInTheDocument();
-        userEvent.click(filterDropdown);
-
-        const menuOptions = await screen.findAllByRole('menuitemradio');
-        expect(menuOptions.map(e => e.textContent)).toEqual([
-          'Transactions',
-          'Failing Transactions',
-        ]);
+      const tableHeadings = screen.getAllByTestId('table-header');
+      expect(tableHeadings.map(e => e.textContent)).toEqual(['transaction', 'count()']);
+    });
 
-        userEvent.click(menuOptions[1]); // Failing transactions is 'count' as per the test options
-
-        waitFor(() => {
-          // now the sort is descending by count
-          expect(screen.getAllByTestId('grid-cell').map(e => e.textContent)).toEqual([
-            '/a',
-            '100',
-            '/b',
-            '1000',
-          ]);
-        });
-      });
+    it('renders custom titles', async function () {
+      render(
+        <WrapperComponent
+          api={api}
+          location={location}
+          organization={organization}
+          eventView={eventView}
+          selected={options[0]}
+          options={options}
+          handleDropdownChange={handleDropdownChange}
+          titles={['foo', 'bar']}
+        />,
+        {
+          context: routerContext,
+        }
+      );
 
-      it('generates link for the transaction cell', async function () {
-        render(
-          <WrapperComponent
-            api={api}
-            location={location}
-            organization={organization}
-            eventView={eventView}
-            selected={options[0]}
-            options={options}
-            handleDropdownChange={handleDropdownChange}
-            generateLink={generateLink}
-          />,
-          {context: routerContext}
-        );
-
-        expect(await screen.findByTestId('transactions-table')).toBeInTheDocument();
-
-        const links = screen.getAllByRole('link');
-        expect(links).toHaveLength(2);
-        if (isOnEventsFeatureSide) {
-          expect(links[0]).toHaveAttribute(
-            'href',
-            '/org-slug?count%28%29=100&transaction=%2Fa'
-          );
-          expect(links[1]).toHaveAttribute(
-            'href',
-            '/org-slug?count%28%29=1000&transaction=%2Fb'
-          );
-        } else {
-          expect(links[0]).toHaveAttribute(
-            'href',
-            '/org-slug?count=100&transaction=%2Fa'
-          );
-          expect(links[1]).toHaveAttribute(
-            'href',
-            '/org-slug?count=1000&transaction=%2Fb'
+      expect(await screen.findByTestId('transactions-table')).toBeInTheDocument();
+
+      const tableHeadings = screen.getAllByTestId('table-header');
+      expect(tableHeadings.map(e => e.textContent)).toEqual(['foo', 'bar']);
+    });
+
+    it('allows users to change the sort in the dropdown', async function () {
+      let component = null;
+
+      const handleDropdown = value => {
+        const selected = options.find(option => option.value === value);
+        if (selected && component) {
+          component.rerender(
+            <WrapperComponent
+              selected={selected}
+              api={api}
+              location={location}
+              organization={organization}
+              eventView={eventView}
+              options={options}
+            />
           );
         }
-      });
+      };
 
-      it('handles forceLoading correctly', async function () {
-        const component = render(
-          <WrapperComponent
-            api={null}
-            location={location}
-            organization={organization}
-            eventView={eventView}
-            selected={options[0]}
-            options={options}
-            handleDropdownChange={handleDropdownChange}
-            forceLoading
-          />,
-          {context: routerContext}
-        );
-
-        expect(await screen.findByTestId('loading-indicator')).toBeInTheDocument();
-
-        component.rerender(
-          <WrapperComponent
-            api={null}
-            location={location}
-            organization={organization}
-            eventView={eventView}
-            selected={options[0]}
-            options={options}
-            handleDropdownChange={handleDropdownChange}
-          />,
-          {context: routerContext}
-        );
-
-        expect(await screen.findByTestId('transactions-table')).toBeInTheDocument();
-        expect(screen.queryByTestId('loading-indicator')).not.toBeInTheDocument();
-
-        const gridCells = screen.getAllByTestId('grid-cell');
-        expect(gridCells.map(e => e.textContent)).toEqual(['/a', '100', '/b', '1000']);
+      component = render(
+        <WrapperComponent
+          api={api}
+          location={location}
+          organization={organization}
+          eventView={eventView}
+          selected={options[0]}
+          options={options}
+          handleDropdownChange={handleDropdown}
+        />,
+        {
+          context: routerContext,
+        }
+      );
+
+      expect(await screen.findByTestId('transactions-table')).toBeInTheDocument();
+
+      const gridCells = screen.getAllByTestId('grid-cell');
+      expect(gridCells.map(e => e.textContent)).toEqual(['/a', '100', '/b', '1000']);
+
+      const filterDropdown = screen.getByRole('button', {
+        name: 'Filter Transactions',
+      });
+      expect(filterDropdown).toBeInTheDocument();
+      userEvent.click(filterDropdown);
+
+      const menuOptions = await screen.findAllByRole('menuitemradio');
+      expect(menuOptions.map(e => e.textContent)).toEqual([
+        'Transactions',
+        'Failing Transactions',
+      ]);
+
+      userEvent.click(menuOptions[1]); // Failing transactions is 'count' as per the test options
+
+      waitFor(() => {
+        // now the sort is descending by count
+        expect(screen.getAllByTestId('grid-cell').map(e => e.textContent)).toEqual([
+          '/a',
+          '100',
+          '/b',
+          '1000',
+        ]);
       });
     });
+
+    it('generates link for the transaction cell', async function () {
+      render(
+        <WrapperComponent
+          api={api}
+          location={location}
+          organization={organization}
+          eventView={eventView}
+          selected={options[0]}
+          options={options}
+          handleDropdownChange={handleDropdownChange}
+          generateLink={generateLink}
+        />,
+        {context: routerContext}
+      );
+
+      expect(await screen.findByTestId('transactions-table')).toBeInTheDocument();
+
+      const links = screen.getAllByRole('link');
+      expect(links).toHaveLength(2);
+      expect(links[0]).toHaveAttribute(
+        'href',
+        '/org-slug?count%28%29=100&transaction=%2Fa'
+      );
+      expect(links[1]).toHaveAttribute(
+        'href',
+        '/org-slug?count%28%29=1000&transaction=%2Fb'
+      );
+    });
+
+    it('handles forceLoading correctly', async function () {
+      const component = render(
+        <WrapperComponent
+          api={null}
+          location={location}
+          organization={organization}
+          eventView={eventView}
+          selected={options[0]}
+          options={options}
+          handleDropdownChange={handleDropdownChange}
+          forceLoading
+        />,
+        {context: routerContext}
+      );
+
+      expect(await screen.findByTestId('loading-indicator')).toBeInTheDocument();
+
+      component.rerender(
+        <WrapperComponent
+          api={null}
+          location={location}
+          organization={organization}
+          eventView={eventView}
+          selected={options[0]}
+          options={options}
+          handleDropdownChange={handleDropdownChange}
+        />,
+        {context: routerContext}
+      );
+
+      expect(await screen.findByTestId('transactions-table')).toBeInTheDocument();
+      expect(screen.queryByTestId('loading-indicator')).not.toBeInTheDocument();
+
+      const gridCells = screen.getAllByTestId('grid-cell');
+      expect(gridCells.map(e => e.textContent)).toEqual(['/a', '100', '/b', '1000']);
+    });
   });
 });

+ 2 - 5
static/app/components/discover/transactionsList.tsx

@@ -229,9 +229,6 @@ class _TransactionsList extends Component<Props> {
       generateLink,
       forceLoading,
     } = this.props;
-    const useEvents = organization.features.includes(
-      'performance-frontend-use-events-endpoint'
-    );
 
     const eventView = this.getEventView();
     const columnOrder = eventView.getColumns();
@@ -258,7 +255,7 @@ class _TransactionsList extends Component<Props> {
             titles={titles}
             generateLink={generateLink}
             handleCellAction={handleCellAction}
-            useAggregateAlias={!useEvents}
+            useAggregateAlias={false}
           />
         </GuideAnchor>
       </Fragment>
@@ -280,7 +277,7 @@ class _TransactionsList extends Component<Props> {
         limit={limit}
         cursor={cursor}
         referrer="api.discover.transactions-list"
-        useEvents={useEvents}
+        useEvents
       >
         {tableRenderer}
       </DiscoverQuery>

Разница между файлами не показана из-за своего большого размера
+ 462 - 482
static/app/components/modals/widgetViewerModal.spec.tsx


+ 1 - 1
static/app/components/modals/widgetViewerModal.tsx

@@ -372,7 +372,7 @@ function WidgetViewerModal(props: Props) {
     fields.map(field => ({
       field,
     })),
-    organization.features.includes('discover-frontend-use-events-endpoint')
+    true
   );
   const columnSortBy = eventView.getSorts();
   columnOrder = columnOrder.map((column, index) => ({

+ 1 - 4
static/app/components/modals/widgetViewerModal/widgetViewerTableCell.tsx

@@ -170,9 +170,6 @@ export const renderGridBodyCell =
     const columnKey = String(column.key);
     const isTopEvents = widget.displayType === DisplayType.TOP_N;
     let cell: React.ReactNode;
-    const isAlias =
-      !organization.features.includes('discover-frontend-use-events-endpoint') &&
-      widget.widgetType !== WidgetType.RELEASE;
     switch (widget.widgetType) {
       case WidgetType.ISSUE:
         cell = (
@@ -188,7 +185,7 @@ export const renderGridBodyCell =
         cell = getFieldRenderer(
           columnKey,
           tableData.meta,
-          isAlias
+          false
         )(dataRow, {
           organization,
           location,

+ 5 - 5
static/app/components/performance/searchBar.spec.tsx

@@ -58,7 +58,7 @@ describe('SearchBar', () => {
     jest.clearAllMocks();
 
     eventsMock = MockApiClient.addMockResponse({
-      url: `/organizations/${organization.slug}/eventsv2/`,
+      url: `/organizations/${organization.slug}/events/`,
       body: {data: []},
     });
   });
@@ -69,7 +69,7 @@ describe('SearchBar', () => {
 
   it('Sends user input as a transaction search and shows the results', async () => {
     eventsMock = MockApiClient.addMockResponse({
-      url: `/organizations/${organization.slug}/eventsv2/`,
+      url: `/organizations/${organization.slug}/events/`,
       body: {
         data: [{transaction: 'clients.call'}, {transaction: 'clients.fetch'}],
       },
@@ -88,7 +88,7 @@ describe('SearchBar', () => {
 
     expect(eventsMock).toHaveBeenCalledTimes(1);
     expect(eventsMock).toHaveBeenCalledWith(
-      '/organizations/org-slug/eventsv2/',
+      '/organizations/org-slug/events/',
       expect.objectContaining({
         query: expect.objectContaining({
           query: 'transaction:*proje* event.type:transaction',
@@ -103,7 +103,7 @@ describe('SearchBar', () => {
   it('Responds to keyboard navigation', async () => {
     const onSearch = jest.fn();
     eventsMock = MockApiClient.addMockResponse({
-      url: `/organizations/${organization.slug}/eventsv2/`,
+      url: `/organizations/${organization.slug}/events/`,
       body: {
         data: [
           {project_id: 1, transaction: 'clients.call'},
@@ -146,7 +146,7 @@ describe('SearchBar', () => {
   it('Submits wildcard searches', async () => {
     const onSearch = jest.fn();
     eventsMock = MockApiClient.addMockResponse({
-      url: `/organizations/${organization.slug}/eventsv2/`,
+      url: `/organizations/${organization.slug}/events/`,
       body: {
         data: [
           {project_id: 1, transaction: 'clients.call'},

+ 1 - 7
static/app/components/performance/searchBar.tsx

@@ -39,13 +39,7 @@ function SearchBar(props: SearchBarProps) {
   const api = useApi();
   const eventView = _eventView.clone();
 
-  const useEvents = organization.features.includes(
-    'performance-frontend-use-events-endpoint'
-  );
-
-  const url = useEvents
-    ? `/organizations/${organization.slug}/events/`
-    : `/organizations/${organization.slug}/eventsv2/`;
+  const url = `/organizations/${organization.slug}/events/`;
 
   const projectIdStrings = (eventView.project as Readonly<number>[])?.map(String);
 

+ 10 - 29
static/app/views/dashboardsV2/datasetConfig/errorsAndTransactions.tsx

@@ -120,12 +120,7 @@ export const ErrorsAndTransactionsConfig: DatasetConfig<
     referrer?: string,
     mepSetting?: MEPState | null
   ) => {
-    const shouldUseEvents = organization.features.includes(
-      'discover-frontend-use-events-endpoint'
-    );
-    const url = shouldUseEvents
-      ? `/organizations/${organization.slug}/events/`
-      : `/organizations/${organization.slug}/eventsv2/`;
+    const url = `/organizations/${organization.slug}/events/`;
     return getEventsRequest(
       url,
       api,
@@ -268,21 +263,15 @@ function getEventsTableFieldOptions(
 
 function transformEventsResponseToTable(
   data: TableData | EventsTableData,
-  _widgetQuery: WidgetQuery,
-  organization: Organization
+  _widgetQuery: WidgetQuery
 ): TableData {
   let tableData = data;
-  const shouldUseEvents = organization.features.includes(
-    'discover-frontend-use-events-endpoint'
-  );
   // events api uses a different response format so we need to construct tableData differently
-  if (shouldUseEvents) {
-    const {fields, ...otherMeta} = (data as EventsTableData).meta ?? {};
-    tableData = {
-      ...data,
-      meta: {...fields, ...otherMeta},
-    } as TableData;
-  }
+  const {fields, ...otherMeta} = (data as EventsTableData).meta ?? {};
+  tableData = {
+    ...data,
+    meta: {...fields, ...otherMeta},
+  } as TableData;
   return tableData as TableData;
 }
 
@@ -449,15 +438,7 @@ function renderTraceAsLinkable(
   );
 }
 
-export function getCustomEventsFieldRenderer(
-  field: string,
-  meta: MetaType,
-  organization?: Organization
-) {
-  const isAlias = !organization?.features.includes(
-    'discover-frontend-use-events-endpoint'
-  );
-
+export function getCustomEventsFieldRenderer(field: string, meta: MetaType) {
   if (field === 'id') {
     return renderEventIdAsLinkable;
   }
@@ -484,10 +465,10 @@ export function getCustomEventsFieldRenderer(
           </Container>
         );
       }
-      return getFieldRenderer(field, meta, isAlias)(data, baggage);
+      return getFieldRenderer(field, meta, false)(data, baggage);
     };
   }
-  return getFieldRenderer(field, meta, isAlias);
+  return getFieldRenderer(field, meta, false);
 }
 
 function getEventsRequest(

+ 2 - 2
static/app/views/dashboardsV2/detail.spec.jsx

@@ -77,7 +77,7 @@ describe('Dashboards > Detail', function () {
         body: {data: [], meta: {}},
       });
       MockApiClient.addMockResponse({
-        url: '/organizations/org-slug/eventsv2/',
+        url: '/organizations/org-slug/events/',
         method: 'GET',
         body: [],
       });
@@ -327,7 +327,7 @@ describe('Dashboards > Detail', function () {
         body: [],
       });
       MockApiClient.addMockResponse({
-        url: '/organizations/org-slug/eventsv2/',
+        url: '/organizations/org-slug/events/',
         method: 'GET',
         body: [],
       });

Некоторые файлы не были показаны из-за большого количества измененных файлов