import { orderStatuses } from '@appConstants'; import { useOrderSync } from '@composables/orders'; import { useWishlistSync } from '@composables/wishlist'; import { getUserBaseData } from '@graphql/queries/combined/userBaseData'; import type { IUserBaseDataResponse } from '@types'; export function useUserBaseData() { const wishlistStore = useWishlistStore(); const cartStore = useCartStore(); const promocodeStore = usePromocodeStore(); const { syncWishlist } = useWishlistSync(); const { syncOrder } = useOrderSync(); async function loadUserBaseData(userEmail: string) { const { document, variables } = getUserBaseData({ userEmail, status: orderStatuses.PENDING, }); const { mutate, error } = useMutation(document); const result = await mutate(variables); if (error.value) { console.error('useUserBaseData error:', error.value); } const data = result?.data; if (data?.wishlists.edges) { wishlistStore.setWishlist(data.wishlists.edges[0].node); await syncWishlist(); } if (data?.orders.edges) { cartStore.setCurrentOrders(data.orders.edges[0].node); await syncOrder(); } if (data?.promocodes.edges) { promocodeStore.setPromocodes(data.promocodes.edges); } } return { loadUserBaseData }; }