'use client'; import React from 'react'; import type { DropdownMenuProps } from '@radix-ui/react-dropdown-menu'; import { SuggestionPlugin } from '@udecode/plate-suggestion/react'; import { useEditorRef, usePlateState, usePluginOption, } from '@udecode/plate/react'; import { Eye, Pen, PencilLineIcon } from 'lucide-react'; import { DropdownMenu, DropdownMenuContent, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuTrigger, useOpenState, } from './dropdown-menu'; import { ToolbarButton } from './toolbar'; export function ModeDropdownMenu(props: DropdownMenuProps) { const editor = useEditorRef(); const [readOnly, setReadOnly] = usePlateState('readOnly'); const openState = useOpenState(); const isSuggesting = usePluginOption(SuggestionPlugin, 'isSuggesting'); let value = 'editing'; if (readOnly) value = 'viewing'; if (isSuggesting) value = 'suggestion'; const item: any = { editing: ( <> Editing ), suggestion: ( <> Suggestion ), viewing: ( <> Viewing ), }; return ( {item[value]} { if (newValue === 'viewing') { setReadOnly(true); return; } else { setReadOnly(false); } if (newValue === 'suggestion') { editor.setOption(SuggestionPlugin, 'isSuggesting', true); return; } else { editor.setOption(SuggestionPlugin, 'isSuggesting', false); } if (newValue === 'editing') { editor.tf.focus(); return; } }} > {item.editing} {item.viewing} {item.suggestion} ); }