chore: cleaning up useless state transition to be an on event direct to action state
This commit is contained in:
@ -69,6 +69,9 @@ export const useSettings = () =>
|
||||
|
||||
// TODO: Debugging
|
||||
const systemIOActor = appActor.getSnapshot().children.systemIO!
|
||||
|
||||
// systemIOActor.send({type:SystemIOMachineEvents.readFoldersFromProjectDirectory, data: {}})
|
||||
|
||||
systemIOActor.send({type:SystemIOMachineEvents.setProjectDirectoryPath, data: {requestedProjectDirectoryPath:'/home/kevin-nadro/Documents/zoo-modeling-app-projects'}})
|
||||
|
||||
window.systemIOActor = systemIOActor
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { setup, fromPromise, assign, assertEvent} from 'xstate'
|
||||
import { DEFAULT_PROJECT_NAME } from "@src/lib/constants"
|
||||
import { mkdirOrNOOP, getProjectInfo } from "@src/lib/desktop"
|
||||
import type { FileEntry, Project } from '@src/lib/project'
|
||||
import type { Project } from '@src/lib/project'
|
||||
|
||||
export enum SystemIOMachineActors {
|
||||
readFoldersFromProjectDirectory = "read folders from project directory",
|
||||
@ -20,7 +20,6 @@ export enum SystemIOMachineEvents {
|
||||
readFoldersFromProjectDirectory = "read folders from project directory",
|
||||
done_readFoldersFromProjectDirectory = donePrefix + "read folders from project directory",
|
||||
setProjectDirectoryPath = "set project directory path",
|
||||
done_setProjectDirectoryPath = donePrefix + "set project directory path",
|
||||
}
|
||||
|
||||
export enum SystemIOMachineActions {
|
||||
@ -56,7 +55,6 @@ export const systemIOMachine = setup({
|
||||
| { type: SystemIOMachineEvents.readFoldersFromProjectDirectory; data: {} }
|
||||
| { type: SystemIOMachineEvents.done_readFoldersFromProjectDirectory; data: {}, output: Project[] }
|
||||
| { type: SystemIOMachineEvents.setProjectDirectoryPath; data: {requestedProjectDirectoryPath: string}}
|
||||
| { type: SystemIOMachineEvents.done_setProjectDirectoryPath; data: {requestedProjectDirectoryPath: string}, output: string}
|
||||
},
|
||||
actions: {
|
||||
[SystemIOMachineActions.setFolders]: assign({
|
||||
@ -67,8 +65,8 @@ export const systemIOMachine = setup({
|
||||
}),
|
||||
[SystemIOMachineActions.setProjectDirectoryPath]: assign({
|
||||
projectDirectoryPath:({event})=>{
|
||||
assertEvent(event, SystemIOMachineEvents.done_setProjectDirectoryPath)
|
||||
return event.output
|
||||
assertEvent(event, SystemIOMachineEvents.setProjectDirectoryPath)
|
||||
return event.data.requestedProjectDirectoryPath
|
||||
}
|
||||
})
|
||||
},
|
||||
@ -110,9 +108,6 @@ export const systemIOMachine = setup({
|
||||
}
|
||||
return projects
|
||||
}),
|
||||
[SystemIOMachineActors.setProjectDirectoryPath]: fromPromise(async ({input}:{input: string}) => {
|
||||
return input
|
||||
})
|
||||
}
|
||||
}).createMachine({
|
||||
initial:SystemIOMachineStates.idle,
|
||||
@ -128,8 +123,14 @@ export const systemIOMachine = setup({
|
||||
states: {
|
||||
[SystemIOMachineStates.idle]: {
|
||||
on: {
|
||||
// on can be an action
|
||||
[SystemIOMachineEvents.readFoldersFromProjectDirectory]:SystemIOMachineStates.readingFolders,
|
||||
[SystemIOMachineEvents.setProjectDirectoryPath]:SystemIOMachineStates.settingProjectDirectoryPath
|
||||
[SystemIOMachineEvents.setProjectDirectoryPath]:{
|
||||
target: SystemIOMachineStates.readingFolders,
|
||||
actions: [
|
||||
SystemIOMachineActions.setProjectDirectoryPath
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
[SystemIOMachineStates.readingFolders]: {
|
||||
@ -150,25 +151,6 @@ export const systemIOMachine = setup({
|
||||
}
|
||||
}
|
||||
},
|
||||
[SystemIOMachineStates.settingProjectDirectoryPath]: {
|
||||
invoke: {
|
||||
id: SystemIOMachineActors.setProjectDirectoryPath,
|
||||
src: SystemIOMachineActors.setProjectDirectoryPath,
|
||||
input: ({event}) => {
|
||||
assertEvent(event, SystemIOMachineEvents.setProjectDirectoryPath)
|
||||
return event.data.requestedProjectDirectoryPath
|
||||
},
|
||||
onDone: {
|
||||
target: SystemIOMachineStates.readingFolders,
|
||||
actions: [
|
||||
SystemIOMachineActions.setProjectDirectoryPath
|
||||
]
|
||||
},
|
||||
onError: {
|
||||
target: SystemIOMachineStates.idle,
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user