fix: skeleton logic for react? going to move it from a string to obj.string
This commit is contained in:
@ -63,6 +63,7 @@ const router = createRouter([
|
|||||||
<KclContextProvider>
|
<KclContextProvider>
|
||||||
<AppStateProvider>
|
<AppStateProvider>
|
||||||
<MachineManagerProvider>
|
<MachineManagerProvider>
|
||||||
|
<SystemIOMachineLogicListener />
|
||||||
<Outlet />
|
<Outlet />
|
||||||
</MachineManagerProvider>
|
</MachineManagerProvider>
|
||||||
</AppStateProvider>
|
</AppStateProvider>
|
||||||
@ -144,7 +145,6 @@ const router = createRouter([
|
|||||||
path: PATHS.HOME,
|
path: PATHS.HOME,
|
||||||
element: (
|
element: (
|
||||||
<Auth>
|
<Auth>
|
||||||
<SystemIOMachineLogicListener />
|
|
||||||
<Outlet />
|
<Outlet />
|
||||||
<Home />
|
<Home />
|
||||||
<CommandBar />
|
<CommandBar />
|
||||||
|
@ -5,18 +5,26 @@ import { useEffect } from 'react'
|
|||||||
import { useNavigate } from 'react-router-dom'
|
import { useNavigate } from 'react-router-dom'
|
||||||
import {
|
import {
|
||||||
NO_PROJECT_DIRECTORY,
|
NO_PROJECT_DIRECTORY,
|
||||||
|
SystemIOMachineEvents
|
||||||
} from '@src/machines/systemIO/utils'
|
} from '@src/machines/systemIO/utils'
|
||||||
export const useAuthState = () => useSelector(systemIOActor, (state) => state)
|
export const useRequestedProjectName = () => useSelector(systemIOActor, (state) => state.context.requestedProjectName)
|
||||||
|
export const useProjectDirectoryPath = () => useSelector(systemIOActor, (state) => state.context.projectDirectoryPath)
|
||||||
|
|
||||||
|
|
||||||
export function SystemIOMachineLogicListener() {
|
export function SystemIOMachineLogicListener() {
|
||||||
const state = useAuthState()
|
const requestedProjectName = useRequestedProjectName()
|
||||||
|
const projectDirectoryPath = useProjectDirectoryPath()
|
||||||
|
const navigate = useNavigate()
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
/* const requestedPath = `${PATHS.FILE}/${encodeURIComponent(
|
// TODO: use a {requestedProjectName: string} to by pass this clear logic...
|
||||||
* requestedProjectName
|
if (!requestedProjectName) {return}
|
||||||
|
let projectPathWithoutSpecificKCLFile =
|
||||||
|
projectDirectoryPath + window.electron.path.sep + requestedProjectName
|
||||||
|
const requestedPath = `${PATHS.FILE}/${encodeURIComponent(
|
||||||
|
projectPathWithoutSpecificKCLFile
|
||||||
)}`
|
)}`
|
||||||
* navigate(requestedPath) */
|
navigate(requestedPath)
|
||||||
console.log(state)
|
systemIOActor.send({type:SystemIOMachineEvents.clearRequestedProjectName})
|
||||||
}, [state])
|
}, [requestedProjectName])
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
@ -37,6 +37,9 @@ export const systemIOMachine = setup({
|
|||||||
| {
|
| {
|
||||||
type: SystemIOMachineEvents.openProject
|
type: SystemIOMachineEvents.openProject
|
||||||
data: { requestedProjectName: string }
|
data: { requestedProjectName: string }
|
||||||
|
}
|
||||||
|
| {
|
||||||
|
type: SystemIOMachineEvents.clearRequestedProjectName
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
actions: {
|
actions: {
|
||||||
@ -58,10 +61,15 @@ export const systemIOMachine = setup({
|
|||||||
[SystemIOMachineActions.setRequestedProjectName]: assign({
|
[SystemIOMachineActions.setRequestedProjectName]: assign({
|
||||||
requestedProjectName: ({ event }) => {
|
requestedProjectName: ({ event }) => {
|
||||||
assertEvent(event, SystemIOMachineEvents.openProject)
|
assertEvent(event, SystemIOMachineEvents.openProject)
|
||||||
console.log('event', event.data.requestedProjectName)
|
|
||||||
return event.data.requestedProjectName
|
return event.data.requestedProjectName
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
|
[SystemIOMachineActions.clearRequestedProjectName]: assign({
|
||||||
|
requestedProjectName: ({ event }) => {
|
||||||
|
assertEvent(event, SystemIOMachineEvents.clearRequestedProjectName)
|
||||||
|
return NO_PROJECT_DIRECTORY
|
||||||
|
},
|
||||||
|
}),
|
||||||
},
|
},
|
||||||
actors: {
|
actors: {
|
||||||
[SystemIOMachineActors.readFoldersFromProjectDirectory]: fromPromise(
|
[SystemIOMachineActors.readFoldersFromProjectDirectory]: fromPromise(
|
||||||
@ -115,6 +123,12 @@ export const systemIOMachine = setup({
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
[SystemIOMachineStates.openingProject] : {
|
[SystemIOMachineStates.openingProject] : {
|
||||||
|
on: {
|
||||||
|
[SystemIOMachineEvents.clearRequestedProjectName]: {
|
||||||
|
target: SystemIOMachineStates.idle,
|
||||||
|
actions: [SystemIOMachineActions.clearRequestedProjectName],
|
||||||
|
},
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
@ -20,12 +20,14 @@ export enum SystemIOMachineEvents {
|
|||||||
'read folders from project directory',
|
'read folders from project directory',
|
||||||
setProjectDirectoryPath = 'set project directory path',
|
setProjectDirectoryPath = 'set project directory path',
|
||||||
openProject = 'open project',
|
openProject = 'open project',
|
||||||
|
clearRequestedProjectName = 'clear requested project name',
|
||||||
}
|
}
|
||||||
|
|
||||||
export enum SystemIOMachineActions {
|
export enum SystemIOMachineActions {
|
||||||
setFolders = 'set folders',
|
setFolders = 'set folders',
|
||||||
setProjectDirectoryPath = 'set project directory path',
|
setProjectDirectoryPath = 'set project directory path',
|
||||||
setRequestedProjectName = 'set requested project name',
|
setRequestedProjectName = 'set requested project name',
|
||||||
|
clearRequestedProjectName = 'clear requested project name'
|
||||||
}
|
}
|
||||||
|
|
||||||
export const NO_PROJECT_DIRECTORY = ''
|
export const NO_PROJECT_DIRECTORY = ''
|
||||||
|
Reference in New Issue
Block a user