From 18bff9cd113c57e39e8f6353ca069f81647fb4a4 Mon Sep 17 00:00:00 2001 From: Chika Date: Tue, 5 Jul 2022 19:44:58 +0300 Subject: [PATCH] PaymentsTable: new store methods --- stores/tables/payments/index.ts | 34 +++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/stores/tables/payments/index.ts b/stores/tables/payments/index.ts index dccc682..d5d7ca0 100644 --- a/stores/tables/payments/index.ts +++ b/stores/tables/payments/index.ts @@ -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); + }; }