@inspirer-dev/hero-widget-selector
Version:
A custom field plugin for Strapi v5 that provides a widget selector with size filtering capabilities. Perfect for selecting hero widgets from a filtered collection based on size (S, M, L, XL).
51 lines (45 loc) • 1.12 kB
text/typescript
const mutateEditViewLayout = ({ layout, query }: { layout: any; query: any }) => {
// Add null checks to prevent errors
if (
!layout ||
!layout.contentType ||
!layout.contentType.layouts ||
!layout.contentType.layouts.edit
) {
return { layout, query };
}
const { edit } = layout.contentType.layouts;
const enhancedEdit = edit.map((row: any[]) =>
row.map((field: any) => {
// Add null checks for field and fieldSchema
if (!field || !field.fieldSchema) {
return field;
}
const { customField } = field.fieldSchema.pluginOptions || {};
if (customField?.name === 'widget-selector') {
return {
...field,
fieldSchema: {
...field.fieldSchema,
type: 'widget-selector',
},
};
}
return field;
})
);
return {
query,
layout: {
...layout,
contentType: {
...layout.contentType,
layouts: {
...layout.contentType.layouts,
edit: enhancedEdit,
},
},
},
};
};
export default mutateEditViewLayout;