Browse Source

Revert "ref(extra-data): Replace getMeta (proxy) with _meta object - (#37349)" (#37423)

This reverts commit 31072a4d0129d5573ba7f50619536ceb2785941d.
Priscila Oliveira 2 years ago
parent
commit
92b78734ca

+ 1 - 1
static/app/components/events/eventEntries.tsx

@@ -15,7 +15,7 @@ import EventAttachments from 'sentry/components/events/eventAttachments';
 import EventCause from 'sentry/components/events/eventCause';
 import EventCauseEmpty from 'sentry/components/events/eventCauseEmpty';
 import EventDataSection from 'sentry/components/events/eventDataSection';
-import EventExtraData from 'sentry/components/events/eventExtraData';
+import EventExtraData from 'sentry/components/events/eventExtraData/eventExtraData';
 import EventSdk from 'sentry/components/events/eventSdk';
 import {EventTags} from 'sentry/components/events/eventTags';
 import EventGroupingInfo from 'sentry/components/events/groupingInfo';

+ 19 - 0
static/app/components/events/eventExtraData/eventDataContent.tsx

@@ -0,0 +1,19 @@
+import ContextBlock from 'sentry/components/events/contexts/contextBlock';
+import {defined} from 'sentry/utils';
+
+import getEventExtraDataKnownData from './getEventExtraDataKnownData';
+
+type Props = {
+  raw: boolean;
+  data?: Record<string, any>;
+};
+
+const EventDataContent = ({data, raw}: Props) => {
+  if (!defined(data)) {
+    return null;
+  }
+
+  return <ContextBlock data={getEventExtraDataKnownData(data)} raw={raw} />;
+};
+
+export default EventDataContent;

+ 2 - 9
static/app/components/events/eventExtraData/index.tsx → static/app/components/events/eventExtraData/eventExtraData.tsx

@@ -1,12 +1,10 @@
 import {memo, useState} from 'react';
 
-import ContextBlock from 'sentry/components/events/contexts/contextBlock';
 import EventDataSection from 'sentry/components/events/eventDataSection';
 import {t} from 'sentry/locale';
 import {Event} from 'sentry/types/event';
-import {defined} from 'sentry/utils';
 
-import {getEventExtraDataKnownData} from './getEventExtraDataKnownData';
+import EventDataContent from './eventDataContent';
 
 type Props = {
   event: Event;
@@ -22,12 +20,7 @@ const EventExtraData = memo(
         toggleRaw={() => setRaw(!raw)}
         raw={raw}
       >
-        {!defined(event.context) ? null : (
-          <ContextBlock
-            data={getEventExtraDataKnownData(event.context, event._meta?.context)}
-            raw={raw}
-          />
-        )}
+        <EventDataContent raw={raw} data={event.context} />
       </EventDataSection>
     );
   },

+ 9 - 47
static/app/components/events/eventExtraData/getEventExtraDataKnownData.tsx

@@ -1,64 +1,26 @@
-import isObject from 'lodash/isObject';
-
+import {getMeta} from 'sentry/components/events/meta/metaProxy';
 import {KeyValueListData} from 'sentry/types';
 
-import AnnotatedText from '../meta/annotatedText';
-
 import getEventExtraDataKnownDataDetails from './getEventExtraDataKnownDataDetails';
 import {EventExtraData, EventExtraDataType} from './types';
 
-export function getEventExtraDataKnownData(
-  data: EventExtraData,
-  meta: Record<any, any> | undefined
-): KeyValueListData {
+function getEventExtraDataKnownData(data: EventExtraData): KeyValueListData {
   const knownData: KeyValueListData = [];
 
-  for (const key of Object.keys(data)) {
-    const {subject, value} = getEventExtraDataKnownDataDetails(
+  const dataKeys = Object.keys(data);
+  for (const key of dataKeys) {
+    const knownDataDetails = getEventExtraDataKnownDataDetails(
       data,
       key as EventExtraDataType
     );
 
-    if (Array.isArray(value)) {
-      knownData.push({
-        key,
-        subject,
-        value: value.map((v, index) =>
-          meta?.[key]?.[index]?.[''] ? (
-            <AnnotatedText key={index} value={v} meta={meta?.[key]?.[index]?.['']} />
-          ) : (
-            v
-          )
-        ),
-      });
-      continue;
-    }
-
-    if (isObject(value)) {
-      knownData.push({
-        key,
-        subject,
-        value: Object.keys(value).map((v, index) =>
-          meta?.[key]?.[index]?.[''] ? (
-            <AnnotatedText
-              key={index}
-              value={value[v]}
-              meta={meta?.[key]?.[index]?.['']}
-            />
-          ) : (
-            value[v]
-          )
-        ),
-      });
-    }
-
     knownData.push({
       key,
-      subject,
-      value,
-      meta: meta?.[key]?.[''],
+      ...knownDataDetails,
+      meta: getMeta(data, key),
     });
   }
-
   return knownData;
 }
+
+export default getEventExtraDataKnownData;

+ 0 - 172
tests/js/spec/components/events/eventExtraData.spec.tsx

@@ -1,172 +0,0 @@
-import {render, screen, userEvent} from 'sentry-test/reactTestingLibrary';
-
-import EventExtraData from 'sentry/components/events/eventExtraData';
-
-describe('EventExtraData', function () {
-  it('display redacted data', async function () {
-    const event = {
-      ...TestStubs.Event(),
-      context: {
-        'sys.argv': ['', '', '', '', '', '', '', '', '', ''],
-      },
-      _meta: {
-        context: {
-          'sys.argv': {
-            '0': {
-              '': {
-                rem: [['project:3', 's', 0, 0]],
-                len: 49,
-                chunks: [
-                  {
-                    type: 'redaction',
-                    text: '',
-                    rule_id: 'project:3',
-                    remark: 's',
-                  },
-                ],
-              },
-            },
-            '1': {
-              '': {
-                rem: [['project:3', 's', 0, 0]],
-                len: 17,
-                chunks: [
-                  {
-                    type: 'redaction',
-                    text: '',
-                    rule_id: 'project:3',
-                    remark: 's',
-                  },
-                ],
-              },
-            },
-            '2': {
-              '': {
-                rem: [['project:3', 's', 0, 0]],
-                len: 12,
-                chunks: [
-                  {
-                    type: 'redaction',
-                    text: '',
-                    rule_id: 'project:3',
-                    remark: 's',
-                  },
-                ],
-              },
-            },
-            '3': {
-              '': {
-                rem: [['project:3', 's', 0, 0]],
-                len: 8,
-                chunks: [
-                  {
-                    type: 'redaction',
-                    text: '',
-                    rule_id: 'project:3',
-                    remark: 's',
-                  },
-                ],
-              },
-            },
-            '4': {
-              '': {
-                rem: [['project:3', 's', 0, 0]],
-                len: 30,
-                chunks: [
-                  {
-                    type: 'redaction',
-                    text: '',
-                    rule_id: 'project:3',
-                    remark: 's',
-                  },
-                ],
-              },
-            },
-            '5': {
-              '': {
-                rem: [['project:3', 's', 0, 0]],
-                len: 8,
-                chunks: [
-                  {
-                    type: 'redaction',
-                    text: '',
-                    rule_id: 'project:3',
-                    remark: 's',
-                  },
-                ],
-              },
-            },
-            '6': {
-              '': {
-                rem: [['project:3', 's', 0, 0]],
-                len: 18,
-                chunks: [
-                  {
-                    type: 'redaction',
-                    text: '',
-                    rule_id: 'project:3',
-                    remark: 's',
-                  },
-                ],
-              },
-            },
-            '7': {
-              '': {
-                rem: [['project:3', 's', 0, 0]],
-                len: 8,
-                chunks: [
-                  {
-                    type: 'redaction',
-                    text: '',
-                    rule_id: 'project:3',
-                    remark: 's',
-                  },
-                ],
-              },
-            },
-            '8': {
-              '': {
-                rem: [['project:3', 's', 0, 0]],
-                len: 26,
-                chunks: [
-                  {
-                    type: 'redaction',
-                    text: '',
-                    rule_id: 'project:3',
-                    remark: 's',
-                  },
-                ],
-              },
-            },
-            '9': {
-              '': {
-                rem: [['project:3', 's', 0, 0]],
-                len: 8,
-                chunks: [
-                  {
-                    type: 'redaction',
-                    text: '',
-                    rule_id: 'project:3',
-                    remark: 's',
-                  },
-                ],
-              },
-            },
-            '': {
-              len: 14,
-            },
-          },
-        },
-      },
-    };
-    render(<EventExtraData event={event} />);
-
-    expect(screen.getAllByText(/redacted/)).toHaveLength(10);
-
-    userEvent.hover(screen.getAllByText(/redacted/)[0]);
-
-    expect(
-      await screen.findByText('Replaced because of PII rule "project:3"')
-    ).toBeInTheDocument(); // tooltip description
-  });
-});