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
|
import React from 'react';
import { Typography, Divider, makeStyles } from '@material-ui/core';
import WindowSurface from './WindowSurface';
import { SurfaceSize, SurfacePosition } from './types';
interface PropTypes {
type: 'primary' | 'secondary' | 'mono';
name?: string;
}
const useStyles = makeStyles(theme => ({
header: {
padding: theme.spacing(1, 0, 1, 2),
background: theme.palette.background.elevation2,
},
}));
const Window: React.FC<PropTypes> = ({ type, name, children }) => {
const classes = useStyles();
const size: SurfaceSize = {
height: '85vh',
};
const position: SurfacePosition = {
bottom: '3vh',
};
if (type === 'primary') {
size.width = '63vw';
position.left = '2vw';
} else if (type === 'secondary') {
size.width = '31vw';
position.right = '2vw';
} else if (type === 'mono') {
position.left = '2vw';
position.right = '2vw';
}
return (
<WindowSurface
size={size}
position={position}
>
{name
&& (
<div>
<Typography variant="h5" className={classes.header}>{name}</Typography>
<Divider />
</div>
)}
{children}
</WindowSurface>
);
};
export default Window;
|