Port to typescript

This commit is contained in:
she11sh0cked
2020-12-24 16:50:50 +01:00
parent 59c69a4f7f
commit efbb2a8524
16 changed files with 762 additions and 739 deletions
@@ -1,65 +0,0 @@
import React from "react";
import { makeStyles } from "@material-ui/core/styles";
import Card from "@material-ui/core/Card";
import CardContent from "@material-ui/core/CardContent";
import Button from "@material-ui/core/Button";
import Avatar from "@material-ui/core/Avatar";
import Typography from "@material-ui/core/Typography";
const useStyles = makeStyles((theme) => ({
root: {
display: "flex",
justifyContent: "space-between",
alignItems: "center",
padding: 16
},
bullet: {
display: "inline-block",
margin: "0 2px",
transform: "scale(0.8)"
},
title: {
fontSize: 14
},
pos: {
marginBottom: 12
},
icon: {
width: theme.spacing(7),
height: theme.spacing(7),
flex: "0 0 auto",
marginRight: 16
}
}));
export default function ExtensionCard(props) {
const classes = useStyles();
const bull = <span className={classes.bullet}></span>;
const {name, lang, versionName, iconUrl} = props
const langPress = lang === "all"? "All": lang.toUpperCase()
return (
<Card>
<CardContent className={classes.root}>
<div style={{display:"flex"}}>
<Avatar
variant="rounded"
className={classes.icon}
alt={name}
src={iconUrl}
/>
<div style={{display:"flex", flexDirection:"column"}}>
<Typography variant="h5" component="h2">
{name}
</Typography>
<Typography variant="caption" display="block" gutterBottom>
{langPress} {versionName}
</Typography>
</div>
</div>
<Button variant="outlined" >install</Button>
</CardContent>
</Card>
);
}
@@ -0,0 +1,75 @@
import React from 'react';
import { makeStyles } from '@material-ui/core/styles';
import Card from '@material-ui/core/Card';
import CardContent from '@material-ui/core/CardContent';
import Button from '@material-ui/core/Button';
import Avatar from '@material-ui/core/Avatar';
import Typography from '@material-ui/core/Typography';
const useStyles = makeStyles((theme) => ({
root: {
display: 'flex',
justifyContent: 'space-between',
alignItems: 'center',
padding: 16,
},
bullet: {
display: 'inline-block',
margin: '0 2px',
transform: 'scale(0.8)',
},
title: {
fontSize: 14,
},
pos: {
marginBottom: 12,
},
icon: {
width: theme.spacing(7),
height: theme.spacing(7),
flex: '0 0 auto',
marginRight: 16,
},
}));
interface IProps {
extension: IExtension
}
export default function ExtensionCard({
extension: {
name, lang, versionName, iconUrl,
},
}: IProps) {
const classes = useStyles();
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const bull = <span className={classes.bullet}></span>;
const langPress = lang === 'all' ? 'All' : lang.toUpperCase();
return (
<Card>
<CardContent className={classes.root}>
<div style={{ display: 'flex' }}>
<Avatar
variant="rounded"
className={classes.icon}
alt={name}
src={iconUrl}
/>
<div style={{ display: 'flex', flexDirection: 'column' }}>
<Typography variant="h5" component="h2">
{name}
</Typography>
<Typography variant="caption" display="block" gutterBottom>
{langPress}
{' '}
{versionName}
</Typography>
</div>
</div>
<Button variant="outlined">install</Button>
</CardContent>
</Card>
);
}
@@ -1,12 +1,11 @@
import React, {useState} from 'react';
import {makeStyles} from '@material-ui/core/styles';
import React, { useState } from 'react';
import { makeStyles } from '@material-ui/core/styles';
import AppBar from '@material-ui/core/AppBar';
import Toolbar from '@material-ui/core/Toolbar';
import Typography from '@material-ui/core/Typography';
import Button from '@material-ui/core/Button';
import IconButton from '@material-ui/core/IconButton';
import MenuIcon from '@material-ui/icons/Menu';
import TemporaryDrawer from "./TemporaryDrawer";
import TemporaryDrawer from './TemporaryDrawer';
const useStyles = makeStyles((theme) => ({
root: {
@@ -22,22 +21,28 @@ const useStyles = makeStyles((theme) => ({
export default function NavBar() {
const classes = useStyles();
const [drawerOpen, setDrawerOpen] = useState(false)
const [drawerOpen, setDrawerOpen] = useState(false);
return (
<div className={classes.root}>
<AppBar position="static">
<Toolbar>
<IconButton edge="start" className={classes.menuButton} color="inherit" aria-label="menu" disableRipple
onClick={() => setDrawerOpen(true)}>
<MenuIcon/>
<IconButton
edge="start"
className={classes.menuButton}
color="inherit"
aria-label="menu"
disableRipple
onClick={() => setDrawerOpen(true)}
>
<MenuIcon />
</IconButton>
<Typography variant="h6" className={classes.title}>
Tachidesk
</Typography>
</Toolbar>
</AppBar>
<TemporaryDrawer drawerOpen={drawerOpen} setDrawerOpen={setDrawerOpen}/>
<TemporaryDrawer drawerOpen={drawerOpen} setDrawerOpen={setDrawerOpen} />
</div>
);
}
@@ -1,55 +0,0 @@
import React from "react";
import {makeStyles} from "@material-ui/core/styles";
import Drawer from "@material-ui/core/Drawer";
import Button from "@material-ui/core/Button";
import List from "@material-ui/core/List";
import ListItem from "@material-ui/core/ListItem";
import ListItemIcon from "@material-ui/core/ListItemIcon";
import ListItemText from "@material-ui/core/ListItemText";
import InboxIcon from "@material-ui/icons/MoveToInbox";
import MailIcon from "@material-ui/icons/Mail";
import {Link} from "react-router-dom";
const useStyles = makeStyles({
list: {
width: 250
}
});
export default function TemporaryDrawer(props) {
const classes = useStyles();
const {drawerOpen, setDrawerOpen} = props
const sideList = side => (
<div
className={classes.list}
role="presentation"
onClick={() => setDrawerOpen(false)}
onKeyDown={() => setDrawerOpen(false)}
>
<List>
<Link to="/extensions" style={{color: "inherit", textDecoration: "none"}}>
<ListItem button key="Extensions">
<ListItemIcon>
<InboxIcon/>
</ListItemIcon>
<ListItemText primary="Extensions"/>
</ListItem>
</Link>
</List>
</div>
);
return (
<div>
<Drawer
BackdropProps={{invisible: true}}
open={drawerOpen}
anchor={"left"}
onClose={() => setDrawerOpen(false)}
>
{sideList("left")}
</Drawer>
</div>
);
}
@@ -0,0 +1,58 @@
import React from 'react';
import { makeStyles } from '@material-ui/core/styles';
import Drawer from '@material-ui/core/Drawer';
import List from '@material-ui/core/List';
import ListItem from '@material-ui/core/ListItem';
import ListItemIcon from '@material-ui/core/ListItemIcon';
import ListItemText from '@material-ui/core/ListItemText';
import InboxIcon from '@material-ui/icons/MoveToInbox';
import { Link } from 'react-router-dom';
const useStyles = makeStyles({
list: {
width: 250,
},
});
interface IProps {
drawerOpen: boolean
setDrawerOpen(state: boolean): void
}
export default function TemporaryDrawer({ drawerOpen, setDrawerOpen }: IProps) {
const classes = useStyles();
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const sideList = (side: 'left') => (
<div
className={classes.list}
role="presentation"
onClick={() => setDrawerOpen(false)}
onKeyDown={() => setDrawerOpen(false)}
>
<List>
<Link to="/extensions" style={{ color: 'inherit', textDecoration: 'none' }}>
<ListItem button key="Extensions">
<ListItemIcon>
<InboxIcon />
</ListItemIcon>
<ListItemText primary="Extensions" />
</ListItem>
</Link>
</List>
</div>
);
return (
<div>
<Drawer
BackdropProps={{ invisible: true }}
open={drawerOpen}
anchor="left"
onClose={() => setDrawerOpen(false)}
>
{sideList('left')}
</Drawer>
</div>
);
}