diff --git a/apps/web/process/configurator/reactions/values.ts b/apps/web/process/configurator/reactions/values.ts index 3aebd43..5abf5bd 100644 --- a/apps/web/process/configurator/reactions/values.ts +++ b/apps/web/process/configurator/reactions/values.ts @@ -11,6 +11,7 @@ import { comparer, reaction } from 'mobx'; dayjs.extend(utc); export default function valuesReactions({ store, apolloClient, trpcClient }: ProcessContext) { + let abortController = new AbortController(); const { $calculation, $process } = store; const { getRates, getPriceChange } = helper({ apolloClient }); @@ -31,12 +32,20 @@ export default function valuesReactions({ store, apolloClient, trpcClient }: Pro ]), async (values) => { $calculation.element('selectTarif').resetOptions().resetValue(); + try { + if (abortController) abortController.abort(); + abortController = new AbortController(); - const { evo_tarif } = await trpcClient.getTarif.query(values); + const { evo_tarif } = await trpcClient.getTarif.query(values, { + signal: abortController.signal, + }); - if (evo_tarif) { - $calculation.element('selectTarif').setOptions(normalizeOptions([evo_tarif])); - $calculation.element('selectTarif').setValue(evo_tarif.evo_tarifid); + if (evo_tarif) { + $calculation.element('selectTarif').setOptions(normalizeOptions([evo_tarif])); + $calculation.element('selectTarif').setValue(evo_tarif.evo_tarifid); + } + } catch { + $calculation.element('selectTarif').resetOptions(); } }, {