From 2f17e833d73f09455c9151745e5961f992d54b04 Mon Sep 17 00:00:00 2001 From: vchikalkin Date: Tue, 17 Nov 2020 14:52:20 +0300 Subject: [PATCH] change block timeout for buttons --- .../stores/CalculationStore/Effects/action.ts | 36 +++++++++++-------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/src/client/stores/CalculationStore/Effects/action.ts b/src/client/stores/CalculationStore/Effects/action.ts index cea5f05..7c414e9 100644 --- a/src/client/stores/CalculationStore/Effects/action.ts +++ b/src/client/stores/CalculationStore/Effects/action.ts @@ -19,6 +19,22 @@ const cleanResults = () => { } }; +const BUTTONS_TIMEOUT = 500; + +function blockButtons() { + CalculationStore.setStatus('btnCreateKP', Status.Loading); + CalculationStore.setStatus('btnCalculate', Status.Loading); +} + +function unlockButtons() { + setTimeout(() => { + CalculationStore.setStatus('btnCreateKP', Status.Default); + }, BUTTONS_TIMEOUT); + setTimeout(() => { + CalculationStore.setStatus('btnCalculate', Status.Default); + }, BUTTONS_TIMEOUT); +} + const actions: TAction = { createLead: () => { // TODO: block button for time @@ -239,14 +255,7 @@ const actions: TAction = { calculate: async () => { // TODO: collect errors - CalculationStore.setStatus('btnCreateKP', Status.Loading); - setTimeout(() => { - CalculationStore.setStatus('btnCreateKP', Status.Default); - }, 3500); - CalculationStore.setStatus('btnCalculate', Status.Loading); - setTimeout(() => { - CalculationStore.setStatus('btnCalculate', Status.Default); - }, 3500); + blockButtons(); const { rows } = CalculationStore.tables.tableInsurance; const kaskoRow = rows[1]; @@ -308,11 +317,6 @@ const actions: TAction = { calculationStore: CalculationStore, }); - CalculationStore.setStatus('btnCalculate', Status.Loading); - setTimeout(() => { - CalculationStore.setStatus('btnCalculate', Status.Default); - }, 3500); - CalculationStore.cleanTable('tableResults'); console.log('preparedData', preparedData); @@ -419,9 +423,10 @@ const actions: TAction = { (1 + preparedData.preparedValues.salaryRate), ), ); - //set values + unlockButtons(); + return { ...res, ...preparedData }; }) .catch(err => { @@ -429,6 +434,9 @@ const actions: TAction = { type: 'error', title: 'Ошибка во время расчета!', })(); + + unlockButtons(); + throw err; }); },