diff --git a/src/pages/editor/index.tsx b/src/pages/editor/index.tsx
index 089191f..9fa28cc 100644
--- a/src/pages/editor/index.tsx
+++ b/src/pages/editor/index.tsx
@@ -1,14 +1,11 @@
import React from "react";
import Head from "next/head";
-import { useRouter } from "next/router";
-import styled from "styled-components";
-import SplitPane from "react-split-pane";
-
-import { Button } from "src/components/Button";
import { defaultJson } from "src/constants/data";
import dynamic from "next/dynamic";
import { LiveEditor } from "src/containers/LiveEditor";
import { Loading } from "src/components/Loading";
+import { Incompatible } from "src/containers/Incompatible";
+import * as Styles from "src/pages/editor/styles";
const JsonEditor = dynamic(() => import("src/containers/JsonEditor"), {
ssr: false,
@@ -20,116 +17,8 @@ const Sidebar = dynamic(() => import("src/components/Sidebar"), {
loading: () => ,
});
-const StyledPageWrapper = styled.div`
- display: flex;
-`;
-
-const StyledIncompatible = styled.div`
- display: none;
-
- @media only screen and (max-width: 568px) {
- position: fixed;
- top: 0;
- left: 0;
- display: flex;
- flex-direction: column;
- background: ${({ theme }) => theme.BLACK_LIGHT};
- color: ${({ theme }) => theme.SILVER};
- width: 100%;
- height: 100vh;
- justify-content: center;
- align-items: center;
-
- button {
- margin-top: 60px;
- }
-
- &::before {
- content: "Uh, oh!";
- font-weight: 700;
- font-size: 60px;
- opacity: 0.6;
- }
- }
-`;
-
-const StyledEditorWrapper = styled.div`
- width: 100%;
- overflow: hidden;
-
- @media only screen and (max-width: 568px) {
- display: none;
- }
-`;
-
-const StyledTools = styled.div`
- display: flex;
- align-items: center;
- height: 15px;
- border-bottom: 1px solid ${({ theme }) => theme.BLACK};
- padding: 4px 16px;
- background: ${({ theme }) => theme.BLACK_SECONDARY};
- color: ${({ theme }) => theme.SILVER};
-`;
-
-const StyledEditor = styled(SplitPane)`
- position: relative !important;
- display: flex;
- background: ${({ theme }) => theme.BLACK_LIGHT};
- height: calc(100vh - 26px) !important;
-
- .Resizer {
- background: #000;
- opacity: 0.2;
- box-sizing: border-box;
- background-clip: padding-box;
- z-index: 1;
- }
-
- .Resizer:hover {
- transition: all 2s ease;
- }
-
- .Resizer.horizontal {
- height: 11px;
- margin: -5px 0;
- border-top: 5px solid rgba(255, 255, 255, 0);
- border-bottom: 5px solid rgba(255, 255, 255, 0);
- cursor: row-resize;
- width: 100%;
- }
-
- .Resizer.horizontal:hover {
- border-top: 5px solid rgba(0, 0, 0, 0.5);
- border-bottom: 5px solid rgba(0, 0, 0, 0.5);
- }
-
- .Resizer.vertical {
- width: 16px;
- margin: 0 -5px;
- border-left: 5px solid rgba(255, 255, 255, 0);
- border-right: 5px solid rgba(255, 255, 255, 0);
- cursor: col-resize;
- z-index: 0 !important;
- }
-
- .Resizer.vertical:hover {
- border-left: 5px solid rgba(0, 0, 0, 0.5);
- border-right: 5px solid rgba(0, 0, 0, 0.5);
- }
-
- .Resizer.disabled {
- cursor: not-allowed;
- }
-
- .Resizer.disabled:hover {
- border-color: transparent;
- }
-`;
-
const Editor: React.FC = () => {
const [json, setJson] = React.useState(JSON.stringify(defaultJson));
- const route = useRouter();
React.useEffect(() => {
const jsonStored = localStorage.getItem("json");
@@ -137,30 +26,27 @@ const Editor: React.FC = () => {
}, []);
return (
-
+ <>
Editor | JSON Visio
-
-
-
-
-
-
-
-
-
- This app is not compatible with your device!
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+ >
);
};
diff --git a/src/pages/editor/styles.tsx b/src/pages/editor/styles.tsx
new file mode 100644
index 0000000..c8e873c
--- /dev/null
+++ b/src/pages/editor/styles.tsx
@@ -0,0 +1,80 @@
+import SplitPane from "react-split-pane";
+import styled from "styled-components";
+
+export const StyledPageWrapper = styled.div`
+ display: flex;
+`;
+
+export const StyledEditorWrapper = styled.div`
+ width: 100%;
+ overflow: hidden;
+
+ @media only screen and (max-width: 568px) {
+ display: none;
+ }
+`;
+
+export const StyledTools = styled.div`
+ display: flex;
+ align-items: center;
+ height: 15px;
+ border-bottom: 1px solid ${({ theme }) => theme.BLACK};
+ padding: 4px 16px;
+ background: ${({ theme }) => theme.BLACK_SECONDARY};
+ color: ${({ theme }) => theme.SILVER};
+`;
+
+export const StyledEditor = styled(SplitPane)`
+ position: relative !important;
+ display: flex;
+ background: ${({ theme }) => theme.BLACK_LIGHT};
+ height: calc(100vh - 26px) !important;
+
+ .Resizer {
+ background: #000;
+ opacity: 0.2;
+ box-sizing: border-box;
+ background-clip: padding-box;
+ z-index: 1;
+ }
+
+ .Resizer:hover {
+ transition: all 2s ease;
+ }
+
+ .Resizer.horizontal {
+ height: 11px;
+ margin: -5px 0;
+ border-top: 5px solid rgba(255, 255, 255, 0);
+ border-bottom: 5px solid rgba(255, 255, 255, 0);
+ cursor: row-resize;
+ width: 100%;
+ }
+
+ .Resizer.horizontal:hover {
+ border-top: 5px solid rgba(0, 0, 0, 0.5);
+ border-bottom: 5px solid rgba(0, 0, 0, 0.5);
+ }
+
+ .Resizer.vertical {
+ width: 16px;
+ margin: 0 -5px;
+ border-left: 5px solid rgba(255, 255, 255, 0);
+ border-right: 5px solid rgba(255, 255, 255, 0);
+ cursor: col-resize;
+ z-index: 0 !important;
+ }
+
+ .Resizer.vertical:hover {
+ border-left: 5px solid rgba(0, 0, 0, 0.5);
+ border-right: 5px solid rgba(0, 0, 0, 0.5);
+ }
+
+ .Resizer.disabled {
+ cursor: not-allowed;
+ }
+
+ .Resizer.disabled:hover {
+ border-color: transparent;
+ }
+`;