mirror of
https://github.com/hanzo-apps/cms.git
synced 2026-10-30 14:47:33 +00:00
- payload -> @hanzo/cms (core), bin payload -> hanzo-cms - create-payload-app -> @hanzo/create-cms-app - @payloadcms/<x> -> @hanzo/cms-<x> across the whole dependency graph - 3545 files, 72 package.json, 4419 scoped refs, 3852 core import specifiers, 82 scss imports - MIT attribution to Payload CMS Inc. preserved (LICENSE.md, author emails) Upstream: github.com/payloadcms/payload @ v3.85.2 (MIT)
85 lines
2.0 KiB
TypeScript
85 lines
2.0 KiB
TypeScript
'use client'
|
|
|
|
import { Button, useField, useForm } from '@hanzo/cms-ui'
|
|
import * as React from 'react'
|
|
|
|
import './index.scss'
|
|
|
|
const baseClass = 'custom-blocks-field-management'
|
|
|
|
const blocksPath = 'customBlocks'
|
|
|
|
export const AddCustomBlocks: React.FC<any> = (props) => {
|
|
const { addFieldRow, initializing, replaceFieldRow } = useForm()
|
|
const field = useField<number>({ path: blocksPath })
|
|
const { value } = field
|
|
|
|
const schemaPath = props.schemaPath.replace(`.${props.field.name}`, `.${blocksPath}`)
|
|
|
|
return (
|
|
<div className={baseClass}>
|
|
<Button
|
|
disabled={initializing}
|
|
onClick={() => {
|
|
addFieldRow({
|
|
blockType: 'block-1',
|
|
path: blocksPath,
|
|
schemaPath,
|
|
subFieldState: {
|
|
block1Title: {
|
|
initialValue: 'Block 1: Prefilled Title',
|
|
valid: true,
|
|
value: 'Block 1: Prefilled Title',
|
|
},
|
|
},
|
|
})
|
|
}}
|
|
type="button"
|
|
>
|
|
Add Block 1
|
|
</Button>
|
|
<Button
|
|
disabled={initializing}
|
|
onClick={() => {
|
|
addFieldRow({
|
|
blockType: 'block-2',
|
|
path: blocksPath,
|
|
schemaPath,
|
|
subFieldState: {
|
|
block2Title: {
|
|
initialValue: 'Block 2: Prefilled Title',
|
|
valid: true,
|
|
value: 'Block 2: Prefilled Title',
|
|
},
|
|
},
|
|
})
|
|
}}
|
|
type="button"
|
|
>
|
|
Add Block 2
|
|
</Button>
|
|
<Button
|
|
disabled={initializing}
|
|
onClick={() =>
|
|
replaceFieldRow({
|
|
blockType: 'block-1',
|
|
path: blocksPath,
|
|
rowIndex: value,
|
|
schemaPath,
|
|
subFieldState: {
|
|
block1Title: {
|
|
initialValue: 'REPLACED BLOCK',
|
|
valid: true,
|
|
value: 'REPLACED BLOCK',
|
|
},
|
|
},
|
|
})
|
|
}
|
|
type="button"
|
|
>
|
|
Replace Block {value}
|
|
</Button>
|
|
</div>
|
|
)
|
|
}
|