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.23 kB
JavaScript
(function(p,s){typeof exports=="object"&&typeof module<"u"?s(exports,require("quill"),require("react")):typeof define=="function"&&define.amd?define(["exports","quill","react"],s):(p=typeof globalThis<"u"?globalThis:p||self,s(p.index={},p.Quill,p.react))})(this,function(p,s,f){"use strict";const S=(e=>e&&e.__esModule?e:{default:e})(s),h=({setting:e})=>{const o=f.useRef(null),t=f.useRef(null);return f.useEffect(()=>{var l;if(e.containerRef.current&&o.current===null){const r=e.containerRef.current,d=r.appendChild(r.ownerDocument.createElement("div"));t.current={parent:r};const R=new S.default(d,e.options);o.current=R,(l=e.setup)==null||l.call(e,o.current)}return()=>{var r;if(o.current&&((r=e.cleanup)==null||r.call(e,o.current)),o.current=null,t.current){for(;t.current.parent.lastChild;)t.current.parent.removeChild(t.current.parent.lastChild);t.current=null}}},[o,t,e]),o},i=(e,o=new s.Delta)=>{const t=f.useRef(null),l=u=>{t.current?u.setContents(t.current):u.setContents(o)},r=u=>{t.current=u.editor.delta},[d,R]=f.useState({containerRef:e.containerRef,options:{...e.options},setup:u=>{var c;l(u),(c=e.setup)==null||c.call(e,u)},cleanup:u=>{var c;r(u),(c=e.cleanup)==null||c.call(e,u)}});return{persistentDeltaSetting:d,updateSetting:u=>{R({containerRef:u.containerRef,options:{...u.options},setup:c=>{var D;l(c),(D=u.setup)==null||D.call(u,c)},cleanup:c=>{var D;r(c),(D=u.cleanup)==null||D.call(u,c)}})}}},_=(e,o=new s.Delta)=>{const[t,l]=f.useState(o),r=f.useRef(null),d=n=>{n.setContents(t),r.current||(r.current=()=>{l(n.editor.delta)},n.on(S.default.events.TEXT_CHANGE,r.current))},R=n=>{r.current&&(n.off(S.default.events.TEXT_CHANGE,r.current),r.current=null)},[C,u]=f.useState({containerRef:e.containerRef,options:{...e.options},setup:n=>{var a;d(n),(a=e.setup)==null||a.call(e,n)},cleanup:n=>{var a;R(n),(a=e.cleanup)==null||a.call(e,n)}});return{delta:t,setDelta:l,syncDelta:(n,a)=>{n!==null&&(l(a),n==null||n.setContents(a))},syncDeltaSetting:C,updateSetting:n=>{u({containerRef:n.containerRef,options:{...n.options},setup:a=>{var y;d(a),(y=n.setup)==null||y.call(n,a)},cleanup:n.cleanup})}}};p.usePersistentDelta=i,p.useQuill=h,p.useSyncDelta=_,Object.defineProperty(p,Symbol.toStringTag,{value:"Module"})});