Files
payload/test/fields/collections/Array/components/AddCustomBlocks/index.tsx
Jarrod Flesch af892ecb0e fix: removes nested array field configs from array value (#3549)
* fix: array controls 'addBelow' was adding above
2023-10-10 15:55:00 -04:00

61 lines
1.7 KiB
TypeScript

import * as React from 'react'
import { useForm } from '../../../../../../packages/payload/src/admin/components/forms/Form/context'
import useField from '../../../../../../packages/payload/src/admin/components/forms/useField'
import './index.scss'
const baseClass = 'custom-blocks-field-management'
export const AddCustomBlocks: React.FC = () => {
const { addFieldRow, replaceFieldRow } = useForm()
const { value } = useField({ path: 'customBlocks' })
return (
<div className={baseClass}>
<div className={`${baseClass}__blocks-grid`}>
<button
className={`${baseClass}__block-button`}
onClick={() =>
addFieldRow({
data: { block1Title: 'Block 1: Prefilled Title', blockType: 'block-1' },
path: 'customBlocks',
})
}
type="button"
>
Add Block 1
</button>
<button
className={`${baseClass}__block-button`}
onClick={() =>
addFieldRow({
data: { block2Title: 'Block 2: Prefilled Title', blockType: 'block-2' },
path: 'customBlocks',
})
}
type="button"
>
Add Block 2
</button>
</div>
<div>
<button
className={`${baseClass}__block-button ${baseClass}__replace-block-button`}
onClick={() =>
replaceFieldRow({
data: { block1Title: 'REPLACED BLOCK', blockType: 'block-1' },
path: 'customBlocks',
rowIndex: (Array.isArray(value) ? value.length : 0) - 1,
})
}
type="button"
>
Replace Block {Array.isArray(value) ? value.length : 0}
</button>
</div>
</div>
)
}