import type { ProcessContext } from '@/process/types'; import { createCurrencyUtility } from '@/utils/currency'; import { reaction } from 'mobx'; export default function reactions({ store, apolloClient }: ProcessContext) { const { $calculation } = store; const { RUB } = createCurrencyUtility({ apolloClient }); reaction( () => $calculation.$values.getValues(['supplierCurrency', 'leaseObjectPrice']), async ({ supplierCurrency: supplierCurrencyId, leaseObjectPrice }) => { if (!supplierCurrencyId) { $calculation.$values.resetValue('plPriceRub'); return; } $calculation.$values.setValue( 'plPriceRub', await RUB({ currencyid: supplierCurrencyId, value: leaseObjectPrice, }) ); }, { delay: 100, fireImmediately: true, } ); reaction( () => $calculation.$values.getValues(['supplierCurrency', 'supplierDiscountRub']), async ({ supplierCurrency: supplierCurrencyId, supplierDiscountRub }) => { if (!supplierCurrencyId) { $calculation.$values.resetValue('discountRub'); return; } $calculation.$values.setValue( 'discountRub', await RUB({ currencyid: supplierCurrencyId, value: supplierDiscountRub, }) ); }, { delay: 100, fireImmediately: true, } ); }