@ebay/ui-core-react
Version:
Skin components build off React
2 lines (1 loc) • 1.69 kB
JavaScript
"use strict";const M=require("./tslib.es6-C4EgNkz1.js"),e=require("react"),q=require("classnames"),a=require("./icon-C-bWGO-9.js"),D=s=>s!==void 0,F=s=>{var{id:u,size:l="default",className:b,style:x,checked:r,defaultChecked:m="false",skipMixed:C=!1,onChange:E=()=>{},onFocus:y=()=>{},onKeyDown:f=()=>{},inputRef:_}=s,v=M.__rest(s,["id","size","className","style","checked","defaultChecked","skipMixed","onChange","onFocus","onKeyDown","inputRef"]);const[h,g]=e.useState(m),t=D(r)?r:h,p=n=>{const c=n.target;let o=h;t==="true"?o="false":t==="false"&&!C?o="mixed":o="true",E(n,{value:c==null?void 0:c.value,checked:o}),g(o)},N=n=>{var c;return y(n,{value:(c=n.target)===null||c===void 0?void 0:c.value,checked:t})},I=n=>{const c=n.target;f(n,{value:c.value,checked:t})},S=q("checkbox",b,{"checkbox--large":l==="large"});let i=e.createElement(a.EbayIcon,{name:"checkboxChecked18",className:"checkbox__checked"}),d=e.createElement(a.EbayIcon,{name:"checkboxUnchecked18",className:"checkbox__unchecked"}),k=e.createElement(a.EbayIcon,{name:"checkboxMixed18"});l==="large"&&(i=e.createElement(a.EbayIcon,{name:"checkboxChecked24",className:"checkbox__checked"}),d=e.createElement(a.EbayIcon,{name:"checkboxUnchecked24",className:"checkbox__unchecked"}),k=e.createElement(a.EbayIcon,{name:"checkboxMixed24"}));const w=()=>t==="true"?i:t==="mixed"?k:d;return e.createElement("span",{className:S,style:Object.assign({},x)},e.createElement("input",Object.assign({},v,{"aria-checked":t,id:u,className:"checkbox__control",type:"checkbox",checked:t==="true",onChange:p,onFocus:N,onKeyDown:I,ref:_})),e.createElement("span",{className:"checkbox__icon",hidden:!0},w()))};exports.EbayTriStateCheckbox=F;