From 67086c76922cd5c9771e4ed25b38571297e6c25a Mon Sep 17 00:00:00 2001 From: Daniel da Silva Date: Thu, 20 Mar 2025 17:01:53 +0000 Subject: [PATCH] Fix render extension schema Fix #32 --- packages/data-plugins/lib/collections/ext-render.ts | 6 ++++++ packages/data-widgets/lib/widgets/tagger.tsx | 8 ++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/packages/data-plugins/lib/collections/ext-render.ts b/packages/data-plugins/lib/collections/ext-render.ts index 7b16bc9..e91b492 100644 --- a/packages/data-plugins/lib/collections/ext-render.ts +++ b/packages/data-plugins/lib/collections/ext-render.ts @@ -70,6 +70,9 @@ export class PluginRender extends Plugin { label: 'Colormap', type: 'string', 'ui:widget': 'tagger', + allowOther: { + type: 'string' + }, enum: colorMaps }, colormap: { @@ -89,6 +92,9 @@ export class PluginRender extends Plugin { label: 'Resampling', type: 'string', 'ui:widget': 'tagger', + allowOther: { + type: 'string' + }, enum: [ ['near', 'Nearest neighbour'], ['bilinear', 'Bilinear'], diff --git a/packages/data-widgets/lib/widgets/tagger.tsx b/packages/data-widgets/lib/widgets/tagger.tsx index 2be356f..09dc62e 100644 --- a/packages/data-widgets/lib/widgets/tagger.tsx +++ b/packages/data-widgets/lib/widgets/tagger.tsx @@ -53,12 +53,12 @@ export function WidgetTagger(props: WidgetProps) { if (field.type === 'string') { if (!field.enum) { - throw new Error("WidgetTagger: 'enum' is required for string fields"); + throw new Error("WidgetTagger: 'enum' is required when type is 'string'"); } if (field.allowOther?.type !== 'string') { throw new Error( - "WidgetTagger: 'allowOther.type' is required for the 'tagger' widget. Use the 'select' widget instead." + "WidgetTagger: 'allowOther.type' is required for the 'tagger' widget with 'enum' options. Use the 'select' widget instead." ); } @@ -68,14 +68,14 @@ export function WidgetTagger(props: WidgetProps) { if (field.type === 'array') { if (field.items.type !== 'string') { throw new Error( - "WidgetTagger: 'items.type' must be 'string' for array fields" + "WidgetTagger: 'items.type' must be 'string' when type is 'array'" ); } if (field.items.enum) { if (field.items.allowOther?.type !== 'string') { throw new Error( - "WidgetTagger: 'items.allowOther.type' is required for the 'tagger' widget with 'enum'. Use the 'select' widget instead." + "WidgetTagger: 'items.allowOther.type' is required for the 'tagger' widget with 'enum' options. Use the 'select' widget instead." ); }