1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- 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.
- const 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>
- );
- };
- export default ValueElement;
|