0.1.13 • Published 5 years ago
@scripty/react-header v0.1.13
@scripty/react-header
Description
lightweight react header component. It has full working flyout navigation, user menu and breadcrumbs with appropriate highlighting. Install and enjoy applying your styles to the header.

Usage
npm install -s @scripty/react-headerClient: Example.jsx
import React, { useState } from 'react';
import { BrowserRouter as Router } from 'react-router-dom';
import { Header } from '@scripty/react-header';
export const Example = () => {
const [ selectedKeys, setSelectedKeys ] = useState([])
const onClick = (key, selectedKeys) => {
setSelectedKeys(selectedKeys);
}
const routes = [
{
"key" : "Dashboard",
"label" : "Dashboard",
"icon" : "DashboardOutlined",
"path" : "/",
"exact" : true
},
{
"key" : "Example",
"label" : "Example",
"icon" : "BankOutlined",
"path" : "/example",
"submenu" : [
{
"key" : "Sub-1",
"label" : "Sub 1",
"path" : "/sub1",
"icon" : "CloudServerOutlined",
"submenu" : [
{
"key" : "Sub-1-1",
"label" : "Sub-1-1",
"path" : "/sub-1-1",
"icon" : "CreditCardFilled",
}
]
}
]
}
];
const userMenuRoutes = [
{
"key" : "UserMenu",
"label" : "Login",
"path" : "/login",
"exact" : true,
"submenu" : [
{
"key" : "Profile",
"label" : "Profile",
"path" : "/profile",
"icon" : "UserOutlined",
},
{
"key" : "Settings",
"label" : "Settings",
"path" : "/settings",
"icon" : "SettingOutlined",
}
]
}
];
const loggedOutUserMenuRoute = [
{
"key" : "UserMenu",
"label" : "Login",
"path" : "/login",
"exact" : true
}
];
const loggedInUser = {
username: 'Danijel',
loggedIn: true,
avatar: {
url: 'https://s.gravatar.com/avatar/d363403799aa4b4de34c36bc290ebe12?size=50&default=retro'
}
};
const loggedOutUser = {
loggedIn: false,
};
return (
<Router>
<h2>Fullpage Header</h2>
<Header
routes={routes}
userMenuRoutes={userMenuRoutes}
user={loggedInUser}
selectedKeys={selectedKeys}
onClick={onClick}
showBreadcrumbs={true}
logo={'Awsome Logo'}
/>
<br /><br /><br /><br /><br />
<h2>Sized Header</h2>
<Header
routes={routes}
userMenuRoutes={userMenuRoutes}
user={loggedInUser}
selectedKeys={selectedKeys}
onClick={onClick}
layout={'sized'}
showBreadcrumbs={true}
logo={<div>Your Logo</div>}
/>
<br /><br /><br /><br /><br />
<h2>Sized Header without Breadcrumbs</h2>
<Header
routes={routes}
userMenuRoutes={loggedOutUserMenuRoute}
user={loggedOutUser}
selectedKeys={selectedKeys}
onClick={onClick}
layout={'sized'}
logo={'Logo'}
/>
</Router>
);
};Components
| Name | Description |
|---|---|
| Header | Header with 3 Level Flyout Navigation and usermenu |
Header Properties
| Property | Type | Default |
|---|---|---|
| onClick | Function | () => {} |
| routes | Array | [] |
| userMenuRoutes | Array | [] |
| selectedKeys | Array | [] |
| user | Object | { loggedIn: false } |
| layout | Array | fullpage |
| showBreadcrumbs | Boolean | false |
| logo | React.Component or String | Logo |
Route Properties
| Property | Type | Description |
|---|---|---|
| key | String | unique id key (required) |
| label | String | (required) |
| path | String | (required) |
| icon | String | (optional) |
What´s next?
- add offcanvas for smaller breakpoints
- bugfixes