feat(dispatcher): provide custom default state for wizard
This commit is contained in:
parent
a2ad4128f1
commit
00d9228c1c
1 changed files with 8 additions and 2 deletions
|
@ -37,6 +37,12 @@ export class WizardScene<State, SceneName extends string = string> extends Dispa
|
||||||
> {
|
> {
|
||||||
private _steps = 0
|
private _steps = 0
|
||||||
|
|
||||||
|
private _defaultState: State & WizardInternalState = {} as any
|
||||||
|
|
||||||
|
setDefaultState (defaultState: State): void {
|
||||||
|
this._defaultState = defaultState as State & WizardInternalState
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the total number of registered steps
|
* Get the total number of registered steps
|
||||||
*/
|
*/
|
||||||
|
@ -60,7 +66,7 @@ export class WizardScene<State, SceneName extends string = string> extends Dispa
|
||||||
const result = await handler(msg, state)
|
const result = await handler(msg, state)
|
||||||
|
|
||||||
if (typeof result === 'number') {
|
if (typeof result === 'number') {
|
||||||
await state.merge({ $step: result })
|
await state.merge({ $step: result }, this._defaultState)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -70,7 +76,7 @@ export class WizardScene<State, SceneName extends string = string> extends Dispa
|
||||||
if (next === this._steps) {
|
if (next === this._steps) {
|
||||||
await state.exit()
|
await state.exit()
|
||||||
} else {
|
} else {
|
||||||
await state.merge({ $step: next })
|
await state.merge({ $step: next }, this._defaultState)
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue