diff --git a/src/Root.tsx b/src/Root.tsx new file mode 100644 index 000000000..038d97244 --- /dev/null +++ b/src/Root.tsx @@ -0,0 +1,41 @@ +import { AppStateProvider } from '@src/AppState' +import LspProvider from '@src/components/LspProvider' +import { MachineManagerProvider } from '@src/components/MachineManagerProvider' +import { OpenInDesktopAppHandler } from '@src/components/OpenInDesktopAppHandler' +import { ProjectsContextProvider } from '@src/components/ProjectsContextProvider' +import { SystemIOMachineLogicListener } from '@src/components/Providers/SystemIOProviderDesktop' +import { RouteProvider } from '@src/components/RouteProvider' +import { KclContextProvider } from '@src/lang/KclProvider' +import {Outlet} from 'react-router-dom' +import {useEffect} from "react" +function RootLayout () { + useEffect(() => { + console.log('MyComponent mounted'); + + return () => { + console.log('MyComponent unmounted'); + }; + }, []); + return( +
+ + + + + + + + + + + + + + + + +
+ ) +} + +export default RootLayout diff --git a/src/Router.tsx b/src/Router.tsx index da4398ead..031c0cd1a 100644 --- a/src/Router.tsx +++ b/src/Router.tsx @@ -49,30 +49,14 @@ import Onboarding, { onboardingRoutes } from '@src/routes/Onboarding' import { Settings } from '@src/routes/Settings' import SignIn from '@src/routes/SignIn' import { Telemetry } from '@src/routes/Telemetry' +import RootLayout from "@src/Root" const createRouter = isDesktop() ? createHashRouter : createBrowserRouter const router = createRouter([ { id: PATHS.INDEX, - element: ( - - - - - - - - - - - - - - - - - ), + element: , errorElement: , children: [ { diff --git a/src/components/Providers/SystemIOProviderDesktop.tsx b/src/components/Providers/SystemIOProviderDesktop.tsx index 71e530748..5b3083ce0 100644 --- a/src/components/Providers/SystemIOProviderDesktop.tsx +++ b/src/components/Providers/SystemIOProviderDesktop.tsx @@ -16,15 +16,13 @@ export function SystemIOMachineLogicListener() { const projectDirectoryPath = useProjectDirectoryPath() const navigate = useNavigate() useEffect(() => { - // TODO: use a {requestedProjectName: string} to by pass this clear logic... - if (!requestedProjectName) {return} + if (!requestedProjectName.name) {return} let projectPathWithoutSpecificKCLFile = - projectDirectoryPath + window.electron.path.sep + requestedProjectName + projectDirectoryPath + window.electron.path.sep + requestedProjectName.name const requestedPath = `${PATHS.FILE}/${encodeURIComponent( projectPathWithoutSpecificKCLFile )}` navigate(requestedPath) - systemIOActor.send({type:SystemIOMachineEvents.clearRequestedProjectName}) }, [requestedProjectName]) return null } diff --git a/src/machines/systemIO/systemIOMachine.ts b/src/machines/systemIO/systemIOMachine.ts index 45f2a5a20..ccd7e4fdb 100644 --- a/src/machines/systemIO/systemIOMachine.ts +++ b/src/machines/systemIO/systemIOMachine.ts @@ -38,9 +38,6 @@ export const systemIOMachine = setup({ type: SystemIOMachineEvents.openProject data: { requestedProjectName: string } } - | { - type: SystemIOMachineEvents.clearRequestedProjectName - }, }, actions: { [SystemIOMachineActions.setFolders]: assign({ @@ -61,13 +58,7 @@ export const systemIOMachine = setup({ [SystemIOMachineActions.setRequestedProjectName]: assign({ requestedProjectName: ({ event }) => { assertEvent(event, SystemIOMachineEvents.openProject) - return event.data.requestedProjectName - }, - }), - [SystemIOMachineActions.clearRequestedProjectName]: assign({ - requestedProjectName: ({ event }) => { - assertEvent(event, SystemIOMachineEvents.clearRequestedProjectName) - return NO_PROJECT_DIRECTORY + return {name:event.data.requestedProjectName} }, }), }, @@ -88,7 +79,7 @@ export const systemIOMachine = setup({ defaultProjectFolderName: DEFAULT_PROJECT_NAME, projectDirectoryPath: NO_PROJECT_DIRECTORY, hasListedProjects: false, - requestedProjectName: NO_PROJECT_DIRECTORY, + requestedProjectName: {name:NO_PROJECT_DIRECTORY}, }), states: { [SystemIOMachineStates.idle]: { @@ -101,7 +92,6 @@ export const systemIOMachine = setup({ actions: [SystemIOMachineActions.setProjectDirectoryPath], }, [SystemIOMachineEvents.openProject]: { - target: SystemIOMachineStates.openingProject, actions: [SystemIOMachineActions.setRequestedProjectName], }, }, @@ -123,12 +113,6 @@ export const systemIOMachine = setup({ }, }, [SystemIOMachineStates.openingProject] : { - on: { - [SystemIOMachineEvents.clearRequestedProjectName]: { - target: SystemIOMachineStates.idle, - actions: [SystemIOMachineActions.clearRequestedProjectName], - }, - } } }, }) diff --git a/src/machines/systemIO/utils.ts b/src/machines/systemIO/utils.ts index a4f5e594d..3954a6374 100644 --- a/src/machines/systemIO/utils.ts +++ b/src/machines/systemIO/utils.ts @@ -20,14 +20,12 @@ export enum SystemIOMachineEvents { 'read folders from project directory', setProjectDirectoryPath = 'set project directory path', openProject = 'open project', - clearRequestedProjectName = 'clear requested project name', } export enum SystemIOMachineActions { setFolders = 'set folders', setProjectDirectoryPath = 'set project directory path', setRequestedProjectName = 'set requested project name', - clearRequestedProjectName = 'clear requested project name' } export const NO_PROJECT_DIRECTORY = '' @@ -43,5 +41,5 @@ export type SystemIOContext = { // has the application gone through the initialiation of systemIOMachine at least once. // this is required to prevent chokidar from spamming invalid events during initialization. hasListedProjects: boolean - requestedProjectName: string + requestedProjectName: {name: string} }