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)
58 lines
1.4 KiB
TypeScript
58 lines
1.4 KiB
TypeScript
'use client'
|
|
|
|
import { $isInlineBlockNode, createClientFeature } from '@hanzo/cms-richtext-lexical/client'
|
|
import { $getSelection } from '@hanzo/cms-richtext-lexical/lexical'
|
|
import { CloseMenuIcon } from '@hanzo/cms-ui'
|
|
|
|
import { ModifyInlineBlockPlugin } from './plugin.js'
|
|
|
|
export const ModifyInlineBlockFeatureClient = createClientFeature({
|
|
plugins: [
|
|
{
|
|
Component: ModifyInlineBlockPlugin,
|
|
position: 'normal',
|
|
},
|
|
],
|
|
toolbarFixed: {
|
|
groups: [
|
|
{
|
|
key: 'debug',
|
|
items: [
|
|
{
|
|
ChildComponent: CloseMenuIcon,
|
|
key: 'setKeyToDebug',
|
|
label: 'Set Key To Debug',
|
|
onSelect({ editor }) {
|
|
editor.update(() => {
|
|
const selection = $getSelection()
|
|
|
|
// Check if selection consist of 1 node and that its an inlineblocknode
|
|
const nodes = selection.getNodes()
|
|
|
|
if (nodes.length !== 1) {
|
|
return
|
|
}
|
|
|
|
const node = nodes[0]
|
|
|
|
if (!$isInlineBlockNode(node)) {
|
|
return
|
|
}
|
|
|
|
const fields = node.getFields()
|
|
|
|
node.setFields({
|
|
blockType: fields.blockType,
|
|
id: fields.id,
|
|
key: 'value2',
|
|
})
|
|
})
|
|
},
|
|
},
|
|
],
|
|
type: 'buttons',
|
|
},
|
|
],
|
|
},
|
|
})
|