diff --git a/example/src/App.js b/example/src/App.js index 1730b20c..1b8fe999 100644 --- a/example/src/App.js +++ b/example/src/App.js @@ -3,9 +3,11 @@ import { BrowserRouter } from 'react-router-dom'; import LiveHelpIcon from '@material-ui/icons/LiveHelp'; import { ThemeProvider } from '@material-ui/core/styles'; +import NotificationsNoneIcon from '@material-ui/icons/NotificationsNone' import { Account, + colors, Footer, Header, PageTemplate, @@ -22,13 +24,18 @@ const App = () => { const headerProps = { hreflogo: '/', - items: [ + itemsStart: [ { title: 'FAQ', to: '/faq', icon: }, ], + itemsEnd: [ + { + icon: + } + ], login: () => ( {({ state: { web3, account, networkInfo }, actions: { setProvider }, availableProviders }) => ( diff --git a/package-lock.json b/package-lock.json index a3f89cf7..fda0e3b4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@rsksmart/rif-ui", - "version": "0.2.1", + "version": "0.3.4", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -7108,9 +7108,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001045", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001045.tgz", - "integrity": "sha512-Y8o2Iz1KPcD6FjySbk1sPpvJqchgxk/iow0DABpGyzA1UeQAuxh63Xh0Enj5/BrsYbXtCN32JmR4ZxQTCQ6E6A==", + "version": "1.0.30001156", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001156.tgz", + "integrity": "sha512-z7qztybA2eFZTB6Z3yvaQBIoJpQtsewRD74adw2UbRWwsRq3jIPvgrQGawBMbfafekQaD21FWuXNcywtTDGGCw==", "dev": true }, "capture-exit": { @@ -26183,7 +26183,7 @@ }, "react": { "version": "16.13.1", - "resolved": false, + "resolved": "", "integrity": "sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==", "dev": true, "requires": { @@ -26539,7 +26539,7 @@ }, "react-dom": { "version": "16.13.1", - "resolved": false, + "resolved": "", "integrity": "sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag==", "dev": true, "requires": { diff --git a/package.json b/package.json index de41952a..35a3663b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@rsksmart/rif-ui", - "version": "0.3.3", + "version": "0.4.0", "description": "Exposes common components to be re used in RIF projects", "keywords": [ "RIF", @@ -86,4 +86,4 @@ "last 1 safari version" ] } -} \ No newline at end of file +} diff --git a/src/components/organisms/Header/Header.tsx b/src/components/organisms/Header/Header.tsx index ab790f38..ee0bfba3 100644 --- a/src/components/organisms/Header/Header.tsx +++ b/src/components/organisms/Header/Header.tsx @@ -4,13 +4,13 @@ import { HeaderProps } from './HeaderProps' import HeaderDesktop from './HeaderDesktop' import HeaderMobile from './HeaderMobile' -const Header: FC = ({ hreflogo, items, login }) => ( +const Header: FC = (props) => ( - + - + ) diff --git a/src/components/organisms/Header/HeaderDesktop.tsx b/src/components/organisms/Header/HeaderDesktop.tsx index 9c6bd927..25e9917e 100644 --- a/src/components/organisms/Header/HeaderDesktop.tsx +++ b/src/components/organisms/Header/HeaderDesktop.tsx @@ -1,11 +1,13 @@ import React, { FC } from 'react' -import { AppBar, Toolbar } from '@material-ui/core' +import { + AppBar, Grid, ListItemIcon, Toolbar, +} from '@material-ui/core' import { makeStyles, Theme } from '@material-ui/core/styles' import { NavLink } from 'react-router-dom' import Typography from '@material-ui/core/Typography' +import { ActionHeaderItemProps, HeaderProps, NavItemProps } from './HeaderProps' import { LogoNavbar } from '../../atoms' import { colors, fonts, globalConstants } from '../../../theme' -import { HeaderProps, HeaderItemProps } from './HeaderProps' import { removeEmptySpaces } from '../../../utils' const useStyles = makeStyles((theme: Theme) => ({ @@ -13,13 +15,6 @@ const useStyles = makeStyles((theme: Theme) => ({ color: `${colors.white} !important`, fontWeight: fonts.weight.medium, }, - itemsContainer: { - display: 'flex', - }, - loginContainer: { - display: 'flex', - marginLeft: 'auto', - }, navLink: { alignItems: 'center', color: colors.white, @@ -43,38 +38,78 @@ const useStyles = makeStyles((theme: Theme) => ({ }, })) -const HeaderDesktop: FC = ({ hreflogo, items, login }) => { +const HeaderDesktop: FC = ({ + hreflogo, itemsStart, itemsEnd, login, +}) => { const classes = useStyles() const Login = login return ( - - - -
- { - !!items.length - && items.map((navItem: HeaderItemProps) => ( - - + + + + + + + { + !!itemsStart?.length + && itemsStart.map((navItem: NavItemProps) => ( + - {navItem.title} - - - )) - } -
-
- -
+ + {navItem.title} + + + )) + } + + + { + !!itemsEnd?.length + && itemsEnd.map(({ icon, ...rest }: ActionHeaderItemProps) => ( + + {icon} + + )) + } + + +
+ +
+
+
) diff --git a/src/components/organisms/Header/HeaderMobile.tsx b/src/components/organisms/Header/HeaderMobile.tsx index 7215ba8e..ea365dd8 100644 --- a/src/components/organisms/Header/HeaderMobile.tsx +++ b/src/components/organisms/Header/HeaderMobile.tsx @@ -4,24 +4,20 @@ import { Divider, Drawer, Toolbar, IconButton, List, ListItem, - ListItemText, ListItemIcon, + ListItemText, ListItemIcon, Grid, } from '@material-ui/core' import { NavLink } from 'react-router-dom' import MenuIcon from '@material-ui/icons/Menu' import ChevronLeftIcon from '@material-ui/icons/ChevronLeft' import { Theme, createStyles, makeStyles } from '@material-ui/core/styles' +import { ActionHeaderItemProps, HeaderProps, NavItemProps } from './HeaderProps' import { colors, globalConstants } from '../../../theme' import { LogoNavbar } from '../../atoms' -import { HeaderProps, HeaderItemProps } from './HeaderProps' import { removeEmptySpaces } from '../../../utils' const drawerWidth = 240 const useStyles = makeStyles((theme: Theme) => createStyles({ - loginContainer: { - display: 'flex', - marginLeft: 'auto', - }, drawerHeader: { display: 'flex', alignItems: 'center', @@ -66,12 +62,12 @@ const useStyles = makeStyles((theme: Theme) => createStyles({ }, })) -const HeaderMobile: FC = ({ hreflogo, items, login }) => { +const HeaderMobile: FC = ({ + hreflogo, itemsStart, itemsEnd, login: Login, +}) => { const classes = useStyles() const [open, setOpen] = useState(false) - const Login = login - const toggleDrawer = (isOpen: boolean) => ( event: React.KeyboardEvent | React.MouseEvent, ): void => { @@ -98,21 +94,45 @@ const HeaderMobile: FC = ({ hreflogo, items, login }) => { > {!open && ( - - + + + + + + + + + + + - - - - - -
- -
-
+ { + !!itemsEnd?.length + && itemsEnd.map(({ icon, ...rest }: ActionHeaderItemProps) => ( + + {icon} + + )) + } + + +
+ +
+
+ )}
@@ -133,8 +153,8 @@ const HeaderMobile: FC = ({ hreflogo, items, login }) => { { - !!items.length - && items.map((headerItem: HeaderItemProps) => ( + !!itemsStart?.length + && itemsStart.map((headerItem: NavItemProps) => ( >