diff --git a/desktop/app/src/index.tsx b/desktop/app/src/index.tsx index 30595e435..05c29d0dc 100644 --- a/desktop/app/src/index.tsx +++ b/desktop/app/src/index.tsx @@ -91,7 +91,11 @@ export { default as ManagedTable_immutable, ManagedTableProps_immutable, } from './ui/components/table/ManagedTable_immutable'; -export {Value, renderValue} from './ui/components/table/TypeBasedValueRenderer'; +export { + Value, + renderValue, + valueToNullableString, +} from './ui/components/table/TypeBasedValueRenderer'; export { DataValueExtractor, DataInspectorExpanded, diff --git a/desktop/app/src/ui/components/table/TypeBasedValueRenderer.tsx b/desktop/app/src/ui/components/table/TypeBasedValueRenderer.tsx index 05a098cdf..688862ed3 100644 --- a/desktop/app/src/ui/components/table/TypeBasedValueRenderer.tsx +++ b/desktop/app/src/ui/components/table/TypeBasedValueRenderer.tsx @@ -27,6 +27,7 @@ export type Value = } | { type: 'null'; + value: null; }; const WrappingText = styled(Text)({ @@ -59,6 +60,10 @@ const BooleanValue = styled(NonWrappingText)<{active?: boolean}>((props) => ({ })); BooleanValue.displayName = 'TypeBasedValueRenderer:BooleanValue'; +export function valueToNullableString(val: Value): string | null { + return val.value?.toString() ?? null; +} + export function renderValue(val: Value, wordWrap?: boolean) { const TextComponent = wordWrap ? WrappingText : NonWrappingText; switch (val.type) {