PaymentsTable: new store methods

This commit is contained in:
Chika 2022-07-05 19:44:58 +03:00
parent 431f41edcd
commit 18bff9cd11

View File

@ -4,6 +4,11 @@ import { makeAutoObservable, observable } from 'mobx';
import type RootStore from 'stores/root';
import Validation from '../validation';
type Row = {
value: number;
status: Status;
};
export default class PaymentsTable {
root: RootStore;
validation: Validation;
@ -22,23 +27,36 @@ export default class PaymentsTable {
return this.values[index];
}
setValues = (values: number[]) => {
this.values.replace(values);
};
setValue = (index: number, value: number) => {
this.values[index] = value;
};
private setValues = (values: number[]) => {
this.values.replace(values);
};
getStatus(index: number) {
return this.statuses[index];
}
setStatuses = (statuses: Status[]) => {
this.statuses.replace(statuses);
};
setStatus = (index: number, status: Status) => {
this.statuses[index] = status;
};
private setStatuses = (statuses: Status[]) => {
this.statuses.replace(statuses);
};
setRow = (index: number, row: Row) => {
this.setValue(index, row.value);
this.setStatus(index, row.status);
};
setRows = (rows: Row[]) => {
const values = rows.map((row) => row.value);
const statuses = rows.map((row) => row.status);
this.setValues(values);
this.setStatuses(statuses);
};
}