react-hook-quill
Version:
React Hook Quill is a lightweight wrapper for Quill, the rich text editor that does not interfere with the design of either React or Quill.
2 lines (1 loc) • 2.66 kB
JavaScript
(function(p,d){typeof exports=="object"&&typeof module<"u"?d(exports,require("quill"),require("react")):typeof define=="function"&&define.amd?define(["exports","quill","react"],d):(p=typeof globalThis<"u"?globalThis:p||self,d(p.index={},p.Quill,p.react))})(this,(function(p,d,c){"use strict";const D=(e=>e&&e.__esModule?e:{default:e})(d),h=({setting:e})=>{const a=c.useRef(null),r=c.useRef(null);return c.useEffect(()=>{var s;if(e.containerRef.current&&a.current===null)try{const l=e.containerRef.current,f=l.appendChild(l.ownerDocument.createElement("div"));r.current={parent:l};const C=new D.default(f,e.options);a.current=C,(s=e.setup)==null||s.call(e,a.current)}catch(l){if(console.error("Failed to initialize Quill:",l),r.current){for(;r.current.parent.lastChild;)r.current.parent.removeChild(r.current.parent.lastChild);r.current=null}}return()=>{var l;if(a.current&&((l=e.cleanup)==null||l.call(e,a.current)),a.current=null,r.current){for(;r.current.parent.lastChild;)r.current.parent.removeChild(r.current.parent.lastChild);r.current=null}}},[e]),a},y=(e,a=new d.Delta)=>{const r=c.useRef(null),s=c.useRef(a),l=c.useCallback(u=>{r.current?u.setContents(r.current):u.setContents(s.current)},[]),f=c.useCallback(u=>{r.current=u.editor.delta},[]),[C,R]=c.useState(()=>({containerRef:e.containerRef,options:e.options,setup:u=>{var t;l(u),(t=e.setup)==null||t.call(e,u)},cleanup:u=>{var t;f(u),(t=e.cleanup)==null||t.call(e,u)}})),S=c.useCallback(u=>{R({containerRef:u.containerRef,options:u.options,setup:t=>{var n;l(t),(n=u.setup)==null||n.call(u,t)},cleanup:t=>{var n;f(t),(n=u.cleanup)==null||n.call(u,t)}})},[l,f]);return{persistentDeltaSetting:C,updateSetting:S}},b=(e,a=new d.Delta)=>{const[r,s]=c.useState(a),l=c.useRef(null),f=c.useCallback(n=>{n.setContents(r),l.current||(l.current=()=>{s(n.editor.delta)},n.on(D.default.events.TEXT_CHANGE,l.current))},[r]),C=c.useCallback(n=>{l.current&&(n.off(D.default.events.TEXT_CHANGE,l.current),l.current=null)},[]),[R,S]=c.useState(()=>({containerRef:e.containerRef,options:e.options,setup:n=>{var o;f(n),(o=e.setup)==null||o.call(e,n)},cleanup:n=>{var o;C(n),(o=e.cleanup)==null||o.call(e,n)}})),u=c.useCallback((n,o)=>{if(n===null){console.warn("syncDelta called with null Quill instance");return}s(o),n.setContents(o)},[]),t=c.useCallback(n=>{S({containerRef:n.containerRef,options:n.options,setup:o=>{var i;f(o),(i=n.setup)==null||i.call(n,o)},cleanup:o=>{var i;C(o),(i=n.cleanup)==null||i.call(n,o)}})},[f,C]);return{delta:r,setDelta:s,syncDelta:u,syncDeltaSetting:R,updateSetting:t}};p.usePersistentDelta=y,p.useQuill=h,p.useSyncDelta=b,Object.defineProperty(p,Symbol.toStringTag,{value:"Module"})}));