feat: onComplete config option (#4322)

* feat: `onComplete` config option

* tests(e2e): add case for onComplete option
This commit is contained in:
kyle
2018-03-16 00:08:39 -07:00
committed by GitHub
parent b0be261ef8
commit 624a81201f
7 changed files with 167 additions and 3 deletions

View File

@@ -0,0 +1,28 @@
let engaged = false
export default function() {
return {
statePlugins: {
spec: {
wrapActions: {
updateSpec: (ori) => (...args) => {
engaged = true
return ori(...args)
},
updateJsonSpec: (ori, system) => (...args) => {
const cb = system.getConfigs().onComplete
if(engaged && typeof cb === "function") {
// call `onComplete` on next tick, which allows React to
// reconcile the DOM before we notify the user
setTimeout(cb, 0)
engaged = false
}
return ori(...args)
}
}
}
}
}
}

View File

@@ -13,6 +13,7 @@ import downloadUrlPlugin from "core/plugins/download-url"
import configsPlugin from "core/plugins/configs"
import deepLinkingPlugin from "core/plugins/deep-linking"
import filter from "core/plugins/filter"
import onComplete from "core/plugins/on-complete"
import OperationContainer from "core/containers/OperationContainer"
@@ -159,6 +160,7 @@ export default function() {
SplitPaneModePlugin,
downloadUrlPlugin,
deepLinkingPlugin,
filter
filter,
onComplete
]
}