UNPKG

@mskcc/carbon-react

Version:

Carbon react components for the MSKCC DSM

70 lines (62 loc) 2.43 kB
/** * MSKCC 2021, 2024 */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var React = require('react'); var SidebarContext = require('./SidebarContext.js'); var Button = require('../Button/Button.js'); require('../Button/Button.Skeleton.js'); var cx = require('classnames'); var PropTypes = require('prop-types'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var React__default = /*#__PURE__*/_interopDefaultLegacy(React); var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx); var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes); const Sidebar = _ref => { let { children, sidebarWidth = '250px', sidebarCollapsedWidth = '42px' } = _ref; const { collapsed, toggleSidebar } = SidebarContext.useSidebar(); const sidebarStyle = { width: collapsed ? sidebarCollapsedWidth : sidebarWidth }; return /*#__PURE__*/React__default["default"].createElement("aside", { className: "msk-dashboard-layout--sidebar-container" }, /*#__PURE__*/React__default["default"].createElement("div", { className: "msk-dashboard-layout--sidebar-hidden", style: sidebarStyle }), /*#__PURE__*/React__default["default"].createElement("div", { className: cx__default["default"]('msk-dashboard-layout--sidebar', { 'msk-dashboard-sidebar--collapsed': collapsed, 'msk-dashboard-sidebar--expanded': !collapsed }), style: { width: sidebarWidth, transform: collapsed ? `translateX(calc(-100% + ${sidebarCollapsedWidth}))` : 'translateX(0)' } }, /*#__PURE__*/React__default["default"].createElement("span", { className: "msk-dashboard-sidebar--toggle-button" }, /*#__PURE__*/React__default["default"].createElement(Button["default"], { kind: "ghost", hasIconOnly: true, icon: collapsed ? 'arrow_right' : 'arrow_left', onClick: toggleSidebar, iconDescription: collapsed ? 'Expand' : 'Collapse', tooltipPosition: "top" })), /*#__PURE__*/React__default["default"].createElement("div", { className: "msk-dashboard-sidebar--content" }, children))); }; Sidebar.displayName = 'Sidebar'; Sidebar.propTypes = { children: PropTypes__default["default"].node.isRequired, sidebarWidth: PropTypes__default["default"].string, sidebarCollapsedWidth: PropTypes__default["default"].string }; exports.Sidebar = Sidebar;