chore: deleting project
This commit is contained in:
@ -48,6 +48,10 @@ export const systemIOMachine = setup({
|
|||||||
| {
|
| {
|
||||||
type: SystemIOMachineEvents.renameProject
|
type: SystemIOMachineEvents.renameProject
|
||||||
data: { requestedProjectName: string, projectName: string }
|
data: { requestedProjectName: string, projectName: string }
|
||||||
|
}
|
||||||
|
| {
|
||||||
|
type: SystemIOMachineEvents.deleteProject
|
||||||
|
data: { requestedProjectName: string}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
actions: {
|
actions: {
|
||||||
@ -95,6 +99,13 @@ export const systemIOMachine = setup({
|
|||||||
input: { context: SystemIOContext; requestProjectName: string }
|
input: { context: SystemIOContext; requestProjectName: string }
|
||||||
}) => {}
|
}) => {}
|
||||||
),
|
),
|
||||||
|
[SystemIOMachineActors.deleteProject]: fromPromise(
|
||||||
|
async ({
|
||||||
|
input: context,
|
||||||
|
}: {
|
||||||
|
input: { context: SystemIOContext; requestProjectName: string }
|
||||||
|
}) => {}
|
||||||
|
),
|
||||||
},
|
},
|
||||||
}).createMachine({
|
}).createMachine({
|
||||||
initial: SystemIOMachineStates.idle,
|
initial: SystemIOMachineStates.idle,
|
||||||
@ -134,6 +145,9 @@ export const systemIOMachine = setup({
|
|||||||
[SystemIOMachineEvents.renameProject]: {
|
[SystemIOMachineEvents.renameProject]: {
|
||||||
target: SystemIOMachineStates.renamingProject,
|
target: SystemIOMachineStates.renamingProject,
|
||||||
},
|
},
|
||||||
|
[SystemIOMachineEvents.deleteProject]: {
|
||||||
|
target: SystemIOMachineStates.deletingProject,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
[SystemIOMachineStates.readingFolders]: {
|
[SystemIOMachineStates.readingFolders]: {
|
||||||
@ -191,6 +205,25 @@ export const systemIOMachine = setup({
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
[SystemIOMachineStates.deletingProject]: {
|
||||||
|
invoke: {
|
||||||
|
id: SystemIOMachineActors.deleteProject,
|
||||||
|
src: SystemIOMachineActors.deleteProject,
|
||||||
|
input: ({ context, event }) => {
|
||||||
|
assertEvent(event, SystemIOMachineEvents.deleteProject)
|
||||||
|
return {
|
||||||
|
context,
|
||||||
|
requestedProjectName: event.data.requestedProjectName,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onDone: {
|
||||||
|
target: SystemIOMachineStates.readingFolders,
|
||||||
|
},
|
||||||
|
onError: {
|
||||||
|
target: SystemIOMachineStates.idle,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@ -100,5 +100,19 @@ export const systemIOMachineDesktop = systemIOMachine.provide({
|
|||||||
// DONE
|
// DONE
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
|
[SystemIOMachineActors.deleteProject]: fromPromise(
|
||||||
|
async ({
|
||||||
|
input,
|
||||||
|
}: {
|
||||||
|
input: { context: SystemIOContext; requestedProjectName: string}
|
||||||
|
}) => {
|
||||||
|
await window.electron.rm(
|
||||||
|
window.electron.path.join(input.context.projectDirectoryPath, input.requestedProjectName),
|
||||||
|
{
|
||||||
|
recursive: true,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
),
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|||||||
@ -4,7 +4,8 @@ export enum SystemIOMachineActors {
|
|||||||
readFoldersFromProjectDirectory = 'read folders from project directory',
|
readFoldersFromProjectDirectory = 'read folders from project directory',
|
||||||
setProjectDirectoryPath = 'set project directory path',
|
setProjectDirectoryPath = 'set project directory path',
|
||||||
createProject = 'create project',
|
createProject = 'create project',
|
||||||
renameProject = 'rename project'
|
renameProject = 'rename project',
|
||||||
|
deleteProject = 'delete project'
|
||||||
}
|
}
|
||||||
|
|
||||||
export enum SystemIOMachineStates {
|
export enum SystemIOMachineStates {
|
||||||
@ -12,7 +13,8 @@ export enum SystemIOMachineStates {
|
|||||||
readingFolders = 'readingFolders',
|
readingFolders = 'readingFolders',
|
||||||
settingProjectDirectoryPath = 'settingProjectDirectoryPath',
|
settingProjectDirectoryPath = 'settingProjectDirectoryPath',
|
||||||
creatingProject = 'creatingProject',
|
creatingProject = 'creatingProject',
|
||||||
renamingProject = 'renamingProject'
|
renamingProject = 'renamingProject',
|
||||||
|
deletingProject = 'deletingProject'
|
||||||
}
|
}
|
||||||
|
|
||||||
const donePrefix = 'xstate.done.actor.'
|
const donePrefix = 'xstate.done.actor.'
|
||||||
@ -25,7 +27,8 @@ export enum SystemIOMachineEvents {
|
|||||||
navigateToProject = 'navigate to project',
|
navigateToProject = 'navigate to project',
|
||||||
navigateToFile = 'navigate to file',
|
navigateToFile = 'navigate to file',
|
||||||
createProject = 'create project',
|
createProject = 'create project',
|
||||||
renameProject = 'rename project'
|
renameProject = 'rename project',
|
||||||
|
deleteProject = 'delete project'
|
||||||
}
|
}
|
||||||
|
|
||||||
export enum SystemIOMachineActions {
|
export enum SystemIOMachineActions {
|
||||||
|
|||||||
Reference in New Issue
Block a user