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}
}