diff --git a/services/frontend/src/App.tsx b/services/frontend/src/App.tsx index 23a0499..7985f6f 100644 --- a/services/frontend/src/App.tsx +++ b/services/frontend/src/App.tsx @@ -82,7 +82,7 @@ export default function App() { } } }) - .catch(() => { + .catch((err) => { localStorage.removeItem(LOCAL_STORAGE); navigate("/login"); }); diff --git a/services/frontend/src/components/Project/index.tsx b/services/frontend/src/components/Project/index.tsx deleted file mode 100644 index cef0146..0000000 --- a/services/frontend/src/components/Project/index.tsx +++ /dev/null @@ -1,72 +0,0 @@ -import { useParams } from "react-router-dom"; -import Spinner from "../global/Spinner"; -import { useProject } from "../../hooks/useProject"; -import KubernetesProject from "./kubernetes"; -import DockerComposeProject from "./docker-compose"; -import { useTitle } from "../../hooks"; - -interface IProjectProps { - isAuthenticated: boolean; -} - -const Project = (props: IProjectProps) => { - const { isAuthenticated } = props; - const { uuid } = useParams<{ uuid: string }>(); - const { data, error, isFetching } = useProject(uuid); - - useTitle( - [ - isFetching ? "" : data ? data.name : "New project", - "Container Toolkit" - ].join(" | ") - ); - - if (!isFetching && !error) { - if (data.project_type === 0) { - return ( - - ); - } - - if (data.project_type === 1) { - return ( - - ); - } - } - - if (error) { - return ( -
-

- {(error as any)?.response.status === 404 ? <>404 : <>Oops...} -

-

- Either this project does not exist, it is private or the link is - wrong. -

-
- ); - } - - return ( - <> - {isFetching && ( -
- -
- )} - - ); -}; - -export default Project; diff --git a/services/frontend/src/components/Project/kubernetes/index.tsx b/services/frontend/src/components/Project/kubernetes/index.tsx index 6cdbcda..e09c9b2 100644 --- a/services/frontend/src/components/Project/kubernetes/index.tsx +++ b/services/frontend/src/components/Project/kubernetes/index.tsx @@ -142,6 +142,14 @@ export default function KubernetesProject(props: IProjectProps) { setCanvasPosition(canvasData.canvas.position); }, [data]); + const debouncedOnCodeChange = useMemo( + () => + debounce((code: string) => { + //formik.setFieldValue("code", e, false); + }, 700), + [] + ); + const debouncedOnGraphUpdate = useMemo( () => debounce((payload) => { @@ -163,6 +171,10 @@ export default function KubernetesProject(props: IProjectProps) { [] ); + const onCodeUpdate = (code: string) => { + debouncedOnCodeChange(code); + }; + const onGraphUpdate = (graphData: any) => { const data = { ...graphData }; const payload = generateKubernetesPayload(data); @@ -496,8 +508,8 @@ export default function KubernetesProject(props: IProjectProps) { { - return; + onChange={(e: any) => { + onCodeUpdate(e); }} disabled={true} lineWrapping={false} diff --git a/services/frontend/src/components/Projects/PreviewBlock.tsx b/services/frontend/src/components/Projects/PreviewBlock.tsx index 9840361..1458e1c 100644 --- a/services/frontend/src/components/Projects/PreviewBlock.tsx +++ b/services/frontend/src/components/Projects/PreviewBlock.tsx @@ -25,8 +25,14 @@ const PreviewBlock = (props: IPreviewBlockProps) => { setIsHovering(false); }; - const handleClick = () => { - navigate(`/projects/${project.uuid}`); + const handleClick = (e: any) => { + if (project.project_type === 0) { + navigate(`/projects/docker-compose/${project.uuid}`); + } + + if (project.project_type === 1) { + navigate(`/projects/kubernetes/${project.uuid}`); + } }; const onDelete = (e: any) => {