summaryrefslogtreecommitdiff
path: root/admin/src/index.ts
diff options
context:
space:
mode:
authorValentin Popov <valentin@popov.link>2026-02-05 14:53:17 +0300
committerValentin Popov <valentin@popov.link>2026-02-05 14:53:17 +0300
commit7fe5502dc173cfee7c3b3178fb233264ad7c6dc3 (patch)
treee8d82ba993ae0a044c3ce322114851aa9683b51c /admin/src/index.ts
parentefa89313fa4152252b477aafd88f7cf4a66747d8 (diff)
downloadstrapi-plugin-checkbox-list-7fe5502dc173cfee7c3b3178fb233264ad7c6dc3.tar.xz
strapi-plugin-checkbox-list-7fe5502dc173cfee7c3b3178fb233264ad7c6dc3.zip
Add checkbox-list custom field plugin to Strapi
- Introduced a new custom field type 'checkbox-list' with associated input component. - Updated package.json to reflect the new plugin name. - Added necessary server-side files for plugin registration, including bootstrap, destroy, and service methods. - Updated package-lock.json to include new dependencies and versions. - Enhanced admin interface with custom field registration and input handling.
Diffstat (limited to 'admin/src/index.ts')
-rw-r--r--admin/src/index.ts52
1 files changed, 50 insertions, 2 deletions
diff --git a/admin/src/index.ts b/admin/src/index.ts
index 4dff817..f3e7a28 100644
--- a/admin/src/index.ts
+++ b/admin/src/index.ts
@@ -1,7 +1,8 @@
-import { getTranslation } from './utils/getTranslation';
-import { PLUGIN_ID } from './pluginId';
+import { Check } from '@strapi/icons';
import { Initializer } from './components/Initializer';
import { PluginIcon } from './components/PluginIcon';
+import { PLUGIN_ID } from './pluginId';
+import { getTranslation } from './utils/getTranslation';
export default {
register(app: any) {
@@ -25,6 +26,53 @@ export default {
isReady: false,
name: PLUGIN_ID,
});
+
+ app.customFields.register({
+ name: 'checkbox-list',
+ pluginId: PLUGIN_ID,
+ type: 'json',
+ icon: Check,
+ intlLabel: {
+ id: `${PLUGIN_ID}.customField.label`,
+ defaultMessage: 'Checkbox list',
+ },
+ intlDescription: {
+ id: `${PLUGIN_ID}.customField.description`,
+ defaultMessage: 'Select multiple values from a list',
+ },
+ components: {
+ Input: async () => {
+ const { default: Component } = await import('./components/CheckboxListInput');
+
+ return { default: Component };
+ },
+ },
+ options: {
+ base: [
+ {
+ sectionTitle: null,
+ items: [
+ {
+ name: 'enum',
+ type: 'textarea-enum',
+ size: 6,
+ intlLabel: {
+ id: 'form.attribute.item.enumeration.rules',
+ defaultMessage: 'Values (one line per value)',
+ },
+ placeholder: {
+ id: 'form.attribute.item.enumeration.placeholder',
+ defaultMessage: 'Ex:\nmorning\nnoon\nevening',
+ },
+ validations: {
+ required: true,
+ },
+ },
+ ],
+ },
+ ],
+ },
+ });
},
async registerTrads({ locales }: { locales: string[] }) {