From 2ca7d346afcb0ec946088ff5ae7d81d25684f6b8 Mon Sep 17 00:00:00 2001
From: Eric <5089238+emizzle@users.noreply.github.com>
Date: Fri, 21 Jun 2024 23:19:37 +1000
Subject: [PATCH] re-fetch request states asynchronously on page load
---
src/App.vue | 155 +++++++++++++++++++++--------------------
src/stores/requests.js | 22 ++++++
2 files changed, 102 insertions(+), 75 deletions(-)
diff --git a/src/App.vue b/src/App.vue
index 68f7b8f..55dfa18 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -14,7 +14,7 @@ import { storeToRefs } from 'pinia'
const alerts = ref([])
const id = ref(0)
const requestsStore = useRequestsStore()
-const { loadingRecent } = storeToRefs(requestsStore)
+const { loadingRecent, loadingRequestStates } = storeToRefs(requestsStore)
function addAlert(type, event, state) {
alerts.value.push({
@@ -39,79 +39,79 @@ function addSlotAlert(type, event, state) {
})
}
-onBeforeMount(async () => {})
+function onStorageRequested(blockNumber, requestId, state) {
+ alerts.value.push({
+ type: 'info',
+ event: 'StorageRequested',
+ blockNumber,
+ requestId,
+ state
+ })
+}
+function onRequestFulfilled(blockNumber, requestId) {
+ alerts.value.push({
+ type: 'success',
+ event: 'RequestStarted',
+ blockNumber,
+ requestId,
+ state: 'Fulfilled'
+ })
+}
+function onRequestCancelled(blockNumber, requestId) {
+ alerts.value.push({
+ type: 'danger',
+ event: 'RequestCancelled',
+ blockNumber,
+ requestId,
+ state: 'Cancelled'
+ })
+}
+function onRequestFailed(blockNumber, requestId) {
+ alerts.value.push({
+ type: 'danger',
+ event: 'RequestFailed',
+ blockNumber,
+ requestId,
+ state: 'Failed'
+ })
+}
+function onRequestFinished(blockNumber, requestId) {
+ alerts.value.push({
+ type: 'info',
+ event: 'RequestFinished',
+ blockNumber,
+ requestId,
+ state: 'Finished'
+ })
+}
+function onSlotFreed(blockNumber, requestId, slotIdx) {
+ alerts.value.push({
+ type: 'warning',
+ event: 'SlotFreed',
+ blockNumber,
+ requestId,
+ slotIdx,
+ state: 'Freed'
+ })
+}
+function onSlotFilled(blockNumber, requestId, slotIdx) {
+ alerts.value.push({
+ type: 'info',
+ event: 'SlotFilled',
+ blockNumber,
+ requestId,
+ slotIdx,
+ state: 'Filled'
+ })
+}
-onMounted(async () => {
- await requestsStore.fetchPastRequests()
+onMounted(() => {
initDrawers()
initDismisses()
+ requestsStore.refetchRequestStates()
+ requestsStore.fetchPastRequests()
- function onStorageRequested(blockNumber, requestId, state) {
- alerts.value.push({
- type: 'info',
- event: 'StorageRequested',
- blockNumber,
- requestId,
- state
- })
- }
- function onRequestFulfilled(blockNumber, requestId) {
- alerts.value.push({
- type: 'success',
- event: 'RequestStarted',
- blockNumber,
- requestId,
- state: 'Fulfilled'
- })
- }
- function onRequestCancelled(blockNumber, requestId) {
- alerts.value.push({
- type: 'danger',
- event: 'RequestCancelled',
- blockNumber,
- requestId,
- state: 'Cancelled'
- })
- }
- function onRequestFailed(blockNumber, requestId) {
- alerts.value.push({
- type: 'danger',
- event: 'RequestFailed',
- blockNumber,
- requestId,
- state: 'Failed'
- })
- }
- function onRequestFinished(blockNumber, requestId) {
- alerts.value.push({
- type: 'info',
- event: 'RequestFinished',
- blockNumber,
- requestId,
- state: 'Finished'
- })
- }
- function onSlotFreed(blockNumber, requestId, slotIdx) {
- alerts.value.push({
- type: 'warning',
- event: 'SlotFreed',
- blockNumber,
- requestId,
- slotIdx,
- state: 'Freed'
- })
- }
- function onSlotFilled(blockNumber, requestId, slotIdx) {
- alerts.value.push({
- type: 'info',
- event: 'SlotFilled',
- blockNumber,
- requestId,
- slotIdx,
- state: 'Filled'
- })
- }
- await requestsStore.listenForNewEvents(
+ requestsStore.listenForNewEvents(
onStorageRequested,
onRequestFulfilled,
onRequestCancelled,
@@ -188,11 +188,16 @@ onUnmounted(() => {