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)
43 lines
1.3 KiB
TypeScript
43 lines
1.3 KiB
TypeScript
'use client'
|
|
|
|
import type { PluginComponent } from '@hanzo/cms-richtext-lexical'
|
|
|
|
import { useLexicalComposerContext } from '@hanzo/cms-richtext-lexical/lexical/react/LexicalComposerContext'
|
|
import { defaultJSXConverters, RichText } from '@hanzo/cms-richtext-lexical/react'
|
|
|
|
import './style.scss'
|
|
|
|
import { useEffect, useState } from 'react'
|
|
|
|
import type { DebugViewsJSXConverterFeatureProps } from '../../server/index.js'
|
|
|
|
import { lexicalFrontendViews } from '../../../../LexicalViewsFrontend/views.js'
|
|
import { lexicalViews } from '../../../views.js'
|
|
|
|
export const RichTextPlugin: PluginComponent<DebugViewsJSXConverterFeatureProps> = ({
|
|
clientProps,
|
|
}) => {
|
|
const [editor] = useLexicalComposerContext()
|
|
const [editorState, setEditorState] = useState(() => editor.getEditorState().toJSON())
|
|
|
|
useEffect(() => {
|
|
return editor.registerUpdateListener(({ editorState }) => {
|
|
setEditorState(editorState.toJSON())
|
|
})
|
|
}, [editor])
|
|
|
|
return (
|
|
<div className="debug-jsx-converter">
|
|
<RichText
|
|
converters={defaultJSXConverters}
|
|
data={editorState}
|
|
nodeMap={
|
|
clientProps?.type === 'default'
|
|
? lexicalViews['default']?.nodes
|
|
: lexicalFrontendViews['frontend']?.nodes
|
|
}
|
|
/>
|
|
</div>
|
|
)
|
|
}
|