From 0e5c6c9f9924a5e5bcc048de02a2b1d79cf61fa0 Mon Sep 17 00:00:00 2001 From: Punith1117 Date: Fri, 5 Jun 2026 15:13:31 +0530 Subject: [PATCH] fix(collection table): support conditional fields in columns schema - Convert conditional field values to their discriminant string when rendering table columns to avoid [object Object] output. - Update column schema typing to include ConditionalField so it can be used in collection column definitions. --- packages/keystatic/src/app/CollectionPage.tsx | 6 ++++++ packages/keystatic/src/config.tsx | 8 +++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/keystatic/src/app/CollectionPage.tsx b/packages/keystatic/src/app/CollectionPage.tsx index 2d086dd03..e1649c9a8 100644 --- a/packages/keystatic/src/app/CollectionPage.tsx +++ b/packages/keystatic/src/app/CollectionPage.tsx @@ -570,6 +570,12 @@ function CollectionTable( if (val == null) { val = undefined; + } else if ( + collection.schema[column].kind === 'conditional' && + typeof val === 'object' && + 'discriminant' in val + ) { + val = val.discriminant + ''; } else { val = val + ''; } diff --git a/packages/keystatic/src/config.tsx b/packages/keystatic/src/config.tsx index 4c95368f3..e12eda39d 100644 --- a/packages/keystatic/src/config.tsx +++ b/packages/keystatic/src/config.tsx @@ -1,7 +1,12 @@ import { ColorScheme } from '@keystar/ui/types'; import { ReactElement } from 'react'; -import { ComponentSchema, FormField, SlugFormField } from './form/api'; +import { + ComponentSchema, + ConditionalField, + FormField, + SlugFormField, +} from './form/api'; import type { Locale } from './app/l10n/locales'; import { RepoConfig } from './app/repo-config'; @@ -189,6 +194,7 @@ export function collection< string | number | boolean | Date | null | undefined > | SlugFormField + | ConditionalField ? K & string : never; }[keyof Schema][];