UNPKG

@lexical/react

Version:

This package provides Lexical components and hooks for React applications.

14 lines (12 loc) 2.01 kB
/** * 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. * */ 'use strict';var b=require("@lexical/react/LexicalComposerContext"),f=require("@lexical/react/useLexicalNodeSelection"),h=require("@lexical/utils"),k=require("lexical"),m=require("react"),r=require("react/jsx-runtime");let t=k.createCommand("INSERT_HORIZONTAL_RULE_COMMAND"); function u({nodeKey:c}){let [a]=b.useLexicalComposerContext(),[e,n,p]=f.useLexicalNodeSelection(c),l=m.useCallback(d=>{const g=k.$getSelection();e&&k.$isNodeSelection(g)&&(d.preventDefault(),a.update(()=>{g.getNodes().forEach(q=>{v(q)&&q.remove()})}));return!1},[a,e]);m.useEffect(()=>h.mergeRegister(a.registerCommand(k.CLICK_COMMAND,d=>{let g=a.getElementByKey(c);return d.target===g?(d.shiftKey||p(),n(!e),!0):!1},k.COMMAND_PRIORITY_LOW),a.registerCommand(k.KEY_DELETE_COMMAND,l,k.COMMAND_PRIORITY_LOW), a.registerCommand(k.KEY_BACKSPACE_COMMAND,l,k.COMMAND_PRIORITY_LOW)),[p,a,e,c,l,n]);m.useEffect(()=>{let d=a.getElementByKey(c);null!==d&&(e?h.addClassNamesToElement(d,"selected"):h.removeClassNamesFromElement(d,"selected"))},[a,e,c]);return null} class w extends k.DecoratorNode{static getType(){return"horizontalrule"}static clone(c){return new w(c.__key)}static importJSON(){return x()}static importDOM(){return{hr:()=>({conversion:y,priority:0})}}exportJSON(){return{type:"horizontalrule",version:1}}exportDOM(){return{element:document.createElement("hr")}}createDOM(c){let a=document.createElement("hr");h.addClassNamesToElement(a,c.theme.hr);return a}getTextContent(){return"\n"}isInline(){return!1}updateDOM(){return!1}decorate(){return r.jsx(u, {nodeKey:this.__key})}}function y(){return{node:x()}}function x(){return k.$applyNodeReplacement(new w)}function v(c){return c instanceof w}exports.$createHorizontalRuleNode=x;exports.$isHorizontalRuleNode=v;exports.HorizontalRuleNode=w;exports.INSERT_HORIZONTAL_RULE_COMMAND=t