diff --git a/src/components/Sidebar/index.tsx b/src/components/Sidebar/index.tsx index e10faa1..ffaf3fc 100644 --- a/src/components/Sidebar/index.tsx +++ b/src/components/Sidebar/index.tsx @@ -3,10 +3,7 @@ import Link from "next/link"; import styled from "styled-components"; import { useLocalStorage } from "usehooks-ts"; import { FaFileImport } from "react-icons/fa"; -import { - MdUnfoldMore, - MdUnfoldLess, -} from "react-icons/md"; +import { MdUnfoldMore, MdUnfoldLess } from "react-icons/md"; import { AiFillHome, AiOutlineClear, @@ -25,6 +22,7 @@ import { import { getNextLayout } from "src/containers/LiveEditor/helpers"; import { StorageConfig } from "src/typings/global"; import { CanvasDirection } from "reaflow"; +import { useLoading } from "src/hooks/useLoading"; const StyledSidebar = styled.div` display: flex; @@ -110,6 +108,8 @@ function getLayoutIcon(layout: CanvasDirection) { export const Sidebar: React.FC<{ setJson: React.Dispatch>; }> = ({ setJson }) => { + const pageLoaded = useLoading(); + const [jsonFile, setJsonFile] = React.useState(null); const [config, setConfig] = useLocalStorage("config", { layout: "LEFT", @@ -117,7 +117,6 @@ export const Sidebar: React.FC<{ controls: true, }); - const handleFileChange = (e: React.ChangeEvent) => { if (e.target.files) setJsonFile(e.target.files?.item(0)); }; @@ -140,89 +139,92 @@ export const Sidebar: React.FC<{ } }, [jsonFile, setJson]); - return ( - - - - - - J - V - + if (pageLoaded) + return ( + + + + + + J + V + + + + + + + + + + + { + setJson("[]"); + localStorage.removeItem("json"); + }} + title="Clear JSON" + > + + + + setConfig((c) => ({ + ...c, + layout: getNextLayout(c.layout), + })) + } + title="Change Layout" + > + {getLayoutIcon(config.layout)} + + toggle("controls")} + > + {config.controls ? : } - - - - - - - - - { - setJson("[]"); - localStorage.removeItem("json"); - }} - title="Clear JSON" - > - - - - setConfig((c) => ({ - ...c, - layout: getNextLayout(c.layout), - })) - } - title="Change Layout" - > - {getLayoutIcon(config.layout)} - - toggle("controls")} - > - {config.controls ? : } - - toggle("expand")} - > - {config.expand ? : } - - - - - - - - - - - - - - - - - - - - - - - - - - ); + toggle("expand")} + > + {config.expand ? : } + + + + + + + + + + + + + + + + + + + + + + + + + + ); + + return null; }; diff --git a/src/containers/LiveEditor/index.tsx b/src/containers/LiveEditor/index.tsx index 49b26ab..0050a18 100644 --- a/src/containers/LiveEditor/index.tsx +++ b/src/containers/LiveEditor/index.tsx @@ -18,6 +18,7 @@ import { AiOutlineFullscreen, AiFillSave, } from "react-icons/ai"; +import { useLoading } from "src/hooks/useLoading"; const StyledLiveEditor = styled.div` position: relative; @@ -47,6 +48,8 @@ export const LiveEditor: React.FC<{ json: string; setJson: React.Dispatch>; }> = ({ json }) => { + const pageLoaded = useLoading(); + const canvasRef = React.useRef(null); const wrapperRef = React.useRef(null); const [config] = useLocalStorage("config", { @@ -87,55 +90,58 @@ export const LiveEditor: React.FC<{ } }; - return ( - - - - - - - - - {config.controls && ( - - - - - - - )} - - ); + if (pageLoaded) + return ( + + + + + + + + + {config.controls && ( + + + + + + + )} + + ); + + return null; }; diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx index beffad9..394d7cc 100644 --- a/src/pages/_app.tsx +++ b/src/pages/_app.tsx @@ -11,7 +11,6 @@ import { useLoading } from "src/hooks/useLoading"; function AykutSarac({ Component, pageProps }: AppProps) { const router = useRouter(); - const data = useLoading(); const [pageLoading, setPageLoading] = React.useState(false); React.useEffect(() => { @@ -38,8 +37,6 @@ function AykutSarac({ Component, pageProps }: AppProps) { ); - if (!data) return null; - return (