diff --git a/src/stores/app.js b/src/stores/app.js index 1bb65cc9..184fbb71 100644 --- a/src/stores/app.js +++ b/src/stores/app.js @@ -5,6 +5,7 @@ import { i18n } from 'src/boot/i18n'; import { useQuasar } from 'quasar'; const { notify } = useNotify(); +const storageOrderName = 'hederaBasket'; export const useAppStore = defineStore('hedera', { state: () => ({ @@ -72,7 +73,7 @@ export const useAppStore = defineStore('hedera', { }, getBasketOrderId() { - this.basketOrderId = localStorage.getItem('hederaBasket'); + this.basketOrderId = localStorage.getItem(storageOrderName); }, async checkOrder(orderId) { @@ -97,22 +98,21 @@ export const useAppStore = defineStore('hedera', { await this.checkOrder(this.basketOrderId); return true; } catch (err) { - if (err.exception === 'Vn.Lib.UserError') { - switch (err.code) { - case 'orderConfirmed': - case 'orderNotOwnedByUser': - await this.redirect(); - break; - default: - this.router.push({ - name: 'checkout', - params: { id: this.basketOrderId }, - query: { continue: checkoutContinue } - }); - notify(err.message, 'negative'); - } - return false; - } else throw err; + switch (err.code) { + case 'orderConfirmed': + case 'orderNotOwnedByUser': + this.unloadOrder(); + await this.redirect(); + break; + default: + this.router.push({ + name: 'checkout', + params: { id: this.basketOrderId }, + query: { continue: checkoutContinue } + }); + notify(err.message, 'negative'); + } + return false; } }, @@ -131,9 +131,14 @@ export const useAppStore = defineStore('hedera', { loadIntoBasket(orderId) { if (this.basketOrderId !== orderId) { this.basketOrderId = orderId; - localStorage.setItem('hederaBasket', orderId); + localStorage.setItem(storageOrderName, orderId); notify('orderLoadedIntoBasket', 'positive'); } + }, + + unloadOrder() { + localStorage.removeItem(storageOrderName); + this.basketOrderId = null; } }, getters: {