schon/storefront/app/composables/user/useUserBaseData.ts
2026-02-27 21:59:51 +03:00

37 lines
985 B
TypeScript

import { orderStatuses } from '@appConstants';
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 { document, variables } = getUserBaseData({
userEmail,
status: orderStatuses.PENDING,
});
const { mutate, error } = useMutation<IUserBaseDataResponse>(document);
const result = await mutate(variables);
const data = result?.data;
if (data?.wishlists.edges) {
wishlistStore.setWishlist(data.wishlists.edges[0].node);
}
if (data?.orders.edges) {
cartStore.setCurrentOrders(data.orders.edges[0].node);
}
if (data?.promocodes.edges) {
promocodeStore.setPromocodes(data.promocodes.edges);
}
watch(error, (err) => {
if (err) {
console.error('useUserBaseData error:', err);
}
});
return {};
}