UNPKG

monday-ui-react-core

Version:

Official monday.com UI resources for application development in React.js

3 lines (2 loc) 1.06 kB
import{slicedToArray as e}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import t,{forwardRef as r,useRef as a,useState as i,useEffect as n,useCallback as o}from"react";import s from"../../../hooks/useMergeRef.js";import l from"../../../hooks/usePrevious/index.js";import{getTestId as c,ComponentDefaultTestId as d}from"../../../tests/testIds.js";var m=r((function(r,m){var u=r.className,f=r.id,p=r.activeTabId,v=void 0===p?0:p,T=r.children,b=r["data-testid"],h=a(null),g=s(m,h),j=i(v),C=e(j,2),E=C[0],I=C[1],y=i(v),N=e(y,2),P=N[0],_=N[1],k=l(v);n((function(){v!==k&&v!==P&&(I(P),_(v))}),[v,P,k]);var x=o((function(e){I(P),_(e)}),[P]);return t.createElement("div",{ref:g,className:u,id:f,"data-testid":b||c(d.TABS_CONTEXT,f)},t.Children.map(T,(function(e){if(e.type.isTabList){var r=e.props.onTabChange;return t.cloneElement(e,{activeTabId:P,onTabChange:function(e){x(e),null==r||r(e)}})}return e.type.isTabPanels?t.cloneElement(e,{activeTabId:P,animationDirection:P>E?"ltr":"rtl"}):e})))}));export{m as default}; //# sourceMappingURL=TabsContext.js.map