aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEugene Sokolov <eug-vs@keemail.me>2020-02-03 19:03:50 +0000
committerGitHub <noreply@github.com>2020-02-03 19:03:50 +0000
commit616830b0b64df5d3efb0c66c0439ff094588e369 (patch)
treebabb71753d65c3820abfdeab1f0ec0d2ec6df360 /src
parent856d9ad8038880f3f67ecfdf10d1b555563d0e3f (diff)
parent94a00e852a0f99dbe9cef949375a79e175c7cc94 (diff)
downloadreact-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}