@fenderdigital/react-menu
Version:
Fender React UI Kit Menu Component
44 lines (43 loc) • 5.54 kB
JavaScript
"use strict";
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
return cooked;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var react_1 = __importDefault(require("react"));
var styled_components_1 = __importDefault(require("styled-components"));
var MenuAccordion_1 = __importDefault(require("./MenuAccordion"));
var MenuCTA_1 = __importDefault(require("./MenuCTA"));
var MenuUtils_1 = __importDefault(require("./MenuUtils"));
var Menu_1 = require("./Menu");
var MenuMobileContent = function (_a) {
var className = _a.className, firstName = _a.firstName, onClick = _a.onClick, pathname = _a.pathname, primary = _a.primary, profileUrl = _a.profileUrl, secondary = _a.secondary, signOutUrl = _a.signOutUrl;
return (react_1.default.createElement("section", { className: "menu-mobile-content " + className, "data-id": "menu-mobile-content" },
react_1.default.createElement("header", { className: "menu-mobile-header" },
react_1.default.createElement("button", { "data-id": "menu-mobile-content-close-button", type: "button", onClick: function () { return onClick('close'); } },
react_1.default.createElement("i", { className: "icon-x" }))),
react_1.default.createElement("nav", { className: "menu-mobile-content-nav" },
react_1.default.createElement("ul", null, Array.isArray(primary)
? primary.map(function (item) { return (react_1.default.createElement("li", { key: "menu-mobile-content-item-primary-" + item.id }, item.items ? (react_1.default.createElement(MenuAccordion_1.default, { icon: item.icon, id: item.id, items: item.items, isActive: MenuUtils_1.default(pathname, item.url), isMobile: true, label: item.label, onClick: onClick, pathname: pathname })) : (react_1.default.createElement(MenuCTA_1.default, { icon: item.icon, id: item.id, isActive: MenuUtils_1.default(pathname, item.url), isMobile: true, label: item.label, onClick: onClick, url: item.url })))); })
: null)),
react_1.default.createElement("nav", { className: "menu-mobile-content-nav" },
react_1.default.createElement("ul", null, Array.isArray(secondary)
? secondary.map(function (item) { return (react_1.default.createElement("li", { key: "menu-mobile-content-item-secondary-" + item.id },
react_1.default.createElement(MenuCTA_1.default, { icon: item.icon, id: item.id, isLink: true, label: item.label, onClick: onClick, target: item.target, url: item.url }))); })
: null)),
firstName ? (react_1.default.createElement("nav", { className: "menu-mobile-content-nav" },
react_1.default.createElement("ul", null,
react_1.default.createElement("li", null,
react_1.default.createElement(MenuCTA_1.default, { icon: "profile", id: "profile", isLink: true, label: "Hi, " + firstName, onClick: onClick, url: profileUrl })),
react_1.default.createElement("li", null,
react_1.default.createElement(MenuCTA_1.default, { icon: "sign-out", id: "sign-out", isLink: true, label: "Sign Out", onClick: onClick, url: signOutUrl }))))) : null));
};
var StyledMenuMobileContent = styled_components_1.default(MenuMobileContent)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n height: 100%;\n width: 100%;\n padding-bottom: 100px;\n\n position: absolute;\n top: 0;\n left: 0;\n overflow: auto;\n\n @media (min-width: 480px) {\n width: ", ";\n }\n\n /**\n * Menu Mobile Header\n */\n .menu-mobile-header {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n\n > button {\n border-width: 0;\n border-style: none;\n padding: 1rem;\n\n background-color: transparent;\n\n font-size: 1.5rem;\n color: #666;\n\n cursor: pointer;\n outline: 0;\n }\n }\n\n /**\n * Menu Mobile Content Nav\n */\n .menu-mobile-content-nav {\n border-top: 1px solid #e0e0e0;\n border-bottom: 1px solid #e0e0e0;\n margin-bottom: 24px;\n\n background-color: white;\n\n > ul {\n margin: 0;\n padding-left: 0;\n list-style-type: none;\n }\n }\n"], ["\n height: 100%;\n width: 100%;\n padding-bottom: 100px;\n\n position: absolute;\n top: 0;\n left: 0;\n overflow: auto;\n\n @media (min-width: 480px) {\n width: ", ";\n }\n\n /**\n * Menu Mobile Header\n */\n .menu-mobile-header {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n\n > button {\n border-width: 0;\n border-style: none;\n padding: 1rem;\n\n background-color: transparent;\n\n font-size: 1.5rem;\n color: #666;\n\n cursor: pointer;\n outline: 0;\n }\n }\n\n /**\n * Menu Mobile Content Nav\n */\n .menu-mobile-content-nav {\n border-top: 1px solid #e0e0e0;\n border-bottom: 1px solid #e0e0e0;\n margin-bottom: 24px;\n\n background-color: white;\n\n > ul {\n margin: 0;\n padding-left: 0;\n list-style-type: none;\n }\n }\n"])), function () { return Menu_1.width; });
StyledMenuMobileContent.defaultProps = {
className: '',
};
exports.default = StyledMenuMobileContent;
var templateObject_1;