Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
1 line
30 KiB
Plaintext
1 line
30 KiB
Plaintext
{"version":3,"file":"index.js","names":["getTranslation","React","Fragment","useCallback","useMemo","toast","Banner","Button","clipboardCopy","clipboardPaste","ClipboardAction","mergeFormStateFromClipboard","reduceFormStateByPath","DraggableSortableItem","DraggableSortable","DrawerToggler","useDrawerSlug","ErrorPill","RenderCustomComponent","useForm","useFormSubmitted","extractRowsAndCollapsedIDs","toggleAllRows","NullifyLocaleField","useField","withCondition","useConfig","useDocumentInfo","useLocale","useTranslation","scrollToID","FieldDescription","FieldError","FieldLabel","mergeFieldStyles","fieldBaseClass","BlockRow","BlocksDrawer","baseClass","BlocksFieldComponent","props","i18n","t","field","name","type","admin","className","description","isSortable","blockReferences","blocks","label","labels","labelsFromProps","localized","maxRows","minRows","minRowsProp","required","path","pathFromProps","permissions","readOnly","schemaPath","schemaPathFromProps","validate","setDocFieldPreferences","addFieldRow","dispatchFields","getFields","moveFieldRow","removeFieldRow","replaceState","setModified","code","locale","config","localization","drawerSlug","submitted","plural","singular","editingDefaultLocale","fallback","defaultLocale","memoizedValidate","value","options","blocksFilterOptions","customComponents","AfterInput","BeforeInput","Description","Error","Label","disabled","errorPaths","rows","showError","valid","hasRows","potentiallyStalePath","clientBlocks","clientBlocksAfterFilter","resolvedBlocks","blockReference","block","blocksMap","push","Array","isArray","filter","blockSlug","slug","includes","addRow","rowIndex","blockType","setTimeout","duplicateRow","removeRow","moveRow","moveFromIndex","moveToIndex","toggleCollapseAll","collapsed","collapsedIDs","updatedRows","setCollapse","rowID","copyRow","clipboardResult","getDataToCopy","formState","error","success","pasteRow","pasteArgs","onPaste","dataFromClipboard","newState","schemaBlocks","pasteBlocks","hasMaxRows","length","fieldErrorCount","fieldHasErrors","showMinRows","showRequired","styles","_jsxs","Boolean","join","id","replace","style","_jsx","CustomComponent","Fallback","as","count","withMessage","onClick","allowCopy","allowPaste","fieldValue","ids","map","row","onDragEnd","i","isLoading","blockConfig","find","rowPath","rowErrorCount","errorPath","startsWith","draggableSortableItemProps","errorCount","fields","RowLabel","parentPath","rowCount","buttonStyle","el","icon","iconPosition","iconStyle","addRowIndex","BlocksField"],"sources":["../../../src/fields/Blocks/index.tsx"],"sourcesContent":["'use client'\nimport type { BlocksFieldClientComponent, ClientBlock } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useCallback, useMemo } from 'react'\nimport { toast } from 'sonner'\n\nimport type { ClipboardPasteData } from '../../elements/ClipboardAction/types.js'\n\nimport { Banner } from '../../elements/Banner/index.js'\nimport { Button } from '../../elements/Button/index.js'\nimport { clipboardCopy, clipboardPaste } from '../../elements/ClipboardAction/clipboardUtilities.js'\nimport { ClipboardAction } from '../../elements/ClipboardAction/index.js'\nimport {\n mergeFormStateFromClipboard,\n reduceFormStateByPath,\n} from '../../elements/ClipboardAction/mergeFormStateFromClipboard.js'\nimport { DraggableSortableItem } from '../../elements/DraggableSortable/DraggableSortableItem/index.js'\nimport { DraggableSortable } from '../../elements/DraggableSortable/index.js'\nimport { DrawerToggler } from '../../elements/Drawer/index.js'\nimport { useDrawerSlug } from '../../elements/Drawer/useDrawerSlug.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { useForm, useFormSubmitted } from '../../forms/Form/context.js'\nimport { extractRowsAndCollapsedIDs, toggleAllRows } from '../../forms/Form/rowHelpers.js'\nimport { NullifyLocaleField } from '../../forms/NullifyField/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { scrollToID } from '../../utilities/scrollToID.js'\nimport './index.scss'\nimport { FieldDescription } from '../FieldDescription/index.js'\nimport { FieldError } from '../FieldError/index.js'\nimport { FieldLabel } from '../FieldLabel/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { BlockRow } from './BlockRow.js'\nimport { BlocksDrawer } from './BlocksDrawer/index.js'\n\nconst baseClass = 'blocks-field'\n\nconst BlocksFieldComponent: BlocksFieldClientComponent = (props) => {\n const { i18n, t } = useTranslation()\n\n const {\n field,\n field: {\n name,\n type,\n admin: { className, description, isSortable = true } = {},\n blockReferences,\n blocks,\n label,\n labels: labelsFromProps,\n localized,\n maxRows,\n minRows: minRowsProp,\n required,\n },\n path: pathFromProps,\n permissions,\n readOnly,\n schemaPath: schemaPathFromProps,\n validate,\n } = props\n\n const schemaPath = schemaPathFromProps ?? name\n\n const minRows = (minRowsProp ?? required) ? 1 : 0\n\n const { setDocFieldPreferences } = useDocumentInfo()\n const {\n addFieldRow,\n dispatchFields,\n getFields,\n moveFieldRow,\n removeFieldRow,\n replaceState,\n setModified,\n } = useForm()\n const { code: locale } = useLocale()\n const {\n config: { localization },\n config,\n } = useConfig()\n const drawerSlug = useDrawerSlug('blocks-drawer')\n const submitted = useFormSubmitted()\n\n const labels = {\n plural: t('fields:blocks'),\n singular: t('fields:block'),\n ...labelsFromProps,\n }\n\n const editingDefaultLocale = (() => {\n if (localization && localization.fallback) {\n const defaultLocale = localization.defaultLocale\n return locale === defaultLocale\n }\n\n return true\n })()\n\n const memoizedValidate = useCallback(\n (value, options) => {\n // alternative locales can be null\n if (!editingDefaultLocale && value === null) {\n return true\n }\n if (typeof validate === 'function') {\n return validate(value, { ...options, maxRows, minRows, required })\n }\n },\n [maxRows, minRows, required, validate, editingDefaultLocale],\n )\n\n const {\n blocksFilterOptions,\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n disabled,\n errorPaths,\n path,\n rows = [],\n showError,\n valid,\n value,\n } = useField<number>({\n hasRows: true,\n potentiallyStalePath: pathFromProps,\n validate: memoizedValidate,\n })\n\n const { clientBlocks, clientBlocksAfterFilter } = useMemo(() => {\n let resolvedBlocks: ClientBlock[] = []\n\n if (!blockReferences) {\n resolvedBlocks = blocks\n } else {\n for (const blockReference of blockReferences) {\n const block =\n typeof blockReference === 'string' ? config.blocksMap[blockReference] : blockReference\n if (block) {\n resolvedBlocks.push(block)\n }\n }\n }\n\n if (Array.isArray(blocksFilterOptions)) {\n const clientBlocksAfterFilter = resolvedBlocks.filter((block) => {\n const blockSlug = typeof block === 'string' ? block : block.slug\n return blocksFilterOptions.includes(blockSlug)\n })\n\n return {\n clientBlocks: resolvedBlocks,\n clientBlocksAfterFilter,\n }\n }\n return {\n clientBlocks: resolvedBlocks,\n clientBlocksAfterFilter: resolvedBlocks,\n }\n }, [blockReferences, blocks, blocksFilterOptions, config.blocksMap])\n\n const addRow = useCallback(\n (rowIndex: number, blockType: string) => {\n addFieldRow({\n blockType,\n path,\n rowIndex,\n schemaPath,\n })\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex + 1}`)\n }, 0)\n },\n [addFieldRow, path, schemaPath],\n )\n\n const duplicateRow = useCallback(\n (rowIndex: number) => {\n dispatchFields({ type: 'DUPLICATE_ROW', path, rowIndex })\n setModified(true)\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex + 1}`)\n }, 0)\n },\n [dispatchFields, path, setModified],\n )\n\n const removeRow = useCallback(\n (rowIndex: number) => {\n removeFieldRow({\n path,\n rowIndex,\n })\n },\n [path, removeFieldRow],\n )\n\n const moveRow = useCallback(\n (moveFromIndex: number, moveToIndex: number) => {\n moveFieldRow({ moveFromIndex, moveToIndex, path })\n },\n [moveFieldRow, path],\n )\n\n const toggleCollapseAll = useCallback(\n (collapsed: boolean) => {\n const { collapsedIDs, updatedRows } = toggleAllRows({\n collapsed,\n rows,\n })\n\n dispatchFields({ type: 'SET_ALL_ROWS_COLLAPSED', path, updatedRows })\n setDocFieldPreferences(path, { collapsed: collapsedIDs })\n },\n [dispatchFields, path, rows, setDocFieldPreferences],\n )\n\n const setCollapse = useCallback(\n (rowID: string, collapsed: boolean) => {\n const { collapsedIDs, updatedRows } = extractRowsAndCollapsedIDs({\n collapsed,\n rowID,\n rows,\n })\n\n dispatchFields({ type: 'SET_ROW_COLLAPSED', path, updatedRows })\n setDocFieldPreferences(path, { collapsed: collapsedIDs })\n },\n [dispatchFields, path, rows, setDocFieldPreferences],\n )\n\n const copyRow = useCallback(\n (rowIndex: number) => {\n const clipboardResult = clipboardCopy({\n type,\n blocks: clientBlocks,\n getDataToCopy: () =>\n reduceFormStateByPath({\n formState: { ...getFields() },\n path,\n rowIndex,\n }),\n path,\n rowIndex,\n t,\n })\n\n if (typeof clipboardResult === 'string') {\n toast.error(clipboardResult)\n } else {\n toast.success(t('general:copied'))\n }\n },\n [clientBlocks, path, t, type, getFields],\n )\n\n const pasteRow = useCallback(\n (rowIndex: number) => {\n const pasteArgs = {\n onPaste: (dataFromClipboard: ClipboardPasteData) => {\n const formState = { ...getFields() }\n const newState = mergeFormStateFromClipboard({\n dataFromClipboard,\n formState,\n path,\n rowIndex,\n })\n replaceState(newState)\n setModified(true)\n },\n path,\n schemaBlocks: clientBlocks,\n t,\n }\n\n const clipboardResult = clipboardPaste(pasteArgs)\n\n if (typeof clipboardResult === 'string') {\n toast.error(clipboardResult)\n }\n },\n [clientBlocks, getFields, path, replaceState, setModified, t],\n )\n\n const pasteBlocks = useCallback(\n (dataFromClipboard: ClipboardPasteData) => {\n const formState = { ...getFields() }\n const newState = mergeFormStateFromClipboard({\n dataFromClipboard,\n formState,\n path,\n })\n replaceState(newState)\n setModified(true)\n },\n [getFields, path, replaceState, setModified],\n )\n\n const hasMaxRows = maxRows && rows.length >= maxRows\n\n const fieldErrorCount = errorPaths.length\n const fieldHasErrors = submitted && fieldErrorCount + (valid ? 0 : 1) > 0\n\n const showMinRows = rows.length < minRows || (required && rows.length === 0)\n const showRequired = readOnly && rows.length === 0\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n fieldHasErrors ? `${baseClass}--has-error` : `${baseClass}--has-no-error`,\n ]\n .filter(Boolean)\n .join(' ')}\n id={`field-${path?.replace(/\\./g, '__')}`}\n style={styles}\n >\n {showError && (\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n )}\n <header className={`${baseClass}__header`}>\n <div className={`${baseClass}__header-wrap`}>\n <div className={`${baseClass}__heading-with-error`}>\n <h3>\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel\n as=\"span\"\n label={label}\n localized={localized}\n path={path}\n required={required}\n />\n }\n />\n </h3>\n {fieldHasErrors && fieldErrorCount > 0 && (\n <ErrorPill count={fieldErrorCount} i18n={i18n} withMessage />\n )}\n </div>\n <ul className={`${baseClass}__header-actions`}>\n {rows.length > 0 && (\n <Fragment>\n <li>\n <button\n className={`${baseClass}__header-action`}\n onClick={() => toggleCollapseAll(true)}\n type=\"button\"\n >\n {t('fields:collapseAll')}\n </button>\n </li>\n <li>\n <button\n className={`${baseClass}__header-action`}\n onClick={() => toggleCollapseAll(false)}\n type=\"button\"\n >\n {t('fields:showAll')}\n </button>\n </li>\n </Fragment>\n )}\n <li>\n <ClipboardAction\n allowCopy={rows?.length > 0}\n allowPaste={!readOnly}\n blocks={clientBlocks}\n className={`${baseClass}__header-action`}\n disabled={disabled}\n getDataToCopy={() =>\n reduceFormStateByPath({\n formState: { ...getFields() },\n path,\n })\n }\n onPaste={pasteBlocks}\n path={path}\n type={type}\n />\n </li>\n </ul>\n </div>\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </header>\n {BeforeInput}\n <NullifyLocaleField\n fieldValue={value}\n localized={localized}\n path={path}\n readOnly={readOnly}\n />\n {(rows.length > 0 || (!valid && (showRequired || showMinRows))) && (\n <DraggableSortable\n className={`${baseClass}__rows`}\n ids={rows.map((row) => row.id)}\n onDragEnd={({ moveFromIndex, moveToIndex }) => moveRow(moveFromIndex, moveToIndex)}\n >\n {rows.map((row, i) => {\n const { blockType, isLoading } = row\n\n const blockConfig: ClientBlock =\n config.blocksMap[blockType] ?? clientBlocks.find((block) => block.slug === blockType)\n\n if (blockConfig) {\n const rowPath = `${path}.${i}`\n\n const rowErrorCount = errorPaths.filter((errorPath) =>\n errorPath.startsWith(rowPath + '.'),\n ).length\n\n return (\n <DraggableSortableItem\n disabled={readOnly || disabled || !isSortable}\n id={row.id}\n key={row.id}\n >\n {(draggableSortableItemProps) => (\n <BlockRow\n {...draggableSortableItemProps}\n addRow={addRow}\n block={blockConfig}\n // Pass all blocks, not just clientBlocksAfterFilter, as existing blocks should still be displayed even if they don't match the new filter\n blocks={clientBlocks}\n copyRow={copyRow}\n duplicateRow={duplicateRow}\n errorCount={rowErrorCount}\n fields={blockConfig.fields}\n hasMaxRows={hasMaxRows}\n isLoading={isLoading}\n isSortable={isSortable}\n Label={rows?.[i]?.customComponents?.RowLabel}\n labels={labels}\n moveRow={moveRow}\n parentPath={path}\n pasteRow={pasteRow}\n path={rowPath}\n permissions={permissions}\n readOnly={readOnly || disabled}\n removeRow={removeRow}\n row={row}\n rowCount={rows.length}\n rowIndex={i}\n schemaPath={schemaPath + blockConfig.slug}\n setCollapse={setCollapse}\n />\n )}\n </DraggableSortableItem>\n )\n }\n\n return null\n })}\n {!editingDefaultLocale && (\n <React.Fragment>\n {showMinRows && (\n <Banner type=\"error\">\n {t('validation:requiresAtLeast', {\n count: minRows,\n label:\n getTranslation(minRows > 1 ? labels.plural : labels.singular, i18n) ||\n t(minRows > 1 ? 'general:row' : 'general:rows'),\n })}\n </Banner>\n )}\n {showRequired && (\n <Banner>\n {t('validation:fieldHasNo', { label: getTranslation(labels.plural, i18n) })}\n </Banner>\n )}\n </React.Fragment>\n )}\n </DraggableSortable>\n )}\n {!hasMaxRows && (\n <Fragment>\n <DrawerToggler\n className={`${baseClass}__drawer-toggler`}\n disabled={readOnly || disabled}\n slug={drawerSlug}\n >\n <Button\n buttonStyle=\"icon-label\"\n disabled={readOnly || disabled}\n el=\"span\"\n icon=\"plus\"\n iconPosition=\"left\"\n iconStyle=\"with-border\"\n >\n {t('fields:addLabel', { label: getTranslation(labels.singular, i18n) })}\n </Button>\n </DrawerToggler>\n <BlocksDrawer\n addRow={addRow}\n addRowIndex={rows?.length || 0}\n // Only allow choosing filtered blocks\n blocks={clientBlocksAfterFilter}\n drawerSlug={drawerSlug}\n labels={labels}\n />\n </Fragment>\n )}\n {AfterInput}\n </div>\n )\n}\n\nexport const BlocksField = withCondition(BlocksFieldComponent)\n"],"mappings":"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","ignoreList":[]} |