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

81 lines
1.6 KiB
JavaScript
Raw Normal View History

2022-12-30 08:54:39 +00:00
import { makeAutoObservable, runInAction } from "mobx";
2022-09-14 06:55:22 +00:00
import api from "../api";
import { TariffState } from "../constants";
import { getUserByEmail } from "../api/people";
2022-09-14 06:55:22 +00:00
class CurrentTariffStatusStore {
portalTariffStatus = {};
isLoaded = false;
payerInfo = null;
2022-09-14 06:55:22 +00:00
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;
}
setPayerInfo = async () => {
try {
const result = await getUserByEmail(this.customerId);
if (!result) return;
this.payerInfo = result;
} catch (e) {
console.error(e);
}
};
2022-09-14 06:55:22 +00:00
setPortalTariff = async () => {
const res = await api.portal.getPortalTariff();
if (!res) return;
2022-12-30 08:54:39 +00:00
runInAction(() => {
this.portalTariffStatus = res;
});
2022-09-14 06:55:22 +00:00
};
}
export default CurrentTariffStatusStore;