UNPKG

@websolutespa/payload-plugin-bowl

Version:

Bowl PayloadCms plugin of the BOM Repository

94 lines (93 loc) 2.8 kB
import { hasRole, isRole } from '../core'; import { afterCategoryChangeHook, afterCategoryDeleteHook } from '../core/api'; import { roles } from '../types'; export const Category = (options)=>({ type: 'withCollection', slug: options.slug.category, admin: { group: options.group.nav, useAsTitle: 'id', defaultColumns: [ 'id', 'title', 'category', 'order' ], components: { beforeList: [ '@websolutespa/payload-plugin-bowl/client#CategoryMenu' ] }, hidden: (args)=>!hasRole(args.user, roles.Admin, roles.Contributor) }, access: { create: isRole(roles.Admin, roles.Contributor), read: isRole(), update: isRole(roles.Admin, roles.Contributor), delete: isRole(roles.Admin, roles.Contributor) }, hooks: { afterChange: [ afterCategoryChangeHook ], afterDelete: [ afterCategoryDeleteHook ] }, views: { CategoryTree: { path: `/tree/${options.slug.category}`, exact: true, Component: '@websolutespa/payload-plugin-bowl/rsc#CategoryTreeRoute' }, CategoryTreeDetail: { path: `/tree/${options.slug.category}/:itemId`, exact: true, Component: '@websolutespa/payload-plugin-bowl/rsc#CategoryTreeRoute' } }, fields: [ // inherited fields: id, createdAt, updatedAt { type: 'withId', required: true }, { type: 'withTitle', required: true }, { type: 'withSlug', fieldToUse: 'title', unique: false, admin: { position: 'sidebar' } }, { type: 'withCheckbox', name: 'isHidden', defaultValue: false, admin: { position: 'sidebar' } }, { type: 'withMedia' }, { type: 'withCategory', admin: { position: 'sidebar' } }, { type: 'withOrder', slug: options.slug.category, admin: { position: 'sidebar' } } ] }); //# sourceMappingURL=Category.js.map