[bug]: Chokidar + reading projects spams multiple times (#6558)
fix: do not double or triple load reading folders from disk due to file system watcher when deleting
This commit is contained in:
@ -32,30 +32,34 @@ export const systemIOMachine = setup({
|
||||
| {
|
||||
type: SystemIOMachineEvents.done_checkReadWrite
|
||||
output: { value: boolean; error: unknown }
|
||||
}
|
||||
}
|
||||
| {
|
||||
type: SystemIOMachineEvents.setProjectDirectoryPath
|
||||
data: { requestedProjectDirectoryPath: string }
|
||||
}
|
||||
type: SystemIOMachineEvents.setProjectDirectoryPath
|
||||
data: { requestedProjectDirectoryPath: string }
|
||||
}
|
||||
| {
|
||||
type: SystemIOMachineEvents.navigateToProject
|
||||
data: { requestedProjectName: string }
|
||||
}
|
||||
type: SystemIOMachineEvents.navigateToProject
|
||||
data: { requestedProjectName: string }
|
||||
}
|
||||
| {
|
||||
type: SystemIOMachineEvents.navigateToFile
|
||||
data: { requestedProjectName: string; requestedFileName: string }
|
||||
}
|
||||
type: SystemIOMachineEvents.navigateToFile
|
||||
data: { requestedProjectName: string; requestedFileName: string }
|
||||
}
|
||||
| {
|
||||
type: SystemIOMachineEvents.createProject
|
||||
data: { requestedProjectName: string }
|
||||
}
|
||||
type: SystemIOMachineEvents.createProject
|
||||
data: { requestedProjectName: string }
|
||||
}
|
||||
| {
|
||||
type: SystemIOMachineEvents.renameProject
|
||||
data: { requestedProjectName: string; projectName: string }
|
||||
}
|
||||
type: SystemIOMachineEvents.renameProject
|
||||
data: { requestedProjectName: string; projectName: string }
|
||||
}
|
||||
| {
|
||||
type: SystemIOMachineEvents.deleteProject
|
||||
data: { requestedProjectName: string }
|
||||
type: SystemIOMachineEvents.deleteProject
|
||||
data: { requestedProjectName: string }
|
||||
}
|
||||
| {
|
||||
type: SystemIOMachineEvents.done_deleteProject
|
||||
output: { message: string; name: string }
|
||||
}
|
||||
| {
|
||||
type: SystemIOMachineEvents.createKCLFile
|
||||
@ -165,6 +169,12 @@ export const systemIOMachine = setup({
|
||||
return event.data
|
||||
},
|
||||
}),
|
||||
[SystemIOMachineActions.setLastProjectDeleteRequest]: assign({
|
||||
lastProjectDeleteRequest: ({ event }) => {
|
||||
assertEvent(event, SystemIOMachineEvents.done_deleteProject)
|
||||
return {project: event.output.name}
|
||||
},
|
||||
}),
|
||||
},
|
||||
actors: {
|
||||
[SystemIOMachineActors.readFoldersFromProjectDirectory]: fromPromise(
|
||||
@ -275,6 +285,9 @@ export const systemIOMachine = setup({
|
||||
requestedProjectName: NO_PROJECT_DIRECTORY,
|
||||
isProjectNew: true,
|
||||
},
|
||||
lastProjectDeleteRequest: {
|
||||
project: NO_PROJECT_DIRECTORY
|
||||
}
|
||||
}),
|
||||
states: {
|
||||
[SystemIOMachineStates.idle]: {
|
||||
@ -401,7 +414,7 @@ export const systemIOMachine = setup({
|
||||
},
|
||||
onDone: {
|
||||
target: SystemIOMachineStates.readingFolders,
|
||||
actions: [SystemIOMachineActions.toastSuccess],
|
||||
actions: [SystemIOMachineActions.toastSuccess, SystemIOMachineActions.setLastProjectDeleteRequest]
|
||||
},
|
||||
onError: {
|
||||
target: SystemIOMachineStates.idle,
|
||||
|
||||
Reference in New Issue
Block a user