@nlabs/gothamjs
Version:
Platform
132 lines (131 loc) • 16.1 kB
JavaScript
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
/**
* Copyright (c) 2018-Present, Nitrogen Labs, Inc.
* Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms.
*/ import React, { useState } from 'react';
import { useNavigate } from 'react-router';
const navItems = [
{
label: 'Home',
path: '/'
},
{
label: 'About',
path: '/about'
},
{
label: 'Contact',
path: '/contact'
}
];
export const HomeView = ({ children, title = 'GothamJS' })=>{
const [mobileOpen, setMobileOpen] = useState(false);
const navigate = useNavigate();
const handleDrawerToggle = ()=>{
setMobileOpen(!mobileOpen);
};
const handleNavigation = (path)=>{
navigate(path);
setMobileOpen(false);
};
return /*#__PURE__*/ _jsxs("div", {
className: "flex flex-col min-h-screen",
children: [
/*#__PURE__*/ _jsxs("header", {
className: "bg-indigo-600 text-white shadow-md",
children: [
/*#__PURE__*/ _jsx("div", {
className: "container mx-auto px-4",
children: /*#__PURE__*/ _jsxs("div", {
className: "flex items-center justify-between h-16",
children: [
/*#__PURE__*/ _jsx("div", {
className: "flex items-center sm:hidden",
children: /*#__PURE__*/ _jsxs("button", {
type: "button",
className: "inline-flex items-center justify-center p-2 rounded-md text-white hover:bg-indigo-500 focus:outline-none focus:ring-2 focus:ring-inset focus:ring-white",
"aria-controls": "mobile-menu",
"aria-expanded": mobileOpen,
onClick: handleDrawerToggle,
children: [
/*#__PURE__*/ _jsx("span", {
className: "sr-only",
children: "Open main menu"
}),
/*#__PURE__*/ _jsx("svg", {
className: `${mobileOpen ? 'hidden' : 'block'} h-6 w-6`,
xmlns: "http://www.w3.org/2000/svg",
fill: "none",
viewBox: "0 0 24 24",
stroke: "currentColor",
"aria-hidden": "true",
children: /*#__PURE__*/ _jsx("path", {
strokeLinecap: "round",
strokeLinejoin: "round",
strokeWidth: 2,
d: "M4 6h16M4 12h16M4 18h16"
})
}),
/*#__PURE__*/ _jsx("svg", {
className: `${mobileOpen ? 'block' : 'hidden'} h-6 w-6`,
xmlns: "http://www.w3.org/2000/svg",
fill: "none",
viewBox: "0 0 24 24",
stroke: "currentColor",
"aria-hidden": "true",
children: /*#__PURE__*/ _jsx("path", {
strokeLinecap: "round",
strokeLinejoin: "round",
strokeWidth: 2,
d: "M6 18L18 6M6 6l12 12"
})
})
]
})
}),
/*#__PURE__*/ _jsx("div", {
className: "flex-1 flex items-center justify-center sm:items-stretch sm:justify-start",
children: /*#__PURE__*/ _jsx("div", {
className: "flex-shrink-0 flex items-center",
children: /*#__PURE__*/ _jsx("h1", {
className: "text-xl font-bold",
children: title
})
})
}),
/*#__PURE__*/ _jsx("div", {
className: "hidden sm:block sm:ml-6",
children: /*#__PURE__*/ _jsx("div", {
className: "flex space-x-4",
children: navItems.map(({ label, path })=>/*#__PURE__*/ _jsx("button", {
onClick: ()=>handleNavigation(path),
className: "text-white hover:bg-indigo-500 px-3 py-2 rounded-md text-sm font-medium",
children: label
}, path))
})
})
]
})
}),
/*#__PURE__*/ _jsx("div", {
className: `${mobileOpen ? 'block' : 'hidden'} sm:hidden`,
id: "mobile-menu",
children: /*#__PURE__*/ _jsx("div", {
className: "px-2 pt-2 pb-3 space-y-1",
children: navItems.map(({ label, path })=>/*#__PURE__*/ _jsx("button", {
onClick: ()=>handleNavigation(path),
className: "text-white hover:bg-indigo-500 block px-3 py-2 rounded-md text-base font-medium w-full text-left",
children: label
}, path))
})
})
]
}),
/*#__PURE__*/ _jsx("main", {
className: "flex-grow p-4",
children: children
})
]
});
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy92aWV3cy9Ib21lVmlldy9Ib21lVmlldy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cbmltcG9ydCBSZWFjdCwge3VzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge3VzZU5hdmlnYXRlfSBmcm9tICdyZWFjdC1yb3V0ZXInO1xuXG5jb25zdCBuYXZJdGVtcyA9IFtcbiAgeyBsYWJlbDogJ0hvbWUnLCBwYXRoOiAnLycgfSxcbiAgeyBsYWJlbDogJ0Fib3V0JywgcGF0aDogJy9hYm91dCcgfSxcbiAgeyBsYWJlbDogJ0NvbnRhY3QnLCBwYXRoOiAnL2NvbnRhY3QnIH1cbl07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSG9tZVZpZXdQcm9wcyB7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICB0aXRsZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IEhvbWVWaWV3OiBSZWFjdC5GQzxIb21lVmlld1Byb3BzPiA9ICh7XG4gIGNoaWxkcmVuLFxuICB0aXRsZSA9ICdHb3RoYW1KUydcbn0pID0+IHtcbiAgY29uc3QgW21vYmlsZU9wZW4sIHNldE1vYmlsZU9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XG5cbiAgY29uc3QgaGFuZGxlRHJhd2VyVG9nZ2xlID0gKCkgPT4ge1xuICAgIHNldE1vYmlsZU9wZW4oIW1vYmlsZU9wZW4pO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZU5hdmlnYXRpb24gPSAocGF0aDogc3RyaW5nKSA9PiB7XG4gICAgbmF2aWdhdGUocGF0aCk7XG4gICAgc2V0TW9iaWxlT3BlbihmYWxzZSk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgbWluLWgtc2NyZWVuXCI+XG4gICAgICB7LyogTmF2aWdhdGlvbiBCYXIgKi99XG4gICAgICA8aGVhZGVyIGNsYXNzTmFtZT1cImJnLWluZGlnby02MDAgdGV4dC13aGl0ZSBzaGFkb3ctbWRcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250YWluZXIgbXgtYXV0byBweC00XCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gaC0xNlwiPlxuICAgICAgICAgICAgey8qIE1vYmlsZSBtZW51IGJ1dHRvbiAqL31cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgc206aGlkZGVuXCI+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcC0yIHJvdW5kZWQtbWQgdGV4dC13aGl0ZSBob3ZlcjpiZy1pbmRpZ28tNTAwIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTIgZm9jdXM6cmluZy1pbnNldCBmb2N1czpyaW5nLXdoaXRlXCJcbiAgICAgICAgICAgICAgICBhcmlhLWNvbnRyb2xzPVwibW9iaWxlLW1lbnVcIlxuICAgICAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e21vYmlsZU9wZW59XG4gICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlRHJhd2VyVG9nZ2xlfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwic3Itb25seVwiPk9wZW4gbWFpbiBtZW51PC9zcGFuPlxuICAgICAgICAgICAgICAgIHsvKiBJY29uIHdoZW4gbWVudSBpcyBjbG9zZWQgKi99XG4gICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHttb2JpbGVPcGVuID8gJ2hpZGRlbicgOiAnYmxvY2snfSBoLTYgdy02YH1cbiAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICBzdHJva2VMaW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICBzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg9ezJ9XG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNNCA2aDE2TTQgMTJoMTZNNCAxOGgxNlwiXG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgIHsvKiBJY29uIHdoZW4gbWVudSBpcyBvcGVuICovfVxuICAgICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7bW9iaWxlT3BlbiA/ICdibG9jaycgOiAnaGlkZGVuJ30gaC02IHctNmB9XG4gICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlTGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRoPXsyfVxuICAgICAgICAgICAgICAgICAgICBkPVwiTTYgMThMMTggNk02IDZsMTIgMTJcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgey8qIExvZ28gKi99XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgtMSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBzbTppdGVtcy1zdHJldGNoIHNtOmp1c3RpZnktc3RhcnRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4LXNocmluay0wIGZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgPGgxIGNsYXNzTmFtZT1cInRleHQteGwgZm9udC1ib2xkXCI+e3RpdGxlfTwvaDE+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIHsvKiBEZXNrdG9wIE5hdmlnYXRpb24gKi99XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImhpZGRlbiBzbTpibG9jayBzbTptbC02XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBzcGFjZS14LTRcIj5cbiAgICAgICAgICAgICAgICB7bmF2SXRlbXMubWFwKCh7bGFiZWwsIHBhdGh9KSA9PiAoXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGtleT17cGF0aH1cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gaGFuZGxlTmF2aWdhdGlvbihwYXRoKX1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC13aGl0ZSBob3ZlcjpiZy1pbmRpZ28tNTAwIHB4LTMgcHktMiByb3VuZGVkLW1kIHRleHQtc20gZm9udC1tZWRpdW1cIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgey8qIE1vYmlsZSBOYXZpZ2F0aW9uICovfVxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3NOYW1lPXtgJHttb2JpbGVPcGVuID8gJ2Jsb2NrJyA6ICdoaWRkZW4nfSBzbTpoaWRkZW5gfVxuICAgICAgICAgIGlkPVwibW9iaWxlLW1lbnVcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJweC0yIHB0LTIgcGItMyBzcGFjZS15LTFcIj5cbiAgICAgICAgICAgIHtuYXZJdGVtcy5tYXAoKHtsYWJlbCwgcGF0aH0pID0+IChcbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGtleT17cGF0aH1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBoYW5kbGVOYXZpZ2F0aW9uKHBhdGgpfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtd2hpdGUgaG92ZXI6YmctaW5kaWdvLTUwMCBibG9jayBweC0zIHB5LTIgcm91bmRlZC1tZCB0ZXh0LWJhc2UgZm9udC1tZWRpdW0gdy1mdWxsIHRleHQtbGVmdFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7bGFiZWx9XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9oZWFkZXI+XG5cbiAgICAgIHsvKiBNYWluIENvbnRlbnQgKi99XG4gICAgICA8bWFpbiBjbGFzc05hbWU9XCJmbGV4LWdyb3cgcC00XCI+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvbWFpbj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VTdGF0ZSIsInVzZU5hdmlnYXRlIiwibmF2SXRlbXMiLCJsYWJlbCIsInBhdGgiLCJIb21lVmlldyIsImNoaWxkcmVuIiwidGl0bGUiLCJtb2JpbGVPcGVuIiwic2V0TW9iaWxlT3BlbiIsIm5hdmlnYXRlIiwiaGFuZGxlRHJhd2VyVG9nZ2xlIiwiaGFuZGxlTmF2aWdhdGlvbiIsImRpdiIsImNsYXNzTmFtZSIsImhlYWRlciIsImJ1dHRvbiIsInR5cGUiLCJhcmlhLWNvbnRyb2xzIiwiYXJpYS1leHBhbmRlZCIsIm9uQ2xpY2siLCJzcGFuIiwic3ZnIiwieG1sbnMiLCJmaWxsIiwidmlld0JveCIsInN0cm9rZSIsImFyaWEtaGlkZGVuIiwic3Ryb2tlTGluZWNhcCIsInN0cm9rZUxpbmVqb2luIiwic3Ryb2tlV2lkdGgiLCJkIiwiaDEiLCJtYXAiLCJpZCIsIm1haW4iXSwibWFwcGluZ3MiOiI7QUFBQTs7O0NBR0MsR0FDRCxPQUFPQSxTQUFRQyxRQUFRLFFBQU8sUUFBUTtBQUN0QyxTQUFRQyxXQUFXLFFBQU8sZUFBZTtBQUV6QyxNQUFNQyxXQUFXO0lBQ2Y7UUFBRUMsT0FBTztRQUFRQyxNQUFNO0lBQUk7SUFDM0I7UUFBRUQsT0FBTztRQUFTQyxNQUFNO0lBQVM7SUFDakM7UUFBRUQsT0FBTztRQUFXQyxNQUFNO0lBQVc7Q0FDdEM7QUFPRCxPQUFPLE1BQU1DLFdBQW9DLENBQUMsRUFDaERDLFFBQVEsRUFDUkMsUUFBUSxVQUFVLEVBQ25CO0lBQ0MsTUFBTSxDQUFDQyxZQUFZQyxjQUFjLEdBQUdULFNBQVM7SUFDN0MsTUFBTVUsV0FBV1Q7SUFFakIsTUFBTVUscUJBQXFCO1FBQ3pCRixjQUFjLENBQUNEO0lBQ2pCO0lBRUEsTUFBTUksbUJBQW1CLENBQUNSO1FBQ3hCTSxTQUFTTjtRQUNUSyxjQUFjO0lBQ2hCO0lBRUEscUJBQ0UsTUFBQ0k7UUFBSUMsV0FBVTs7MEJBRWIsTUFBQ0M7Z0JBQU9ELFdBQVU7O2tDQUNoQixLQUFDRDt3QkFBSUMsV0FBVTtrQ0FDYixjQUFBLE1BQUNEOzRCQUFJQyxXQUFVOzs4Q0FFYixLQUFDRDtvQ0FBSUMsV0FBVTs4Q0FDYixjQUFBLE1BQUNFO3dDQUNDQyxNQUFLO3dDQUNMSCxXQUFVO3dDQUNWSSxpQkFBYzt3Q0FDZEMsaUJBQWVYO3dDQUNmWSxTQUFTVDs7MERBRVQsS0FBQ1U7Z0RBQUtQLFdBQVU7MERBQVU7OzBEQUUxQixLQUFDUTtnREFDQ1IsV0FBVyxHQUFHTixhQUFhLFdBQVcsUUFBUSxRQUFRLENBQUM7Z0RBQ3ZEZSxPQUFNO2dEQUNOQyxNQUFLO2dEQUNMQyxTQUFRO2dEQUNSQyxRQUFPO2dEQUNQQyxlQUFZOzBEQUVaLGNBQUEsS0FBQ3ZCO29EQUNDd0IsZUFBYztvREFDZEMsZ0JBQWU7b0RBQ2ZDLGFBQWE7b0RBQ2JDLEdBQUU7OzswREFJTixLQUFDVDtnREFDQ1IsV0FBVyxHQUFHTixhQUFhLFVBQVUsU0FBUyxRQUFRLENBQUM7Z0RBQ3ZEZSxPQUFNO2dEQUNOQyxNQUFLO2dEQUNMQyxTQUFRO2dEQUNSQyxRQUFPO2dEQUNQQyxlQUFZOzBEQUVaLGNBQUEsS0FBQ3ZCO29EQUNDd0IsZUFBYztvREFDZEMsZ0JBQWU7b0RBQ2ZDLGFBQWE7b0RBQ2JDLEdBQUU7Ozs7Ozs4Q0FPVixLQUFDbEI7b0NBQUlDLFdBQVU7OENBQ2IsY0FBQSxLQUFDRDt3Q0FBSUMsV0FBVTtrREFDYixjQUFBLEtBQUNrQjs0Q0FBR2xCLFdBQVU7c0RBQXFCUDs7Ozs4Q0FLdkMsS0FBQ007b0NBQUlDLFdBQVU7OENBQ2IsY0FBQSxLQUFDRDt3Q0FBSUMsV0FBVTtrREFDWlosU0FBUytCLEdBQUcsQ0FBQyxDQUFDLEVBQUM5QixLQUFLLEVBQUVDLElBQUksRUFBQyxpQkFDMUIsS0FBQ1k7Z0RBRUNJLFNBQVMsSUFBTVIsaUJBQWlCUjtnREFDaENVLFdBQVU7MERBRVRYOytDQUpJQzs7Ozs7O2tDQWFqQixLQUFDUzt3QkFDQ0MsV0FBVyxHQUFHTixhQUFhLFVBQVUsU0FBUyxVQUFVLENBQUM7d0JBQ3pEMEIsSUFBRztrQ0FFSCxjQUFBLEtBQUNyQjs0QkFBSUMsV0FBVTtzQ0FDWlosU0FBUytCLEdBQUcsQ0FBQyxDQUFDLEVBQUM5QixLQUFLLEVBQUVDLElBQUksRUFBQyxpQkFDMUIsS0FBQ1k7b0NBRUNJLFNBQVMsSUFBTVIsaUJBQWlCUjtvQ0FDaENVLFdBQVU7OENBRVRYO21DQUpJQzs7Ozs7MEJBWWYsS0FBQytCO2dCQUFLckIsV0FBVTswQkFDYlI7Ozs7QUFJVCxFQUFFIn0=