@ebay/ui-core-react
Version:
Skin components build off React
2 lines (1 loc) • 1.33 kB
JavaScript
;const g=require("./tslib.es6-C4EgNkz1.js"),a=require("react"),s=require("classnames"),n=require("makeup-floating-label");var m;const{default:p=n}=(m=n==null?void 0:n.default)!=null&&m.__esModule?n.default:n;function y({text:t,disabled:N,invalid:C,size:L,type:u,opaqueLabel:_,containerTagName:d="span",onMount:v=()=>{}}){const r=a.useRef(null),c=a.useRef(null);a.useLayoutEffect(()=>{var e;(e=c.current)===null||e===void 0||e.refresh()}),a.useLayoutEffect(()=>{if(!(!t||u==="date"))return r.current&&(c.current=new p(r.current),v()),()=>{var e;(e=c.current)===null||e===void 0||e.destroy()}},[t,u]);const b=s("floating-label",{"floating-label--large":L==="large","floating-label--opaque":_}),F=a.useCallback(({children:e})=>a.createElement(a.Fragment,null,e),[]),q=a.useCallback(a.forwardRef((e,l)=>{var{className:i}=e,k=g.__rest(e,["className"]);return a.createElement(d,Object.assign({},k,{ref:o=>{r.current=o,typeof l=="function"?l(o):l&&(l.current=o)},className:s(i,b)}))}),[b]),f=s("floating-label__label",{"floating-label__label--disabled":N,"floating-label__label--invalid":C}),E=a.useCallback(e=>{var{className:l}=e,i=g.__rest(e,["className"]);return a.createElement("label",Object.assign({},i,{className:s(l,f)}),t)},[f,t]);return t?{Label:E,Container:q}:{Label:()=>null,Container:F}}exports.useFloatingLabel=y;