feat: specifies component names for arrays/collapsibles, simplifies threaded data
This commit is contained in:
@@ -1,6 +1,12 @@
|
||||
import joi from 'joi';
|
||||
import { componentSchema } from '../../utilities/componentSchema';
|
||||
|
||||
export const baseAdminComponentFields = joi.object().keys({
|
||||
Cell: componentSchema,
|
||||
Field: componentSchema,
|
||||
Filter: componentSchema,
|
||||
}).default({});
|
||||
|
||||
export const baseAdminFields = joi.object().keys({
|
||||
description: joi.alternatives().try(
|
||||
joi.string(),
|
||||
@@ -15,11 +21,7 @@ export const baseAdminFields = joi.object().keys({
|
||||
hidden: joi.boolean().default(false),
|
||||
disabled: joi.boolean().default(false),
|
||||
condition: joi.func(),
|
||||
components: joi.object().keys({
|
||||
Cell: componentSchema,
|
||||
Field: componentSchema,
|
||||
Filter: componentSchema,
|
||||
}).default({}),
|
||||
components: baseAdminComponentFields,
|
||||
});
|
||||
|
||||
export const baseField = joi.object().keys({
|
||||
@@ -185,7 +187,7 @@ export const collapsible = baseField.keys({
|
||||
type: joi.string().valid('collapsible').required(),
|
||||
fields: joi.array().items(joi.link('#field')),
|
||||
admin: baseAdminFields.keys({
|
||||
components: joi.object().keys({
|
||||
components: baseAdminComponentFields.keys({
|
||||
CollapsibleLabel: componentSchema,
|
||||
}).default({}),
|
||||
}).default({}),
|
||||
@@ -241,8 +243,8 @@ export const array = baseField.keys({
|
||||
joi.func(),
|
||||
),
|
||||
admin: baseAdminFields.keys({
|
||||
components: joi.object().keys({
|
||||
CollapsibleLabel: componentSchema,
|
||||
components: baseAdminComponentFields.keys({
|
||||
RowLabel: componentSchema,
|
||||
}).default({}),
|
||||
}).default({}),
|
||||
});
|
||||
|
||||
@@ -8,7 +8,7 @@ import { ConditionalDateProps } from '../../admin/components/elements/DatePicker
|
||||
import { Description } from '../../admin/components/forms/FieldDescription/types';
|
||||
import { User } from '../../auth';
|
||||
import { Payload } from '../..';
|
||||
import { CollapsibleLabel } from '../../admin/components/forms/CollapsibleLabel/types';
|
||||
import { RowLabel } from '../../admin/components/forms/RowLabel/types';
|
||||
|
||||
export type FieldHookArgs<T extends TypeWithID = any, P = any, S = any> = {
|
||||
/** The data passed to update the document within create and update operations, and the full document itself in the afterRead hook. */
|
||||
@@ -193,8 +193,8 @@ export type CollapsibleField = Omit<FieldBase, 'name'> & {
|
||||
admin?: Admin & {
|
||||
initCollapsed?: boolean | false;
|
||||
components?: {
|
||||
CollapsibleLabel?: CollapsibleLabel
|
||||
}
|
||||
CollapsibleLabel?: RowLabel
|
||||
} & Admin['components']
|
||||
}
|
||||
}
|
||||
|
||||
@@ -342,8 +342,8 @@ export type ArrayField = FieldBase & {
|
||||
admin?: Admin & {
|
||||
initCollapsed?: boolean | false;
|
||||
components?: {
|
||||
CollapsibleLabel?: CollapsibleLabel
|
||||
}
|
||||
RowLabel?: RowLabel
|
||||
} & Admin['components']
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user