UNPKG

wix-style-react

Version:
168 lines (167 loc) 6.28 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.default = void 0; var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _Focusable = require("../common/Focusable"); var _wixUiIconsCommon = require("@wix/wix-ui-icons-common"); var _SidebarSectionItemSt = require("./SidebarSectionItem.st.css"); var _constants = require("./constants"); var _Text = _interopRequireDefault(require("../Text")); var _SidebarAPI = require("../Sidebar/SidebarAPI"); var _constants2 = require("../Sidebar/constants"); var _context = require("../WixStyleReactProvider/context"); var _jsxFileName = "/home/builduser/work/a9c1ac8876d5057c/packages/wix-style-react/dist/cjs/SidebarSectionItem/SidebarSectionItem.js"; /** An item for the section within the sidebar */ class SidebarSectionItem extends _react.default.PureComponent { render() { var { dataHook, children, selected, disabled, drillable, alwaysDisplayChevron, prefix, suffix, onClick: _onClick, className, focusableOnFocus, focusableOnBlur, itemKey } = this.props; return /*#__PURE__*/_react.default.createElement(_context.WixStyleReactContext.Consumer, { __self: this, __source: { fileName: _jsxFileName, lineNumber: 57, columnNumber: 7 } }, _ref => { var { sidebarExperimentCollapsible, newColorsBranding } = _ref; return /*#__PURE__*/_react.default.createElement(_SidebarAPI.SidebarContext.Consumer, { __self: this, __source: { fileName: _jsxFileName, lineNumber: 59, columnNumber: 11 } }, context => { var skin = context && context.getSkin() || _constants2.sidebarSkins.dark; return /*#__PURE__*/_react.default.createElement("button", { "data-hook": dataHook, "data-selected": selected, "data-always-display-chevron": alwaysDisplayChevron, onClick: e => { if (!disabled) { _onClick && _onClick(e); } if (!e.defaultPrevented) { context && context.itemClicked(itemKey); } }, onFocus: focusableOnFocus, onBlur: focusableOnBlur, disabled: disabled, type: "button", tabIndex: "0", className: (0, _SidebarSectionItemSt.st)(_SidebarSectionItemSt.classes.root, { selected, disabled, prefix: Boolean(prefix), suffix: Boolean(suffix), drillable, skin, alwaysDisplayChevron, sidebarExperimentCollapsible, newColorsBranding }, className), __self: this, __source: { fileName: _jsxFileName, lineNumber: 63, columnNumber: 17 } }, prefix && /*#__PURE__*/_react.default.createElement("span", { "data-hook": _constants.dataHooks.prefix, className: _SidebarSectionItemSt.classes.prefix, __self: this, __source: { fileName: _jsxFileName, lineNumber: 97, columnNumber: 21 } }, prefix), /*#__PURE__*/_react.default.createElement("span", { className: _SidebarSectionItemSt.classes.textWrapper, "data-hook": _constants.dataHooks.title, __self: this, __source: { fileName: _jsxFileName, lineNumber: 104, columnNumber: 19 } }, /*#__PURE__*/_react.default.createElement(_Text.default, { className: _SidebarSectionItemSt.classes.text, size: "small", weight: "normal", secondary: skin === _constants2.sidebarSkins.light, light: skin === _constants2.sidebarSkins.dark, skin: disabled ? 'disabled' : undefined, __self: this, __source: { fileName: _jsxFileName, lineNumber: 108, columnNumber: 21 } }, children)), !disabled && (suffix || drillable) && /*#__PURE__*/_react.default.createElement("span", { "data-hook": _constants.dataHooks.suffix, className: _SidebarSectionItemSt.classes.suffix, __self: this, __source: { fileName: _jsxFileName, lineNumber: 120, columnNumber: 21 } }, suffix || /*#__PURE__*/_react.default.createElement(_wixUiIconsCommon.ChevronRight, { "data-hook": _constants.dataHooks.chevronRight, className: _SidebarSectionItemSt.classes.chevron, __self: this, __source: { fileName: _jsxFileName, lineNumber: 125, columnNumber: 25 } }))); }); }); } } SidebarSectionItem.displayName = 'SidebarSectionItem'; SidebarSectionItem.propTypes = { /** Applied as data-hook HTML attribute that can be used in the tests */ dataHook: _propTypes.default.string, /** A css class to be applied to the component's root element */ className: _propTypes.default.string, /** An element to appear at the beginning of the text */ prefix: _propTypes.default.node, /** An element to appear at the end of the text */ suffix: _propTypes.default.node, /** Indicates whether to display the item as selected */ selected: _propTypes.default.bool, /** Indicates whether to display the item as disabled */ disabled: _propTypes.default.bool, /** Indicates whether to display an icon for drilling in on hover */ drillable: _propTypes.default.bool, /** Indicates whether to display a low-opacity icon for drilling even without hover, relevant only when drillable is true */ alwaysDisplayChevron: _propTypes.default.bool, /** A callback to be triggered on click */ onClick: _propTypes.default.func, /** unique identifier per item, used to mark it for navigation and selection */ itemKey: _propTypes.default.string }; var _default = exports.default = (0, _Focusable.withFocusable)(SidebarSectionItem); //# sourceMappingURL=SidebarSectionItem.js.map