From 551bf1a98e55b71334c1825081d400161b809893 Mon Sep 17 00:00:00 2001 From: FreezyEx Date: Thu, 13 Oct 2022 16:33:49 +0200 Subject: [PATCH] added progress percentage --- components/Loaders/Loader.vue | 8 ++++---- components/withdraw/Withdraw.vue | 3 ++- services/events.js | 23 ++++++++++++++++++++++- store/loading.js | 10 ++++++++-- 4 files changed, 36 insertions(+), 8 deletions(-) diff --git a/components/Loaders/Loader.vue b/components/Loaders/Loader.vue index f6b661e..bc2f517 100644 --- a/components/Loaders/Loader.vue +++ b/components/Loaders/Loader.vue @@ -1,17 +1,17 @@ + + \ No newline at end of file diff --git a/components/withdraw/Withdraw.vue b/components/withdraw/Withdraw.vue index 286042c..7f08182 100644 --- a/components/withdraw/Withdraw.vue +++ b/components/withdraw/Withdraw.vue @@ -341,6 +341,7 @@ export default { if (currency !== this.nativeCurrency) { this.$store.dispatch('application/setDefaultEthToReceive', { currency }) } + this.$store.dispatch('loading/updateProgress', { progress: -1 }) this.depositsPast = Number(depositsPast) <= 0 ? 0 : depositsPast this.depositTxHash = txHash this.depositTimestamp = timestamp @@ -540,4 +541,4 @@ export default { } } } - + \ No newline at end of file diff --git a/services/events.js b/services/events.js index 0b32ac8..4c8ee12 100644 --- a/services/events.js +++ b/services/events.js @@ -9,6 +9,13 @@ import { sleep, formatEvents, capitalizeFirstLetter } from '@/utils' const supportedCaches = ['1', '56', '100', '137'] +let store +if (process.browser) { + window.onNuxtReady(({ $store }) => { + store = $store + }) +} + class EventService { constructor({ netId, amount, currency, factoryMethods }) { this.idb = window.$nuxt.$indexedDB(netId) @@ -278,6 +285,7 @@ class EventService { const part = Math.ceil(blockDifference / numberParts) let events = [] + let loadedBlocks = 0 let toBlock = fromBlock + part if (fromBlock < currentBlockNumber) { @@ -285,6 +293,9 @@ class EventService { toBlock = 'latest' numberParts = 1 } + if (store.state.loading.progress !== 98) { + store.dispatch('loading/updateProgress', { message: 'Fetching the past events', progress: 0 }) + } for (let i = 0; i < numberParts; i++) { try { @@ -293,8 +304,18 @@ class EventService { if (partOfEvents) { events = events.concat(partOfEvents.events) } + loadedBlocks += toBlock - fromBlock fromBlock = toBlock toBlock += part + + const progressInt = parseInt((loadedBlocks / blockDifference) * 100) + console.log('Progress: ', progressInt) + if (store.state.loading.progress !== 98) { + store.dispatch('loading/updateProgress', { + message: 'Fetching the past events', + progress: progressInt === 100 ? 98 : progressInt + }) + } } catch { numberParts = numberParts + 1 } @@ -410,4 +431,4 @@ class EventsFactory { } } -export { EventsFactory } +export { EventsFactory } \ No newline at end of file diff --git a/store/loading.js b/store/loading.js index 00d54bf..bba47e9 100644 --- a/store/loading.js +++ b/store/loading.js @@ -1,6 +1,7 @@ export const state = () => { return { message: '', + progress: -1, enabled: false, type: null } @@ -9,14 +10,16 @@ export const state = () => { export const getters = {} export const mutations = { - ENABLE(state, { message, type }) { + ENABLE(state, { message, progress, type }) { state.message = message state.enabled = true + state.progress = progress state.type = type }, DISABLE(state) { state.message = '' state.enabled = false + state.progress = -1 state.type = null } } @@ -28,6 +31,9 @@ export const actions = { changeText({ commit }, { message, type }) { commit('ENABLE', { message, type }) }, + updateProgress({ commit }, { message, progress }) { + commit('ENABLE', { message, progress }) + }, disable({ commit }) { commit('DISABLE') }, @@ -39,4 +45,4 @@ export const actions = { type: 'approve' }) } -} +} \ No newline at end of file