Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

editor.tsx 1.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import useKeyboardEvents from 'hooks/useKeyboardEvents'
  2. import useLoadOnMount from 'hooks/useLoadOnMount'
  3. import Canvas from './canvas/canvas'
  4. import StatusBar from './status-bar'
  5. import CodePanel from './code-panel/code-panel'
  6. import ControlsPanel from './controls-panel/controls-panel'
  7. import ToolsPanel from './tools-panel/tools-panel'
  8. import StylePanel from './style-panel/style-panel'
  9. import { useSelector } from 'state'
  10. import styled from 'styles'
  11. import PagePanel from './page-panel/page-panel'
  12. export default function Editor() {
  13. useKeyboardEvents()
  14. useLoadOnMount()
  15. const hasControls = useSelector(
  16. (s) => Object.keys(s.data.codeControls).length > 0
  17. )
  18. return (
  19. <Layout>
  20. <CodePanel />
  21. <PagePanel />
  22. <Spacer />
  23. <StylePanel />
  24. <Canvas />
  25. {/* <LeftPanels>
  26. <CodePanel />
  27. {hasControls && <ControlsPanel />}
  28. </LeftPanels> */}
  29. <ToolsPanel />
  30. <StatusBar />
  31. </Layout>
  32. )
  33. }
  34. const Spacer = styled('div', {
  35. flexGrow: 2,
  36. })
  37. const Layout = styled('main', {
  38. position: 'fixed',
  39. top: 0,
  40. left: 0,
  41. bottom: 0,
  42. right: 0,
  43. height: '100%',
  44. width: '100%',
  45. padding: '8px 8px 0 8px',
  46. zIndex: 200,
  47. display: 'flex',
  48. alignItems: 'flex-start',
  49. justifyContent: 'flex-start',
  50. pointerEvents: 'none',
  51. '& > *': {
  52. PointerEvent: 'all',
  53. },
  54. })