Yuna/Yuna.Website/yuna.website.client/src/pages/home/model/DeviceCardStore.ts

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);
}
}