Files
aladin-lite/src/js/FiniteStateMachine.js
Matthieu Baumann b69016b049 refactorize UI code
2024-02-29 18:13:22 +01:00

21 lines
498 B
JavaScript

export class FSM {
// Constructor
constructor(options) {
this.state = options && options.state;
this.transitions = options && options.transitions || {};
}
// Do nothing if the to is inaccesible
dispatch(to, params) {
const action = this.transitions[this.state][to];
if (action) {
this.state = to;
if (params) {
action(params);
} else {
action()
}
}
}
}