'use client'
import { createClientFeature, toolbarTextDropdownGroupWithItems } from '@payloadcms/richtext-lexical/client'
import { $getSelection, $isRangeSelection } from '@payloadcms/richtext-lexical/lexical'
import { $setBlocksType } from '@payloadcms/richtext-lexical/lexical/selection'
import {
$createParagraphLargeNode,
$isParagraphLargeNode,
ParagraphLargeNode,
} from '@/lexical/ParagraphLarge/nodes/PepParagraphLargeNode'
export const ParagraphLargeFeatureClient = createClientFeature({
toolbarFixed: {
groups: [
toolbarTextDropdownGroupWithItems([
{
isActive: ({ selection }) => {
if (!$isRangeSelection(selection)) {
return false
}
for (const node of selection.getNodes()) {
if (!$isParagraphLargeNode(node) && !$isParagraphLargeNode(node.getParent())) {
return false
}
}
return true
},
onSelect: ({ editor }) => {
editor.update(() => {
const selection = $getSelection()
$setBlocksType(selection, () => $createParagraphLargeNode())
})
},
label: 'Large Text',
key: 'ParagraphLarge',
},
]),
],
},
nodes: [ParagraphLargeNode],
})