@lexical/react
Version:
This package provides Lexical components and hooks for React applications.
10 lines (8 loc) • 1.43 kB
JavaScript
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
*/
;var e=require("@lexical/devtools-core"),t=require("@lexical/utils"),a=require("react"),r=require("react/jsx-runtime");function l(e){var t=Object.create(null);if(e)for(var a in e)t[a]=e[a];return t.default=e,t}var s=l(a);exports.TreeView=function({treeTypeButtonClassName:l,timeTravelButtonClassName:i,timeTravelPanelSliderClassName:n,timeTravelPanelButtonClassName:o,timeTravelPanelClassName:u,viewClassName:m,editor:c,customPrintNode:d}){const v=s.createRef(),[C,f]=a.useState(c.getEditorState()),N=e.useLexicalCommandsLog(c);return a.useEffect((()=>t.mergeRegister(c.registerUpdateListener((({editorState:e})=>{f(e)})),c.registerEditableListener((()=>{f(c.getEditorState())})))),[c]),a.useEffect((()=>{const e=v.current;if(null!==e)return e.__lexicalEditor=c,()=>{e.__lexicalEditor=null}}),[c,v]),r.jsx(e.TreeView,{treeTypeButtonClassName:l,timeTravelButtonClassName:i,timeTravelPanelSliderClassName:n,timeTravelPanelButtonClassName:o,viewClassName:m,timeTravelPanelClassName:u,setEditorReadOnly:e=>{const t=c.getRootElement();null!=t&&(t.contentEditable=e?"false":"true")},editorState:C,setEditorState:e=>c.setEditorState(e),generateContent:async function(t){return e.generateContent(c,N,t,d)},ref:v,commandsLog:N})};