BREAKING: requires user to install @payloacms-richtext-slate and specify a `config.editor` property * chore: move slate stuff into packages/richtext-slate * chore: fieldTypes stuff * chore: fix richtext-slate tsconfig * chore: add clean:unix command * chore: fix up things * chore: undo subpath imports being hoisted up * chore: fix incorrect imports * chore: improve AdapterArguments type * chore: remove unused richTextToHTML and stringifyRichText files * fix: core-dev scss imports * chore: fix publishConfig exports for richtext-slate * chore: adjust joi schema for richtext field * chore: various fixes * chore: handle afterRead population in richText adapter * chore: handle more after-read promise stuff * chore: fix joi validation * chore: add richtext adapter to tests * chore: merge adapter props with field props * chore: index.tsx => index.ts * chore: rename `adapter` to `editor` * chore: fix e2e tests not running due to importing a constant from a file (`Tabs`) which imports createSlate. This fails because createSlate imports React components. * chore: remove unnecessary import * chore: improve various typings * chore: improve typings for List view Cell components * feat: richText adapter cell component * chore: add missing types packages for packages/richtext-slate * chore: add new adapter interface properties to joi schema * chore: withMergedProps utility which replaces getSlateCellComponent and getSlateFieldComponent * feat: added config.defaultEditor property which is now required. field.editor is no longer required and overrides config.defaultEditor * docs: mention editor and defaultEditor property in the docs * chore: fix incorrectly formatted JSX in docs files breaking mdx parser * chore: fix various errors * chore: auto-generated pointer files
19 lines
517 B
TypeScript
19 lines
517 B
TypeScript
import type { RichTextField, Validate } from 'payload/types'
|
|
|
|
import type { AdapterArguments } from '../types'
|
|
|
|
import { defaultRichTextValue } from './defaultValue'
|
|
|
|
export const richText: Validate<unknown, unknown, RichTextField<AdapterArguments>> = (
|
|
value,
|
|
{ required, t },
|
|
) => {
|
|
if (required) {
|
|
const stringifiedDefaultValue = JSON.stringify(defaultRichTextValue)
|
|
if (value && JSON.stringify(value) !== stringifiedDefaultValue) return true
|
|
return t('validation:required')
|
|
}
|
|
|
|
return true
|
|
}
|