jb-checkbox
Version:
checkbox web component
2 lines • 1.8 kB
JavaScript
import e,{useCallback as r,useEffect as t,useImperativeHandle as n,useRef as u}from"react";import"jb-checkbox";function i(e,n,u,a=!1){let c=r(r=>{e.current&&"function"==typeof u&&u(r)},[e,u]);t(()=>{let r=e.current;return r&&r.addEventListener(n,c,{passive:a,capture:!1}),function(){r&&r.removeEventListener(n,c,{passive:a,capture:!1})}},[e,n,u,a])}function a(r){var a,c;let{ref:o,disabled:s,error:d,message:b,name:l,required:m,validationList:v,value:f,children:p,onBeforeChange:A,onChange:g,...h}=r,q=u(null);return n(o,()=>q.current??void 0,[q]),t(()=>{a.name?q?.current?.setAttribute("name",a.name||""):q?.current?.removeAttribute("name")},[(a={disabled:s,error:d,message:b,name:l,required:m,validationList:v,value:f}).name,q?.current]),t(()=>{a.message?q.current?.setAttribute("message",a.message):q.current?.removeAttribute("message")},[a.message,q?.current]),t(()=>{q?.current&&(q.current.validation.list=a.validationList||[])},[a.validationList,q]),t(()=>{"boolean"==typeof a.disabled&&a.disabled?q?.current?.setAttribute("disabled",""):q?.current?.removeAttribute("disabled")},[a.disabled,q?.current]),t(()=>{"string"==typeof a.required&&q?.current?.setAttribute("required",a.required),"boolean"==typeof a.required&&(a.required?q?.current?.setAttribute("required",""):q?.current?.removeAttribute("required"))},[a.required,q?.current]),t(()=>{q.current&&null!==a.value&&void 0!==a.value&&(q.current.value=a.value)},[a.value,q?.current]),t(()=>{a.error?q?.current?.setAttribute("error",a.error):q?.current?.removeAttribute("error")},[a.error,q?.current]),i(q,"before-change",(c={onBeforeChange:A,onChange:g}).onBeforeChange,!0),i(q,"change",c.onChange,!0),e.createElement("jb-checkbox",{ref:q,...h},p)}a.displayName="JBCheckbox";export{a as JBCheckbox};
//# sourceMappingURL=JBCheckbox.js.map