Merge branch 'newtests' of github.com:payloadcms/payload into newtests

This commit is contained in:
James
2024-03-19 17:32:44 -04:00
27 changed files with 105 additions and 96 deletions

View File

@@ -3,11 +3,11 @@ import type { EditorConfig as LexicalEditorConfig } from 'lexical/LexicalEditor.
import lexicalHeadlessImport from '@lexical/headless'
const { createHeadlessEditor } = lexicalHeadlessImport
import { useTableCell } from '@payloadcms/ui/elements'
import { useFieldPath } from '@payloadcms/ui/forms'
import { useClientFunctions } from '@payloadcms/ui/providers'
import lexicalImport from 'lexical'
const { $getRoot } = lexicalImport
import { useTableCell } from '@payloadcms/ui/elements/Table'
import { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider'
import { useClientFunctions } from '@payloadcms/ui/providers/ClientFunction'
import React, { useEffect, useState } from 'react'
import type { FeatureProviderClient } from '../field/features/types.js'
@@ -25,7 +25,7 @@ export const RichTextCell: React.FC<{
const { lexicalEditorConfig } = props
const [preview, setPreview] = React.useState('Loading...')
const { schemaPath } = useFieldPath()
const { schemaPath } = useFieldProps()
const { cellData, richTextComponentMap } = useTableCell()

View File

@@ -1,7 +1,8 @@
'use client'
import type { FormFieldBase } from '@payloadcms/ui/fields/shared'
import type { SerializedEditorState } from 'lexical'
import { type FormFieldBase, useField } from '@payloadcms/ui'
import { useField } from '@payloadcms/ui/forms/useField'
import React, { useCallback } from 'react'
import { ErrorBoundary } from 'react-error-boundary'

View File

@@ -1,27 +1,25 @@
import type { FieldMap, FormFieldBase } from '@payloadcms/ui'
import type { ReducedBlock } from '@payloadcms/ui'
import type { FormState } from 'payload/types'
import type { Data } from 'payload/types'
import lexicalComposerContextImport from '@lexical/react/LexicalComposerContext.js'
const { useLexicalComposerContext } = lexicalComposerContextImport
import { getTranslation } from '@payloadcms/translations'
import { RenderFields } from '@payloadcms/ui'
import {
Button,
Collapsible,
ErrorPill,
Pill,
SectionTitle,
useDocumentInfo,
useFormSubmitted,
useTranslation,
} from '@payloadcms/ui'
import isDeepEqual from 'deep-equal'
import lexicalImport from 'lexical'
const { $getNodeByKey } = lexicalImport
import type { FormFieldBase } from '@payloadcms/ui/fields/shared'
import type { FieldMap, ReducedBlock } from '@payloadcms/ui/providers/ComponentMap'
import type { CollapsedPreferences } from 'payload/types'
import { Button } from '@payloadcms/ui/elements/Button'
import { Collapsible } from '@payloadcms/ui/elements/Collapsible'
import { ErrorPill } from '@payloadcms/ui/elements/ErrorPill'
import { Pill } from '@payloadcms/ui/elements/Pill'
import { SectionTitle } from '@payloadcms/ui/fields/Blocks/SectionTitle'
import { useFormSubmitted } from '@payloadcms/ui/forms/Form'
import { RenderFields } from '@payloadcms/ui/forms/RenderFields'
import { useDocumentInfo } from '@payloadcms/ui/providers/DocumentInfo'
import { useTranslation } from '@payloadcms/ui/providers/Translation'
import React, { useCallback } from 'react'
import type { SanitizedClientEditorConfig } from '../../../lexical/config/types.js'

View File

@@ -2,7 +2,8 @@ import type { FormState } from 'payload/types'
import type { Data } from 'payload/types'
import type React from 'react'
import { reduceFieldsToValues, useAllFormFields } from '@payloadcms/ui'
import { useAllFormFields } from '@payloadcms/ui/forms/Form'
import { reduceFieldsToValues } from '@payloadcms/ui/utilities/reduceFieldsToValues'
import { useEffect } from 'react'
type Props = {

View File

@@ -1,21 +1,21 @@
'use client'
import {
Form,
type FormProps,
getFormState,
useConfig,
useDocumentInfo,
useFieldPath,
useFormSubmitted,
} from '@payloadcms/ui'
import type { Props as FormProps } from '@payloadcms/ui/forms/Form'
import { Form } from '@payloadcms/ui/forms/Form'
import React, { useCallback, useEffect, useMemo, useState } from 'react'
import { type BlockFields } from '../nodes/BlocksNode.js'
const baseClass = 'lexical-block'
import type { ReducedBlock } from '@payloadcms/ui'
import type { ReducedBlock } from '@payloadcms/ui/providers/ComponentMap'
import type { FormState } from 'payload/types'
import { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider'
import { useFormSubmitted } from '@payloadcms/ui/forms/Form'
import { useConfig } from '@payloadcms/ui/providers/Config'
import { useDocumentInfo } from '@payloadcms/ui/providers/DocumentInfo'
import { getFormState } from '@payloadcms/ui/utilities/getFormState'
import { v4 as uuid } from 'uuid'
import type { ClientComponentProps } from '../../types.js'
@@ -42,7 +42,7 @@ export const BlockComponent: React.FC<Props> = (props) => {
const config = useConfig()
const submitted = useFormSubmitted()
const { id } = useDocumentInfo()
const { schemaPath } = useFieldPath()
const { schemaPath } = useFieldProps()
const { editorConfig, field: parentLexicalRichTextField } = useEditorConfigContext()
const [initialState, setInitialState] = useState<FormState | false>(false)
@@ -124,7 +124,7 @@ export const BlockComponent: React.FC<Props> = (props) => {
reducedBlock &&
initialState !== false && (
<Form
// @ts-expect-error // TODO: Fix this type. Is this correct?
// @ts-expect-error TODO: Fix this
fields={fieldMap}
initialState={initialState}
onChange={[onChange]}

View File

@@ -2,12 +2,15 @@
import * as facelessUIImport from '@faceless-ui/modal'
import lexicalComposerContextImport from '@lexical/react/LexicalComposerContext.js'
const { useLexicalComposerContext } = lexicalComposerContextImport
import { BlocksDrawer, formatDrawerSlug, useEditDepth, useTranslation } from '@payloadcms/ui'
import lexicalImport from 'lexical'
const { $getNodeByKey, COMMAND_PRIORITY_EDITOR, createCommand } = lexicalImport
import type { LexicalCommand, LexicalEditor } from 'lexical'
import { formatDrawerSlug } from '@payloadcms/ui/elements/Drawer'
import { BlocksDrawer } from '@payloadcms/ui/fields/Blocks/BlocksDrawer'
import { useEditDepth } from '@payloadcms/ui/providers/EditDepth'
import { useTranslation } from '@payloadcms/ui/providers/Translation'
import React, { useCallback, useEffect, useState } from 'react'
import type { ClientComponentProps } from '../../types.js'

View File

@@ -1,6 +1,6 @@
'use client'
import type { ReducedBlock } from '@payloadcms/ui'
import type { ReducedBlock } from '@payloadcms/ui/providers/ComponentMap'
import { getTranslation } from '@payloadcms/translations'

View File

@@ -2,10 +2,11 @@
import type React from 'react'
import { useAddClientFunction, useFieldPath } from '@payloadcms/ui'
import { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider'
import { useAddClientFunction } from '@payloadcms/ui/providers/ClientFunction'
const useLexicalFeatureProp = <T,>(featureKey: string, componentKey: string, prop: T) => {
const { schemaPath } = useFieldPath()
const { schemaPath } = useFieldProps()
useAddClientFunction(
`lexicalFeature.${schemaPath}.${featureKey}.components.${componentKey}`,

View File

@@ -1,17 +1,15 @@
import type { Props as FormProps } from '@payloadcms/ui/forms/Form'
import type { FormState } from 'payload/types'
import {
Drawer,
Form,
type FormProps,
FormSubmit,
RenderFields,
getFormState,
useConfig,
useDocumentInfo,
useTranslation,
} from '@payloadcms/ui'
import { useFieldPath } from '@payloadcms/ui'
import { Drawer } from '@payloadcms/ui/elements/Drawer'
import { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider'
import { Form } from '@payloadcms/ui/forms/Form'
import { RenderFields } from '@payloadcms/ui/forms/RenderFields'
import { FormSubmit } from '@payloadcms/ui/forms/Submit'
import { useConfig } from '@payloadcms/ui/providers/Config'
import { useDocumentInfo } from '@payloadcms/ui/providers/DocumentInfo'
import { useTranslation } from '@payloadcms/ui/providers/Translation'
import { getFormState } from '@payloadcms/ui/utilities/getFormState'
import React, { useCallback, useEffect, useState } from 'react'
import { v4 as uuid } from 'uuid'
@@ -24,7 +22,7 @@ const baseClass = 'lexical-link-edit-drawer'
export const LinkDrawer: React.FC<Props> = ({ drawerSlug, handleModalSubmit, stateData }) => {
const { t } = useTranslation()
const { id } = useDocumentInfo()
const { schemaPath } = useFieldPath()
const { schemaPath } = useFieldProps()
const config = useConfig()
const [initialState, setInitialState] = useState<FormState | false>(false)
const {

View File

@@ -9,7 +9,6 @@ const { useLexicalComposerContext } = lexicalComposerContextImport
import lexicalUtilsImport from '@lexical/utils'
const { $findMatchingParent, mergeRegister } = lexicalUtilsImport
import { getTranslation } from '@payloadcms/translations'
import { formatDrawerSlug, useConfig, useEditDepth, useTranslation } from '@payloadcms/ui'
import lexicalImport from 'lexical'
const {
$getSelection,
@@ -20,6 +19,10 @@ const {
SELECTION_CHANGE_COMMAND,
} = lexicalImport
import { formatDrawerSlug } from '@payloadcms/ui/elements/Drawer'
import { useConfig } from '@payloadcms/ui/providers/Config'
import { useEditDepth } from '@payloadcms/ui/providers/EditDepth'
import { useTranslation } from '@payloadcms/ui/providers/Translation'
import React, { useCallback, useEffect, useRef, useState } from 'react'
import type { LinkNode } from '../../../nodes/LinkNode.js'

View File

@@ -1,12 +1,12 @@
'use client'
import lexicalComposerContextImport from '@lexical/react/LexicalComposerContext.js'
const { useLexicalComposerContext } = lexicalComposerContextImport
import { useListDrawer } from '@payloadcms/ui'
import lexicalImport from 'lexical'
const { $getNodeByKey, COMMAND_PRIORITY_EDITOR } = lexicalImport
import type { LexicalEditor } from 'lexical'
import { useListDrawer } from '@payloadcms/ui/elements/ListDrawer'
import React, { useCallback, useEffect, useState } from 'react'
import { $createRelationshipNode } from '../nodes/RelationshipNode.js'

View File

@@ -1,6 +1,6 @@
'use client'
import { withMergedProps } from '@payloadcms/ui'
import { withMergedProps } from '@payloadcms/ui/elements/withMergedProps'
import type { FeatureProviderProviderClient } from '../types.js'
import type { RelationshipFeatureProps } from './feature.server.js'

View File

@@ -3,12 +3,16 @@ import lexicalComposerContextImport from '@lexical/react/LexicalComposerContext.
const { useLexicalComposerContext } = lexicalComposerContextImport
import { useLexicalNodeSelection } from '@lexical/react/useLexicalNodeSelection.js'
import { getTranslation } from '@payloadcms/translations'
import { Button, useConfig, useDocumentDrawer, usePayloadAPI, useTranslation } from '@payloadcms/ui'
import lexicalImport from 'lexical'
const { $getNodeByKey } = lexicalImport
import type { ElementFormatType } from 'lexical'
import { Button } from '@payloadcms/ui/elements/Button'
import { useDocumentDrawer } from '@payloadcms/ui/elements/DocumentDrawer'
import usePayloadAPI from '@payloadcms/ui/hooks/usePayloadAPI'
import { useConfig } from '@payloadcms/ui/providers/Config'
import { useTranslation } from '@payloadcms/ui/providers/Translation'
import React, { useCallback, useReducer, useState } from 'react'
import type { RelationshipData } from '../RelationshipNode.js'

View File

@@ -3,7 +3,6 @@ import lexicalComposerContextImport from '@lexical/react/LexicalComposerContext.
const { useLexicalComposerContext } = lexicalComposerContextImport
import lexicalUtilsImport from '@lexical/utils'
const { $insertNodeToNearestRoot } = lexicalUtilsImport
import { useConfig } from '@payloadcms/ui'
import lexicalImport from 'lexical'
const {
$getPreviousSelection,
@@ -16,6 +15,7 @@ const {
import type { LexicalCommand } from 'lexical'
import { useConfig } from '@payloadcms/ui/providers/Config'
import { useEffect } from 'react'
import React from 'react'

View File

@@ -1,7 +1,8 @@
import type { ClientUser } from 'payload/auth'
import type { SanitizedCollectionConfig } from 'payload/types'
import { useAuth, useConfig } from '@payloadcms/ui'
import { useAuth } from '@payloadcms/ui/providers/Auth'
import { useConfig } from '@payloadcms/ui/providers/Config'
import * as React from 'react'
type options = {

View File

@@ -5,22 +5,19 @@ import * as facelessUIImport from '@faceless-ui/modal'
import lexicalComposerContextImport from '@lexical/react/LexicalComposerContext.js'
const { useLexicalComposerContext } = lexicalComposerContextImport
import { getTranslation } from '@payloadcms/translations'
import {
Drawer,
FieldPathProvider,
Form,
type FormProps,
FormSubmit,
RenderFields,
getFormState,
useConfig,
useDocumentInfo,
useFieldPath,
useTranslation,
} from '@payloadcms/ui'
import lexicalImport from 'lexical'
const { $getNodeByKey } = lexicalImport
import type { Props as FormProps } from '@payloadcms/ui/forms/Form'
import { Drawer } from '@payloadcms/ui/elements/Drawer'
import { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider'
import { Form } from '@payloadcms/ui/forms/Form'
import { RenderFields } from '@payloadcms/ui/forms/RenderFields'
import { FormSubmit } from '@payloadcms/ui/forms/Submit'
import { useConfig } from '@payloadcms/ui/providers/Config'
import { useDocumentInfo } from '@payloadcms/ui/providers/DocumentInfo'
import { useTranslation } from '@payloadcms/ui/providers/Translation'
import { getFormState } from '@payloadcms/ui/utilities/getFormState'
import { deepCopyObject } from 'payload/utilities'
import React, { useCallback, useEffect, useState } from 'react'
import { v4 as uuid } from 'uuid'
@@ -55,7 +52,7 @@ export const ExtraFieldsUploadDrawer: React.FC<
const { i18n, t } = useTranslation()
const { id } = useDocumentInfo()
const { schemaPath } = useFieldPath()
const { schemaPath } = useFieldProps()
const config = useConfig()
const [initialState, setInitialState] = useState<FormState | false>(false)
const {
@@ -131,7 +128,7 @@ export const ExtraFieldsUploadDrawer: React.FC<
>
{initialState !== false && (
<Form
// @ts-expect-error // TODO: Fix this type. Is this correct?
// @ts-expect-error TODO: Fix this
fields={fieldMap}
initialState={initialState}
onChange={[onChange]}

View File

@@ -5,20 +5,18 @@ import lexicalComposerContextImport from '@lexical/react/LexicalComposerContext.
const { useLexicalComposerContext } = lexicalComposerContextImport
import { useLexicalNodeSelection } from '@lexical/react/useLexicalNodeSelection.js'
import { getTranslation } from '@payloadcms/translations'
import {
Button,
DrawerToggler,
FileGraphic,
useConfig,
useDocumentDrawer,
useDrawerSlug,
usePayloadAPI,
useThumbnail,
useTranslation,
} from '@payloadcms/ui'
import lexicalImport from 'lexical'
const { $getNodeByKey } = lexicalImport
import { Button } from '@payloadcms/ui/elements/Button'
import { useDocumentDrawer } from '@payloadcms/ui/elements/DocumentDrawer'
import { DrawerToggler } from '@payloadcms/ui/elements/Drawer'
import { File } from '@payloadcms/ui/graphics/File'
import usePayloadAPI from '@payloadcms/ui/hooks/usePayloadAPI'
import { useThumbnail } from '@payloadcms/ui/hooks/useThumbnail'
import { useConfig } from '@payloadcms/ui/providers/Config'
import { useTranslation } from '@payloadcms/ui/providers/Translation'
import { useDrawerSlug } from 'packages/ui/src/elements/Drawer/useDrawerSlug.js'
import React, { useCallback, useReducer, useState } from 'react'
import type { ClientComponentProps } from '../../types.js'
@@ -112,7 +110,7 @@ const Component: React.FC<ElementProps> = (props) => {
<div className={`${baseClass}__card`}>
<div className={`${baseClass}__topRow`}>
<div className={`${baseClass}__thumbnail`}>
{thumbnailSRC ? <img alt={data?.filename} src={thumbnailSRC} /> : <FileGraphic />}
{thumbnailSRC ? <img alt={data?.filename} src={thumbnailSRC} /> : <File />}
</div>
<div className={`${baseClass}__topRowRightPanel`}>
<div className={`${baseClass}__collectionLabel`}>

View File

@@ -1,12 +1,12 @@
'use client'
import lexicalComposerContextImport from '@lexical/react/LexicalComposerContext.js'
const { useLexicalComposerContext } = lexicalComposerContextImport
import { useListDrawer } from '@payloadcms/ui'
import lexicalImport from 'lexical'
const { $getNodeByKey, COMMAND_PRIORITY_EDITOR } = lexicalImport
import type { LexicalEditor } from 'lexical'
import { useListDrawer } from '@payloadcms/ui/elements/ListDrawer'
import React, { useCallback, useEffect, useState } from 'react'
import { EnabledRelationshipsCondition } from '../../relationship/utils/EnabledRelationshipsCondition.js'

View File

@@ -3,7 +3,6 @@ import lexicalComposerContextImport from '@lexical/react/LexicalComposerContext.
const { useLexicalComposerContext } = lexicalComposerContextImport
import lexicalUtilsImport from '@lexical/utils'
const { $insertNodeToNearestRoot, mergeRegister } = lexicalUtilsImport
import { useConfig } from '@payloadcms/ui'
import lexicalImport from 'lexical'
const {
$getPreviousSelection,
@@ -16,6 +15,7 @@ const {
import type { LexicalCommand } from 'lexical'
import { useConfig } from '@payloadcms/ui/providers/Config'
import React, { useEffect } from 'react'
import type { RawUploadPayload } from '../nodes/UploadNode.js'

View File

@@ -1,8 +1,10 @@
'use client'
import type { FormFieldBase } from '@payloadcms/ui/fields/shared'
import type { EditorConfig as LexicalEditorConfig } from 'lexical/LexicalEditor.js'
import { type FormFieldBase, ShimmerEffect } from '@payloadcms/ui'
import { useClientFunctions } from '@payloadcms/ui/providers'
import { ShimmerEffect } from '@payloadcms/ui/elements/ShimmerEffect'
import { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider'
import { useClientFunctions } from '@payloadcms/ui/providers/ClientFunction'
import React, { Suspense, lazy, useEffect, useState } from 'react'
import type { GeneratedFeatureProviderComponent } from '../types.js'
@@ -25,7 +27,7 @@ export const RichTextField: React.FC<
}
> = (props) => {
const { lexicalEditorConfig, richTextComponentMap } = props
const { schemaPath } = useFieldPath()
const { schemaPath } = useFieldProps()
const clientFunctions = useClientFunctions()
const [hasLoadedFeatures, setHasLoadedFeatures] = useState(false)
@@ -106,7 +108,7 @@ export const RichTextField: React.FC<
)
const featureComponents: React.ReactNode[] = featureComponentKeys.map((key) => {
return richTextComponentMap.get(key)
}) as React.ReactNode[] // TODO: Type better
}) // TODO: Type better
return (
<React.Fragment key={featureProvider.key}>

View File

@@ -1,5 +1,4 @@
'use client'
import type { FormFieldBase } from '@payloadcms/ui'
import type { EditorState, SerializedEditorState } from 'lexical'
import type { LexicalEditor } from 'lexical'
@@ -7,6 +6,7 @@ import lexicalComposerImport from '@lexical/react/LexicalComposer.js'
const { LexicalComposer } = lexicalComposerImport
import type { InitialConfigType } from '@lexical/react/LexicalComposer.js'
import type { FormFieldBase } from '@payloadcms/ui/fields/shared'
import * as React from 'react'

View File

@@ -1,5 +1,6 @@
'use client'
import type { FormFieldBase } from '@payloadcms/ui'
import type { FormFieldBase } from '@payloadcms/ui/fields/shared'
import * as React from 'react'
import { createContext, useContext, useEffect, useMemo, useState } from 'react'

View File

@@ -4,7 +4,7 @@ import type { TextNode } from 'lexical'
import lexicalComposerContextImport from '@lexical/react/LexicalComposerContext.js'
const { useLexicalComposerContext } = lexicalComposerContextImport
import { useTranslation } from '@payloadcms/ui'
import { useTranslation } from '@payloadcms/ui/providers/Translation'
import { useCallback, useMemo, useState } from 'react'
import * as React from 'react'
import * as ReactDOM from 'react-dom'

View File

@@ -1,6 +1,6 @@
import type { RichTextAdapter } from 'payload/types'
import { mapFields } from '@payloadcms/ui/utilities'
import { mapFields } from '@payloadcms/ui/providers/ComponentMap'
import { sanitizeFields } from 'payload/config'
import React from 'react'

View File

@@ -3,7 +3,7 @@ import type { SerializedEditorState } from 'lexical'
import type { EditorConfig as LexicalEditorConfig } from 'lexical/LexicalEditor.js'
import type { RichTextAdapter } from 'payload/types'
import { withMergedProps } from '@payloadcms/ui'
import { withMergedProps } from '@payloadcms/ui/elements/withMergedProps'
import { withNullableJSONSchemaType } from 'payload/utilities'
import type { FeatureProviderServer, ResolvedServerFeatureMap } from './field/features/types.js'

View File

@@ -1,6 +1,7 @@
'use client'
import { useFieldPath } from '@payloadcms/ui/forms'
import { useAddClientFunction } from '@payloadcms/ui/providers'
import { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider'
import { useAddClientFunction } from '@payloadcms/ui/providers/ClientFunction'
import type { FeatureProviderClient } from './field/features/types.js'
@@ -8,7 +9,7 @@ export const useLexicalFeature = <ClientFeatureProps,>(
featureKey: string,
feature: FeatureProviderClient<ClientFeatureProps>,
) => {
const { schemaPath } = useFieldPath()
const { schemaPath } = useFieldProps()
useAddClientFunction(`lexicalFeature.${schemaPath}.${featureKey}`, feature)
}

View File

@@ -84,4 +84,4 @@ export const useComponentMap = (): IComponentMapContext => useContext(ComponentM
export { buildComponentMap } from './buildComponentMap/index.js'
export { mapFields } from './buildComponentMap/mapFields.js'
export type { FieldMap, MappedField } from './buildComponentMap/types.js'
export type * from './buildComponentMap/types.js'