56 lines
1.4 KiB
TypeScript

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,
}
);
}