import { defineStore } from 'pinia'; import { jApi } from 'boot/axios'; import useNotify from 'src/composables/useNotify.js'; const { notify } = useNotify(); export const useAppStore = defineStore('hedera', { state: () => ({ title: null, subtitle: null, imageUrl: '', useRightDrawer: false, rightDrawerOpen: false, isHeaderMounted: false, menuEssentialLinks: [], basketOrderId: null }), actions: { async getMenuLinks() { const sections = await jApi.query('SELECT * FROM myMenu'); const sectionMap = new Map(); for (const section of sections) { sectionMap.set(section.id, section); } const sectionTree = []; for (const section of sections) { const parent = section.parentFk; if (parent) { const parentSection = sectionMap.get(parent); if (!parentSection) continue; let childs = parentSection.childs; if (!childs) { childs = parentSection.childs = []; } childs.push(section); } else { sectionTree.push(section); } } this.menuEssentialLinks = sectionTree; }, async loadConfig() { const imageUrl = await jApi.getValue('SELECT url FROM imageConfig'); this.$patch({ imageUrl }); }, async init() { this.getBasketOrderId(); }, getBasketOrderId() { this.basketOrderId = localStorage.getItem('hederaBasket'); }, async checkOrder(orderId) { try { const resultSet = await jApi.execQuery( 'CALL myOrder_checkConfig(#id)', { id: orderId } ); resultSet.fetchValue(); } catch (err) { console.error('Error checking order', err); } }, loadIntoBasket(orderId) { console.log('loadIntoBasket', orderId); console.log('this.basketOrderId', this.basketOrderId); if (this.basketOrderId !== orderId) { localStorage.setItem('hederaBasket', orderId); this.basketOrderId = orderId; notify('orderLoadedIntoBasket', 'positive'); } } } });