import React from 'react'; import { makeStyles, useTheme, withStyles } 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 clsx from 'clsx'; import Drawer from '@material-ui/core/Drawer'; import List from '@material-ui/core/List'; import CssBaseline from '@material-ui/core/CssBaseline'; import Divider from '@material-ui/core/Divider'; import ChevronLeftIcon from '@material-ui/icons/ChevronLeft'; import ChevronRightIcon from '@material-ui/icons/ChevronRight'; 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 ImageList from './testIL'; import PhotoIcon from '@material-ui/icons/Photo'; import ShareIcon from '@material-ui/icons/Share'; import PhotoAlbumIcon from '@material-ui/icons/PhotoAlbum'; import LibraryAddCheckIcon from '@material-ui/icons/LibraryAddCheck'; import Grid from '@material-ui/core/Grid'; import DeleteIcon from '@material-ui/icons/Delete'; import CloudUploadIcon from '@material-ui/icons/CloudUpload'; import HelpOutlineIcon from '@material-ui/icons/HelpOutline'; import SettingsIcon from '@material-ui/icons/Settings'; import Avatar from '@material-ui/core/Avatar'; import Icon from '@material-ui/core/Icon'; import AddCircle from '@material-ui/icons/AddCircle'; import CloudIcon from '@material-ui/icons/Cloud'; import LinearProgress from '@material-ui/core/LinearProgress'; const drawerWidth = 240; const BorderLinearProgress = withStyles((theme) => ({ colorPrimary: { backgroundColor: theme.palette.grey[theme.palette.type === 'light' ? 200 : 700], }, bar: { borderRadius: 5, backgroundColor: '#1a90ff', }, }))(LinearProgress); const useStyles = makeStyles((theme) => ({ root: { flexGrow: 1, }, menuButton: { marginRight: theme.spacing(2), }, title: { flexGrow: 1, }, toolbar: { display: 'flex', alignItems: 'center', justifyContent: 'flex-end', padding: theme.spacing(0, 1), // necessary for content to be below app bar ...theme.mixins.toolbar, }, root: { display: 'flex', }, appBar: { zIndex: theme.zIndex.drawer + 1, transition: theme.transitions.create(['width', 'margin'], { easing: theme.transitions.easing.sharp, duration: theme.transitions.duration.leavingScreen, }), }, appBarShift: { marginLeft: drawerWidth, width: `calc(100% - ${drawerWidth}px)`, transition: theme.transitions.create(['width', 'margin'], { easing: theme.transitions.easing.sharp, duration: theme.transitions.duration.enteringScreen, }), }, menuButton: { marginRight: 36, }, hide: { display: 'none', }, drawer: { width: drawerWidth, flexShrink: 0, whiteSpace: 'nowrap', }, drawerOpen: { width: drawerWidth, transition: theme.transitions.create('width', { easing: theme.transitions.easing.sharp, duration: theme.transitions.duration.enteringScreen, }), }, drawerClose: { transition: theme.transitions.create('width', { easing: theme.transitions.easing.sharp, duration: theme.transitions.duration.leavingScreen, }), overflowX: 'hidden', width: theme.spacing(7) + 1, [theme.breakpoints.up('sm')]: { width: theme.spacing(9) + 1, }, }, toolbar: { display: 'flex', alignItems: 'center', justifyContent: 'flex-end', padding: theme.spacing(0, 1), // necessary for content to be below app bar ...theme.mixins.toolbar, }, content: { flexGrow: 1, padding: theme.spacing(3), }, })); export default function ButtonAppBar() { const classes = useStyles(); const [open, setOpen] = React.useState(false); const theme = useTheme(); const handleDrawerOpen = () => { setOpen(true); }; const handleDrawerClose = () => { setOpen(false); }; return ( < div className = { classes.root } > < Toolbar > < IconButton color = "inherit" onClick = { handleDrawerOpen } edge = "start" className = { clsx(classes.menuButton, { [classes.hide]: open, }) } > < MenuIcon / > < /IconButton> < Typography variant = "h6" className = { classes.title } > 谷狗相薄 < HelpOutlineIcon / > < SettingsIcon / > < / Toolbar > < div className = { classes.toolbar } > < IconButton onClick = { handleDrawerClose } > { theme.direction === 'rtl' ? < ChevronRightIcon / > : < ChevronLeftIcon / > } < /IconButton> < / div > < Divider / > < List > { ['相片', '共享', '相簿', '實用工具'].map((text, index) => ( < ListItem button key = { text } > < ListItemIcon > { index == 0 ? < PhotoIcon / > : index == 1 ? < ShareIcon / > : index == 2 ? < PhotoAlbumIcon / > : < LibraryAddCheckIcon / > } < /ListItemIcon> < ListItemText primary = { text } /> < / ListItem > )) } < Divider / > { ['儲存空間'].map((text, index) => ( < ListItem button key = { text } > < ListItemIcon > { < CloudIcon / > } < /ListItemIcon> < ListItemText primary = { text } secondary = < BorderLinearProgress variant = "determinate" value = { 50 } /> / > < / ListItem > )) } < / List > < / Drawer > < main className = { classes.content } > < div className = { classes.toolbar } /> < ImageList / > < / main > < / div > ); }