feat: allows group field gutter to be disabled

This commit is contained in:
James
2021-05-04 18:48:51 -04:00
parent e791c5b7b3
commit 9aebeaf579
6 changed files with 24 additions and 6 deletions

View File

@@ -12,6 +12,9 @@ const RichTextBlock: Block = {
name: 'content', name: 'content',
localized: true, localized: true,
type: 'richText', type: 'richText',
admin: {
hideGutter: true,
},
}, },
], ],
}; };

View File

@@ -25,10 +25,18 @@ keywords: group, fields, config, configuration, documentation, Content Managemen
| **`defaultValue`** | Provide an object of data to be used for this field's default value. | | **`defaultValue`** | Provide an object of data to be used for this field's default value. |
| **`localized`** | Enable localization for this field. Requires [localization to be enabled](/docs/configuration/localization) in the Base config. If enabled, a separate, localized set of all data within this Group will be kept, so there is no need to specify each nested field as `localized`. | | **`localized`** | Enable localization for this field. Requires [localization to be enabled](/docs/configuration/localization) in the Base config. If enabled, a separate, localized set of all data within this Group will be kept, so there is no need to specify each nested field as `localized`. |
| **`required`** | Require this field to have a value. | | **`required`** | Require this field to have a value. |
| **`admin`** | Admin-specific configuration. See the [default field admin config](/docs/fields/overview#admin-config) for more details. | | **`admin`** | Admin-specific configuration. See below for [more detail](#admin-config). |
*\* An asterisk denotes that a property is required.* *\* An asterisk denotes that a property is required.*
### Admin config
In addition to the default [field admin config](/docs/fields/overview#admin-config), the Group allows for the following admin property:
**`hideGutter`**
Set this property to `true` to hide this field's gutter within the admin panel. The field gutter is rendered as a vertical line and padding, but often if this field is nested within a Group, Block, or Array, you may want to hide the gutter.
### Example ### Example
`collections/ExampleCollection.js` `collections/ExampleCollection.js`

View File

@@ -63,10 +63,6 @@ The default `elements` available in Payload are:
The `leaves` property specifies built-in or custom [SlateJS leaves](https://docs.slatejs.org/concepts/08-rendering#leaves) to be enabled within the Admin panel. The `leaves` property specifies built-in or custom [SlateJS leaves](https://docs.slatejs.org/concepts/08-rendering#leaves) to be enabled within the Admin panel.
**`hideGutter`**
Set this property to hide the gutter.
The default `leaves` available in Payload are: The default `leaves` available in Payload are:
- `bold` - `bold`
@@ -75,6 +71,10 @@ The default `leaves` available in Payload are:
- `strikethrough` - `strikethrough`
- `underline` - `underline`
**`hideGutter`**
Set this property to `true` to hide this field's gutter within the admin panel. The field gutter is rendered as a vertical line and padding, but often if this field is nested within a Group, Block, or Array, you may want to hide the gutter.
### Relationship element ### Relationship element
The built-in `relationship` element is a powerful way to reference other Documents directly within your Rich Text editor. The built-in `relationship` element is a powerful way to reference other Documents directly within your Rich Text editor.

View File

@@ -20,6 +20,7 @@ const Group: React.FC<Props> = (props) => {
readOnly, readOnly,
style, style,
width, width,
hideGutter,
}, },
permissions, permissions,
} = props; } = props;
@@ -34,7 +35,7 @@ const Group: React.FC<Props> = (props) => {
width, width,
}} }}
> >
<FieldTypeGutter /> { !hideGutter && (<FieldTypeGutter />) }
<div className={`${baseClass}__content-wrapper`}> <div className={`${baseClass}__content-wrapper`}>
{label && ( {label && (

View File

@@ -149,6 +149,9 @@ export const group = baseField.keys({
label: joi.string(), label: joi.string(),
fields: joi.array().items(joi.link('#field')), fields: joi.array().items(joi.link('#field')),
defaultValue: joi.object(), defaultValue: joi.object(),
admin: baseAdminFields.keys({
hideGutter: joi.boolean().default(false),
}),
}); });
export const array = baseField.keys({ export const array = baseField.keys({

View File

@@ -128,6 +128,9 @@ export type DateField = FieldBase & {
export type GroupField = FieldBase & { export type GroupField = FieldBase & {
type: 'group'; type: 'group';
fields: Field[]; fields: Field[];
admin?: Admin & {
hideGutter?: boolean
}
} }
export type RowField = FieldBase & { export type RowField = FieldBase & {