From 65de6aaf10698385a4f202f5eeab143986402ed1 Mon Sep 17 00:00:00 2001 From: Eric <5089238+emizzle@users.noreply.github.com> Date: Wed, 3 Jul 2024 17:12:23 +1000 Subject: [PATCH] refactor requests store request structure The purpose was to emulate the structure of a request in the contract, so that the entire request object could be overwritten, and then the app state, eg moderated, would be separately set. Other state properties are also only fetched if not already fetched. --- src/App.vue | 12 +- src/components/NotFound.vue | 24 ++- src/components/StorageRequest.vue | 35 ++-- src/components/StorageRequests.vue | 9 +- src/stores/events.js | 2 +- src/stores/requests.js | 253 +++++++++++++++++++---------- src/views/ModerateView.vue | 2 +- src/views/NotFoundView.vue | 2 +- src/views/RequestView.vue | 10 +- src/views/RequestsView.vue | 2 +- 10 files changed, 220 insertions(+), 131 deletions(-) diff --git a/src/App.vue b/src/App.vue index 6e2cf92..19bf373 100644 --- a/src/App.vue +++ b/src/App.vue @@ -17,7 +17,7 @@ import { useEventsStore } from './stores/events' const eventsStore = useEventsStore() const requestsStore = useRequestsStore() -const { loadingRecent, loadingRequestStates } = storeToRefs(requestsStore) +const { loading } = storeToRefs(requestsStore) const { events } = storeToRefs(eventsStore) const codexApi = inject('codexApi') const ethProvider = inject('ethProvider') @@ -27,8 +27,10 @@ window.name = generateUniqueId() onMounted(() => { initDrawers() initDismisses() - requestsStore.refetchRequestStates() - requestsStore.fetchPastRequests() + requestsStore.$hydrate() + requestsStore.refetchRequestStates().then(() => { + requestsStore.fetchPastRequests() + }) eventsStore.listenForNewEvents() window.addEventListener('storage', handleStorageEvent) @@ -111,11 +113,11 @@ onUnmounted(() => {
diff --git a/src/components/NotFound.vue b/src/components/NotFound.vue index 7d72fdc..fc3a5b3 100644 --- a/src/components/NotFound.vue +++ b/src/components/NotFound.vue @@ -1,15 +1,29 @@ \ No newline at end of file + diff --git a/src/components/StorageRequest.vue b/src/components/StorageRequest.vue index 6946bac..81e29d6 100644 --- a/src/components/StorageRequest.vue +++ b/src/components/StorageRequest.vue @@ -37,29 +37,28 @@ onMounted(() => { initTooltips() }) -const totalPrice = computed(() => price(request.value)) -const maxSlotLoss = computed(() => autoPluralize(request.value.ask.maxSlotLoss, 'slot')) -const slots = computed(() => autoPluralize(request.value.ask.slots, 'slot')) +const totalPrice = computed(() => price(request.value.request)) +const maxSlotLoss = computed(() => autoPluralize(request.value.request.ask.maxSlotLoss, 'slot')) +const slots = computed(() => autoPluralize(request.value.request.ask.slots, 'slot')) const stateColour = computed(() => getStateColour(request.value.state)) const timestamps = computed(() => { - let { requestedAt, endsAt, expiresAt } = timestampsFor( - request.value.ask, - request.value.expiry, - request.value.requestedAt - ) + let { requestedAt } = request.value + let { ask, expiry } = request.value.request + let { endsAt, expiresAt } = timestampsFor(ask, expiry, requestedAt) return { requested: new Date(requestedAt * 1000), expires: new Date(expiresAt * 1000), ends: new Date(endsAt * 1000) } }) +const requestDetails = computed(() => request.value.request)