32 lines
845 B
TypeScript
32 lines
845 B
TypeScript
import { inject, injectable } from "tsyringe";
|
|
import { IActivityState } from "../models/activityState";
|
|
import { IActivity } from "../models/config";
|
|
|
|
@injectable()
|
|
export class StateDataProvider {
|
|
private _states: {
|
|
[controlUnitName: string]: IActivityState | undefined;
|
|
} = {};
|
|
|
|
public updateState(activity: IActivity, controlUnitName: string): void {
|
|
this._states[controlUnitName] = { currentActivity: activity };
|
|
}
|
|
|
|
public removeState(controlUnitName: string): void {
|
|
this._states[controlUnitName] = undefined;
|
|
}
|
|
|
|
public getState(controlUnitName: string) {
|
|
if (!this._states[controlUnitName]) {
|
|
return undefined;
|
|
}
|
|
return this._states[controlUnitName]!.currentActivity;
|
|
}
|
|
|
|
public get states(): {
|
|
[controlUnitName: string]: IActivityState | undefined;
|
|
} {
|
|
return this._states;
|
|
}
|
|
}
|