mirror of
https://github.com/hanzoai/sentinel.git
synced 2026-09-29 22:34:33 +00:00
49 lines
1.1 KiB
TypeScript
49 lines
1.1 KiB
TypeScript
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>
|
|
);
|
|
}
|