UNPKG

@lanaco/lnc-react-ui

Version:

React component library

2 lines (1 loc) 1.57 kB
"use strict";const P=require("react/jsx-runtime"),t=require("react"),p=require("./index-BPVoEhTF.cjs"),B=require("./emotion-styled.browser.esm-Cle7tAM9.cjs"),L=require("./useUpdateEffect-BtMgpgIV.cjs"),R=B.newStyled.div``,I=t.forwardRef((m,w)=>{const{defaultViewType:o,activeViewType:r,className:A="",style:S={},children:N,size:g="small",...W}=m,[a,n]=t.useState(r||o),s=t.useRef([o]);t.useImperativeHandle(w,()=>({changeView(e){f(e)},goToBackView(){_()}})),L.useUpdateEffect(()=>{n(r)},[r]);const f=e=>{n(e),s.current.push(e)},_=()=>{var e;s.current.pop(),((e=s.current)==null?void 0:e.length)>0&&n(s.current[s.current.length-1])},i=t.Children.map(N,e=>{var E,V,u,y,T;if(t.isValidElement(e)&&(e.props.__TYPE__=="TABLE_VIEW"||((E=e==null?void 0:e.type)==null?void 0:E.displayName)==="TABLE_VIEW"||e.props.__TYPE__=="DETAILS_VIEW"||((V=e==null?void 0:e.type)==null?void 0:V.displayName)==="DETAILS_VIEW"||e.props.__TYPE__=="FORM_VIEW"||((u=e==null?void 0:e.type)==null?void 0:u.displayName)==="FORM_VIEW"||e.props.__TYPE__=="KANBAN_VIEW"||((y=e==null?void 0:e.type)==null?void 0:y.displayName)==="KANBAN_VIEW")&&(e.props.__TYPE__==a||((T=e==null?void 0:e.type)==null?void 0:T.displayName)===a))return t.cloneElement(e,{goToPreviousView:_})});return P.jsx(R,{className:"lnc-ui-dataview "+A,...W,children:i})});I.propTypes={defaultViewType:p.PropTypes.oneOf(["DETAILS_VIEW","FORM_VIEW","TABLE_VIEW","KANBAN_VIEW"]),activeViewType:p.PropTypes.oneOf(["DETAILS_VIEW","FORM_VIEW","TABLE_VIEW","KANBAN_VIEW"]),className:p.PropTypes.string,style:p.PropTypes.object};module.exports=I;