From 90f3eaa26b31d5f966bc3b8ece016b783f00ae2b Mon Sep 17 00:00:00 2001 From: Eug-VS Date: Thu, 9 Jan 2020 09:33:37 +0300 Subject: Implement Window component Divide Window into three types: - primary: larger left window - secondary: smaller right window - mono: both primary and secondary merged together For now, Window sizes are hard-coded values in viewport widht and height measurements. If a name prop specified, Window is displayed with a top bar. --- src/components/Window/Window.js | 55 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 src/components/Window/Window.js (limited to 'src/components/Window/Window.js') diff --git a/src/components/Window/Window.js b/src/components/Window/Window.js new file mode 100644 index 0000000..63bd6ba --- /dev/null +++ b/src/components/Window/Window.js @@ -0,0 +1,55 @@ +import React from 'react'; + +import { Typography, Divider, makeStyles } from "@material-ui/core"; + +import WindowSurface from "./WindowSurface/WindowSurface"; + + +const useStyles = makeStyles(theme => ({ + header: { + padding: theme.spacing(1, 0, 1, 2), + background: theme.palette.background.elevation, + }, +})); + + +const Window = ({ type, name, children }) => { + const classes = useStyles(); + + const size = { + height: '85vh', + }; + + const position = { + 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 ( + + {name && +
+ {name} + +
+ } + {children} +
+ ); +}; + + +export default Window; -- cgit v1.2.3