From 59be13de07143e546284c75d00ea98c9159aa573 Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Thu, 5 Feb 2026 13:45:40 +0000 Subject: Enhance checkbox-list custom field functionality - Added CheckboxListEnumInput component for handling enumeration inputs. - Updated CheckboxListDefaultInput to support new options structure. - Integrated validation for checkbox list options using Yup. - Modified package.json and package-lock.json to include new dependencies. - Improved admin interface with enhanced input handling and validation feedback. --- admin/src/index.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'admin/src/index.ts') diff --git a/admin/src/index.ts b/admin/src/index.ts index a1c0473..6cab121 100644 --- a/admin/src/index.ts +++ b/admin/src/index.ts @@ -1,7 +1,9 @@ import { EnumerationField } from '@strapi/icons/symbols'; +import { CheckboxListEnumInput } from './components/CheckboxListEnumInput'; import { Initializer } from './components/Initializer'; import { CheckboxListDefaultInput } from './components/CheckboxListDefaultInput'; import { PLUGIN_ID } from './pluginId'; +import { checkboxListOptionsValidator } from './utils/checkboxListValidator'; export default { register(app: any) { @@ -19,6 +21,10 @@ export default { id: 'checkbox-list-default', component: CheckboxListDefaultInput, }); + ctbPlugin.apis.forms.components.add({ + id: 'checkbox-list-enum', + component: CheckboxListEnumInput, + }); } app.customFields.register({ @@ -47,8 +53,8 @@ export default { sectionTitle: null, items: [ { - name: 'enum', - type: 'textarea-enum', + name: 'options.enum', + type: 'checkbox-list-enum', size: 6, intlLabel: { id: 'form.attribute.item.enumeration.rules', @@ -58,6 +64,7 @@ export default { id: 'form.attribute.item.enumeration.placeholder', defaultMessage: 'Ex:\nmorning\nnoon\nevening', }, + defaultValue: [], validations: { required: true, }, @@ -128,6 +135,7 @@ export default { ], }, ], + validator: checkboxListOptionsValidator, }, }); }, -- cgit v1.2.3