Resume-able processes for loading library
This commit is contained in:
@ -177,6 +177,13 @@ export function startProcess(key,message,data = {}){
|
||||
}
|
||||
}
|
||||
|
||||
export function resumeProcess(key,message,data = {}){
|
||||
return {
|
||||
type: 'RESUME_PROCESS',
|
||||
key: key
|
||||
}
|
||||
}
|
||||
|
||||
export function updateProcess(key,message,data = {}){
|
||||
return {
|
||||
type: 'UPDATE_PROCESS',
|
||||
|
||||
@ -127,6 +127,18 @@ const UIMiddleware = (function(){
|
||||
type: action.key,
|
||||
data: action.data
|
||||
})
|
||||
store.dispatch({
|
||||
type: action.key+'_STARTED'
|
||||
})
|
||||
next(action)
|
||||
break
|
||||
|
||||
case 'RESUME_PROCESS':
|
||||
store.dispatch({
|
||||
type: action.key,
|
||||
data: store.getState().ui.processes[action.key].data
|
||||
})
|
||||
console.log('resuming',store.getState().ui.processes[action.key].data)
|
||||
next(action)
|
||||
break
|
||||
|
||||
|
||||
@ -136,28 +136,36 @@ export default function reducer(ui = {}, action){
|
||||
processes[action.key] = {
|
||||
key: action.key,
|
||||
message: action.message,
|
||||
status: 'running',
|
||||
data: data
|
||||
}
|
||||
return Object.assign({}, ui, {processes: processes})
|
||||
|
||||
case 'RESUME_PROCESS':
|
||||
var processes = Object.assign({}, (ui.processes ? ui.processes : {}))
|
||||
if (processes[action.key]){
|
||||
processes[action.key] = Object.assign({}, processes[action.key], {status: 'running'})
|
||||
}
|
||||
return Object.assign({}, ui, {processes: processes})
|
||||
|
||||
case 'CANCEL_PROCESS':
|
||||
var processes = Object.assign({}, (ui.processes ? ui.processes : {}))
|
||||
if (processes[action.key]){
|
||||
processes[action.key] = Object.assign(
|
||||
{},
|
||||
processes[action.key],
|
||||
{
|
||||
cancelling: true
|
||||
}
|
||||
)
|
||||
processes[action.key] = Object.assign({}, processes[action.key], {status: 'cancelling'})
|
||||
}
|
||||
return Object.assign({}, ui, {processes: processes})
|
||||
|
||||
case 'PROCESS_CANCELLED':
|
||||
var processes = Object.assign({}, (ui.processes ? ui.processes : {}))
|
||||
if (processes[action.key]){
|
||||
processes[action.key] = Object.assign({}, processes[action.key], {status: 'cancelled'})
|
||||
}
|
||||
return Object.assign({}, ui, {processes: processes})
|
||||
|
||||
case 'PROCESS_FINISHED':
|
||||
var processes = Object.assign({}, (ui.processes ? ui.processes : {}))
|
||||
if (processes[action.key]){
|
||||
delete processes[action.key]
|
||||
processes[action.key] = Object.assign({}, processes[action.key], {status: 'finished'})
|
||||
}
|
||||
return Object.assign({}, ui, {processes: processes})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user