portal-www
Version:
Nova Portal Website. Based on Next starter by Ueno
58 lines (47 loc) • 1.06 kB
text/typescript
import { action, extendObservable, makeObservable, observable } from 'mobx';
export default class Steps {
constructor({ steps = {} }) {
makeObservable(this, {
currentStep: observable,
accordionStep: observable,
onCompleteSteps: observable,
completedStep: observable,
next: action,
prev: action,
setStep: action,
close: action,
reset: action,
});
extendObservable(this, steps);
}
currentStep = 1;
accordionStep = 1;
onCompleteSteps = false;
completedStep = 0;
next() {
this.currentStep += 1;
}
prev() {
if (this.currentStep > 1) {
this.currentStep -= 1;
}
}
setStep(newStep: number) {
this.currentStep = newStep;
}
setAccordionStep(newStep: number) {
this.accordionStep = newStep;
}
setCompletedStep(step: number) {
this.completedStep = step;
}
close() {
this.onCompleteSteps = true;
}
reset() {
this.currentStep = 1;
this.accordionStep = 1;
this.completedStep = 0;
this.onCompleteSteps = false;
}
}