@trove-ui/react
Version:
A React component library for T Design UI
25 lines (24 loc) • 1.18 kB
JavaScript
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 };