UNPKG

@uiw/react-layout

Version:

React components that handle the overall layout of the page.

62 lines (61 loc) 2.66 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"]; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = exports.LayoutContext = void 0; var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2")); var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _react = _interopRequireWildcard(require("react")); var _jsxRuntime = require("react/jsx-runtime"); var _excluded = ["prefixCls", "className", "hasSider", "children"]; var LayoutContext = exports.LayoutContext = /*#__PURE__*/_react["default"].createContext({ addSider: function addSider() { return null; }, removeSider: function removeSider() { return null; } }); var Layout = /*#__PURE__*/_react["default"].forwardRef(function (props, ref) { var _props$prefixCls = props.prefixCls, prefixCls = _props$prefixCls === void 0 ? 'w-layout' : _props$prefixCls, className = props.className, hasSider = props.hasSider, children = props.children, other = (0, _objectWithoutProperties2["default"])(props, _excluded); var _useState = (0, _react.useState)([]), _useState2 = (0, _slicedToArray2["default"])(_useState, 2), siders = _useState2[0], setSiders = _useState2[1]; var addSider = function addSider(id) { setSiders(function (state) { return [].concat((0, _toConsumableArray2["default"])(state), [id]); }); }; var removeSider = function removeSider(id) { setSiders(function (state) { return (0, _toConsumableArray2["default"])(state.filter(function (currentId) { return currentId !== id; })); }); }; var cls = [prefixCls, className, typeof hasSider === 'boolean' && hasSider || siders.length > 0 ? "".concat(prefixCls, "-has-sider") : null].filter(Boolean).join(' ').trim(); return /*#__PURE__*/(0, _jsxRuntime.jsx)(LayoutContext.Provider, { value: { addSider: addSider, removeSider: removeSider }, children: /*#__PURE__*/(0, _jsxRuntime.jsx)("section", (0, _objectSpread2["default"])((0, _objectSpread2["default"])({ ref: ref, className: cls }, other), {}, { children: children })) }); }); Layout.displayName = 'Layout'; var _default = exports["default"] = Layout;