aboutsummaryrefslogtreecommitdiffstats
path: root/language-web/src/main/js/App.tsx
blob: 5cd157fabb7080c884b715fe372b6d9b2487c10c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
import React from 'react';
import AppBar from '@material-ui/core/AppBar';
import Box from '@material-ui/core/Box';
import Button from '@material-ui/core/Button';
import IconButton from '@material-ui/core/IconButton';
import Toolbar from '@material-ui/core/Toolbar';
import Typography from '@material-ui/core/Typography';
import MenuIcon from '@material-ui/icons/Menu';
import PlayArrowIcon from '@material-ui/icons/PlayArrow';

import { makeStyles } from './makeStyles';
import { EditorArea } from './editor/EditorArea';
import { EditorButtons } from './editor/EditorButtons';

const useStyles = makeStyles()((theme) => ({
  container: {
    height: '100vh',
  },
  menuButton: {
    marginRight: theme.spacing(2),
  },
  title: {
    flexGrow: 1,
  },
  editorBox: {
    overflow: 'auto',
  },
}));

export const App = (): JSX.Element => {
  const { classes, cx } = useStyles();

  return (
    <Box
      display="flex"
      flexDirection="column"
      className={cx(classes.container)}
    >
      <AppBar
        position="static"
        color="inherit"
      >
        <Toolbar>
          <IconButton
            edge="start"
            className={cx(classes.menuButton)}
            color="inherit"
            aria-label="menu"
          >
            <MenuIcon />
          </IconButton>
          <Typography
            variant="h6"
            component="h1"
            className={cx(classes.title)}
          >
            GraphSolver
          </Typography>
        </Toolbar>
      </AppBar>
      <Box
        display="flex"
        justifyContent="space-between"
        alignItems="center"
        p={1}
      >
        <Box
          display="flex"
          alignItems="center"
        >
          <EditorButtons />
        </Box>
        <Box>
          <Button
            variant="outlined"
            color="primary"
            startIcon={<PlayArrowIcon />}
          >
            Generate
          </Button>
        </Box>
      </Box>
      <Box
        flexGrow={1}
        flexShrink={1}
        className={cx(classes.editorBox)}
      >
        <EditorArea />
      </Box>
    </Box>
  );
};