| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- import useKeyboardEvents from 'hooks/useKeyboardEvents'
- import useLoadOnMount from 'hooks/useLoadOnMount'
- import Canvas from './canvas/canvas'
- import StatusBar from './status-bar'
- import CodePanel from './code-panel/code-panel'
- import ControlsPanel from './controls-panel/controls-panel'
- import ToolsPanel from './tools-panel/tools-panel'
- import StylePanel from './style-panel/style-panel'
- import { useSelector } from 'state'
- import styled from 'styles'
- import PagePanel from './page-panel/page-panel'
-
- export default function Editor() {
- useKeyboardEvents()
- useLoadOnMount()
-
- const hasControls = useSelector(
- (s) => Object.keys(s.data.codeControls).length > 0
- )
-
- return (
- <Layout>
- <Canvas />
- <PagePanel />
- <LeftPanels>
- <CodePanel />
- {hasControls && <ControlsPanel />}
- </LeftPanels>
- <RightPanels>
- <StylePanel />
- </RightPanels>
- <ToolsPanel />
- <StatusBar />
- </Layout>
- )
- }
-
- const Layout = styled('main', {
- position: 'fixed',
- top: 0,
- left: 0,
- bottom: 0,
- right: 0,
- height: '100%',
- width: '100%',
- display: 'grid',
- gridTemplateRows: '1fr auto 144px',
- gridTemplateColumns: 'minmax(0, 720px) 1fr auto',
- gridTemplateAreas: `
- "leftPanels main rightPanels"
- "tools tools tools"
- "statusbar statusbar statusbar"
- `,
- })
-
- const LeftPanels = styled('div', {
- display: 'grid',
- gridArea: 'leftPanels',
- gridTemplateRows: '1fr auto',
- padding: 8,
- gap: 8,
- zIndex: 250,
- pointerEvents: 'none',
- })
-
- const RightPanels = styled('div', {
- gridArea: 'rightPanels',
- padding: 8,
- display: 'grid',
- gridTemplateRows: 'auto',
- height: 'fit-content',
- justifyContent: 'flex-end',
- gap: 8,
- zIndex: 300,
- pointerEvents: 'none',
- })
|