diff options
author | Eugene Sokolov <eug-vs@keemail.me> | 2020-02-03 19:03:50 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-03 19:03:50 +0000 |
commit | 616830b0b64df5d3efb0c66c0439ff094588e369 (patch) | |
tree | babb71753d65c3820abfdeab1f0ec0d2ec6df360 /src | |
parent | 856d9ad8038880f3f67ecfdf10d1b555563d0e3f (diff) | |
parent | 94a00e852a0f99dbe9cef949375a79e175c7cc94 (diff) | |
download | react-benzin-616830b0b64df5d3efb0c66c0439ff094588e369.tar.gz |
Merge pull request #3 from eug-vs/header
feat: migrate Header to TypeScript
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/Header/Header.tsx (renamed from src/lib/Header/Header.js) | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/src/lib/Header/Header.js b/src/lib/Header/Header.tsx index 3ade7b3..7f3d35d 100644 --- a/src/lib/Header/Header.js +++ b/src/lib/Header/Header.tsx @@ -11,7 +11,19 @@ import { import { makeStyles } from '@material-ui/core/styles'; -const useStyles = makeStyles(theme => ({ +interface PropTypes { + logo: { + icon: React.ReactNode; + title: string; + }; + contents: { + [key: string]: React.ReactNode | null; + }; + page: string; + setPage: (newPage: string) => void; +} + +const useStyles = makeStyles((theme: any) => ({ root: { background: theme.palette.background.elevation2, color: theme.palette.text.primary, @@ -34,10 +46,10 @@ const useStyles = makeStyles(theme => ({ })); -const Header = ({ logo, contents, page, setPage }) => { +const Header: React.FC<PropTypes> = ({ logo, contents, page, setPage }) => { const classes = useStyles(); - const handleChange = (event, newPage) => { + const handleChange = (event: React.ChangeEvent<{}>, newPage: string) => { setPage(newPage); }; @@ -49,10 +61,10 @@ const Header = ({ logo, contents, page, setPage }) => { {logo.title} </Typography> <Tabs onChange={handleChange} value={page}> - {contents && Object.keys(contents).map(item => ( + {contents && Object.keys(contents).map((item: string) => ( <Tab label={item} - icon={contents[item]} + icon={contents[item] as JSX.Element} value={item} className={classes.tab} key={item} |