2022-09-30 14:26:18 +03:00

50 lines
1.2 KiB
TypeScript

import type { ApolloClient } from '@apollo/client';
import { reaction, toJS } from 'mobx';
import type RootStore from 'stores/root';
export default function paymentsReactions(store: RootStore, apolloClient: ApolloClient<object>) {
const { $calculation, $tables } = store;
/**
* При изменении срока лизинга регулируем длину таблицы платежей
*/
reaction(
() => $calculation.$values.getValue('leasingPeriod'),
(leasingPeriod) => {
if (leasingPeriod) {
$tables.payments.setValues(
Array.from(
{
length: leasingPeriod,
},
() => 0
)
);
}
},
{
fireImmediately: true,
}
);
/**
* Проверяем платежи на 0
*/
const errorText = 'Значения должны быть больше 0';
let removeError: () => void;
reaction(
() => toJS($tables.payments.values),
(values) => {
if (values.includes(0)) {
removeError = $tables.payments.validation.addError(errorText);
} else {
removeError();
}
},
{
fireImmediately: true,
}
);
}