DocSpace-client/packages/common/store/CurrentTariffStatusStore.js

69 lines
1.3 KiB
JavaScript

import { makeAutoObservable, runInAction } from "mobx";
import api from "../api";
import { TariffState } from "../constants";
class CurrentTariffStatusStore {
portalTariffStatus = {};
isLoaded = false;
constructor() {
makeAutoObservable(this);
}
init = async () => {
if (this.isLoaded) return;
await this.setPortalTariff();
this.setIsLoaded(true);
};
setIsLoaded = (isLoaded) => {
this.isLoaded = isLoaded;
};
get isGracePeriod() {
return this.portalTariffStatus.state === TariffState.Delay;
}
get isPaidPeriod() {
return this.portalTariffStatus.state === TariffState.Paid;
}
get isNotPaidPeriod() {
return this.portalTariffStatus.state === TariffState.NotPaid;
}
get dueDate() {
return this.portalTariffStatus.dueDate;
}
get delayDueDate() {
return this.portalTariffStatus.delayDueDate;
}
get delayDueDate() {
return this.portalTariffStatus.delayDueDate;
}
get customerId() {
return this.portalTariffStatus.customerId;
}
get portalStatus() {
return this.portalTariffStatus.portalStatus;
}
setPortalTariff = async () => {
const res = await api.portal.getPortalTariff();
if (!res) return;
runInAction(() => {
this.portalTariffStatus = res;
});
};
}
export default CurrentTariffStatusStore;