41 lines
1.0 KiB
TypeScript
41 lines
1.0 KiB
TypeScript
import { makeAutoObservable } from "mobx";
|
|
import { DeviceMeasureDto, IDeviceDto } from "../types";
|
|
import { HomePageService } from "../services/HomePageService";
|
|
import { homePageStore } from "./HomePageStore";
|
|
|
|
export class DeviceCardStore {
|
|
|
|
deviceMeasurments: DeviceMeasureDto | null = null;
|
|
deviceId: number
|
|
isLoading = true;
|
|
isInvalid = false;
|
|
|
|
constructor(id: number) {
|
|
this.deviceId = id;
|
|
makeAutoObservable(this);
|
|
}
|
|
|
|
setIsLoading(value: boolean) {
|
|
this.isLoading = value;
|
|
}
|
|
|
|
setMeasurements(value: DeviceMeasureDto) {
|
|
this.deviceMeasurments = value;
|
|
}
|
|
|
|
async loadDeviceMeasurements() {
|
|
if (this.isInvalid) return;
|
|
|
|
if (this.deviceMeasurments === null) this.setIsLoading(true);
|
|
const measurements = await HomePageService.fetchDeviceMeasurements(this.deviceId);
|
|
if (measurements === null) {
|
|
this.isInvalid = true;
|
|
return;
|
|
}
|
|
this.setMeasurements(measurements);
|
|
|
|
this.setIsLoading(false);
|
|
}
|
|
|
|
|
|
} |