From 873faf86d32d05291a610623f8bd7c30f8598556 Mon Sep 17 00:00:00 2001 From: Ricky Smith Date: Wed, 15 Jan 2025 11:28:30 +0100 Subject: [PATCH] Fix type error --- .../blocks/fields/CheckboxItemsBlock.tsx | 16 ++++++++++------ .../blocks/fields/RadioItemsBlock.tsx | 16 ++++++++++------ .../blocks/fields/SelectOptionsBlock.tsx | 16 ++++++++++------ demo/api/block-meta.json | 6 +++--- .../form-builder/blocks/select-options.block.ts | 2 +- 5 files changed, 34 insertions(+), 22 deletions(-) diff --git a/demo/admin/src/formBuilder/blocks/fields/CheckboxItemsBlock.tsx b/demo/admin/src/formBuilder/blocks/fields/CheckboxItemsBlock.tsx index a9d6c76df45..853b24b5269 100644 --- a/demo/admin/src/formBuilder/blocks/fields/CheckboxItemsBlock.tsx +++ b/demo/admin/src/formBuilder/blocks/fields/CheckboxItemsBlock.tsx @@ -1,4 +1,5 @@ -import { BlockInterface, BlocksFinalForm, createBlockSkeleton, createListBlock } from "@comet/blocks-admin"; +import { BlockAdminComponent, BlockInterface, BlocksFinalForm, createBlockSkeleton, createListBlock } from "@comet/blocks-admin"; +import { CheckboxItemsBlockData } from "@src/blocks.generated"; import { RichTextBlockField } from "@src/formBuilder/blocks/common/RichTextBlock"; import { FieldNamesContext } from "@src/formBuilder/utils/FieldNamesContext"; import { DisplayFieldGroup } from "@src/formBuilder/utils/FieldSection"; @@ -60,14 +61,17 @@ export const CheckboxItemsBlock: BlockInterface = createListBlock({ itemsName: , }); -const OriginalAdminComponent = CheckboxItemsBlock.AdminComponent; -CheckboxItemsBlock.AdminComponent = ({ ...props }) => { - // @ts-expect-error TODO: Fix this - const fieldNames = props.state.blocks.filter(({ visible, props }) => visible && props.fieldName).map(({ props }) => props.fieldName); +const NewAdminComponent: BlockAdminComponent = (props) => { + const fieldNames = props.state.blocks + .filter(({ visible, props }) => visible && props.fieldName) + .map(({ props }) => props.fieldName) + .filter((fieldName) => fieldName !== undefined); return ( - + ); }; + +CheckboxItemsBlock.AdminComponent = NewAdminComponent; diff --git a/demo/admin/src/formBuilder/blocks/fields/RadioItemsBlock.tsx b/demo/admin/src/formBuilder/blocks/fields/RadioItemsBlock.tsx index 896c2990dd9..606fc69e140 100644 --- a/demo/admin/src/formBuilder/blocks/fields/RadioItemsBlock.tsx +++ b/demo/admin/src/formBuilder/blocks/fields/RadioItemsBlock.tsx @@ -1,4 +1,5 @@ -import { BlockInterface, BlocksFinalForm, createBlockSkeleton, createListBlock } from "@comet/blocks-admin"; +import { BlockAdminComponent, BlockInterface, BlocksFinalForm, createBlockSkeleton, createListBlock } from "@comet/blocks-admin"; +import { RadioItemsBlockData } from "@src/blocks.generated"; import { RichTextBlockField } from "@src/formBuilder/blocks/common/RichTextBlock"; import { FieldNamesContext } from "@src/formBuilder/utils/FieldNamesContext"; import { DisplayFieldGroup, PropsAndValidationFieldGroup } from "@src/formBuilder/utils/FieldSection"; @@ -61,14 +62,17 @@ export const RadioItemsBlock: BlockInterface = createListBlock({ itemsName: , }); -const OriginalAdminComponent = RadioItemsBlock.AdminComponent; -RadioItemsBlock.AdminComponent = ({ ...props }) => { - // @ts-expect-error TODO: Fix this - const fieldNames = props.state.blocks.filter(({ visible, props }) => visible && props.fieldName).map(({ props }) => props.fieldName); +const NewAdminComponent: BlockAdminComponent = (props) => { + const fieldNames = props.state.blocks + .filter(({ visible, props }) => visible && props.fieldName) + .map(({ props }) => props.fieldName) + .filter((fieldName) => fieldName !== undefined); return ( - + ); }; + +RadioItemsBlock.AdminComponent = NewAdminComponent; diff --git a/demo/admin/src/formBuilder/blocks/fields/SelectOptionsBlock.tsx b/demo/admin/src/formBuilder/blocks/fields/SelectOptionsBlock.tsx index 7fd40bf8989..823a00080ba 100644 --- a/demo/admin/src/formBuilder/blocks/fields/SelectOptionsBlock.tsx +++ b/demo/admin/src/formBuilder/blocks/fields/SelectOptionsBlock.tsx @@ -1,5 +1,6 @@ import { TextField } from "@comet/admin"; -import { BlockInterface, BlocksFinalForm, createBlockSkeleton, createListBlock } from "@comet/blocks-admin"; +import { BlockAdminComponent, BlockInterface, BlocksFinalForm, createBlockSkeleton, createListBlock } from "@comet/blocks-admin"; +import { SelectOptionsBlockData } from "@src/blocks.generated"; import { FieldNamesContext } from "@src/formBuilder/utils/FieldNamesContext"; import { DisplayFieldGroup, PropsAndValidationFieldGroup } from "@src/formBuilder/utils/FieldSection"; import { FieldNameField } from "@src/formBuilder/utils/PropsAndValidationGroupFields"; @@ -37,14 +38,17 @@ export const SelectOptionsBlock: BlockInterface = createListBlock({ itemsName: , }); -const OriginalAdminComponent = SelectOptionsBlock.AdminComponent; -SelectOptionsBlock.AdminComponent = ({ ...props }) => { - // @ts-expect-error TODO: Fix this - const fieldNames = props.state.blocks.filter(({ visible, props }) => visible && props.fieldName).map(({ props }) => props.fieldName); +const NewAdminComponent: BlockAdminComponent = (props) => { + const fieldNames = props.state.blocks + .filter(({ visible, props }) => visible && props.fieldName) + .map(({ props }) => props.fieldName) + .filter((fieldName) => fieldName !== undefined); return ( - + ); }; + +SelectOptionsBlock.AdminComponent = NewAdminComponent; diff --git a/demo/api/block-meta.json b/demo/api/block-meta.json index ba56a6e39b5..d01577dc50a 100644 --- a/demo/api/block-meta.json +++ b/demo/api/block-meta.json @@ -2879,7 +2879,7 @@ { "name": "options", "kind": "Block", - "block": "SelectOptionList", + "block": "SelectOptions", "nullable": false } ], @@ -2922,7 +2922,7 @@ { "name": "options", "kind": "Block", - "block": "SelectOptionList", + "block": "SelectOptions", "nullable": false } ] @@ -2955,7 +2955,7 @@ ] }, { - "name": "SelectOptionList", + "name": "SelectOptions", "fields": [ { "name": "blocks", diff --git a/demo/api/src/form-builder/blocks/select-options.block.ts b/demo/api/src/form-builder/blocks/select-options.block.ts index 7fbb09483be..97a38f6bace 100644 --- a/demo/api/src/form-builder/blocks/select-options.block.ts +++ b/demo/api/src/form-builder/blocks/select-options.block.ts @@ -27,4 +27,4 @@ class SelectOptionBlockInput extends BlockInput { const SelectOptionBlock = createBlock(SelectOptionBlockData, SelectOptionBlockInput, "SelectOption"); -export const SelectOptionsBlock = createListBlock({ block: SelectOptionBlock }, "SelectOptionList"); +export const SelectOptionsBlock = createListBlock({ block: SelectOptionBlock }, "SelectOptions");