123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- import {Fragment, isValidElement} from 'react';
- import {t} from 'sentry/locale';
- import {Redaction} from './redaction';
- type Props = {
- value: React.ReactNode;
- meta?: Record<any, any>;
- };
- // If you find yourself modifying this component to fix some tooltip bug,
- // consider that `meta` is not properly passed into this component in the
- // first place. It's much more likely that `withMeta` is buggy or improperly
- // used than that this component has a bug.
- export function ValueElement({value, meta}: Props) {
- if (!!value && meta) {
- return <Redaction>{value}</Redaction>;
- }
- if (meta?.err?.length) {
- return (
- <Redaction withoutBackground>
- <i>{`<${t('invalid')}>`}</i>
- </Redaction>
- );
- }
- if (meta?.rem?.length) {
- return (
- <Redaction>
- <i>{`<${t('redacted')}>`}</i>
- </Redaction>
- );
- }
- if (isValidElement(value)) {
- return value;
- }
- return (
- <Fragment>
- {typeof value === 'object' || typeof value === 'boolean'
- ? JSON.stringify(value)
- : value}
- </Fragment>
- );
- }
|