UNPKG

@trove-ui/react

Version:

A React component library for T Design UI

25 lines (24 loc) 1.18 kB
import * as __WEBPACK_EXTERNAL_MODULE_classnames__ from "classnames"; import * as __WEBPACK_EXTERNAL_MODULE_react__ from "react"; const getIndex = (children)=>__WEBPACK_EXTERNAL_MODULE_react__.Children.toArray(children).findIndex((node)=>{ if (/*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react__.isValidElement)(node)) { const componentName = node.type.name; return /[Header|Footer|Main|Aside]/.test(componentName); } }); const Container = ({ children, className = '', tagName = 'div', ...props })=>{ const [direction, setDirection] = (0, __WEBPACK_EXTERNAL_MODULE_react__.useState)('flex-row'); (0, __WEBPACK_EXTERNAL_MODULE_react__.useEffect)(()=>{ const index = getIndex(children); if (-1 !== index) setDirection('flex-column'); }, [ children ]); return /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_react__.createElement)(tagName, { ...props, children, className: (0, __WEBPACK_EXTERNAL_MODULE_classnames__["default"])('t-container w-full h-full flex', direction, className) }); }; const components_Container = Container; export { components_Container as default };