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 async function useUserBaseData(userEmail: string) { const wishlistStore = useWishlistStore(); const cartStore = useCartStore(); const promocodeStore = usePromocodeStore(); const { syncWishlist } = useWishlistSync(); const { syncOrder } = useOrderSync(); const { document, variables } = getUserBaseData({ userEmail, status: orderStatuses.PENDING, }); const { mutate, error } = useMutation(document); const result = await mutate(variables); 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); } watch(error, (err) => { if (err) { console.error('useUserBaseData error:', err); } }); return {}; }