import {isGraphQLError} from "~/utils/error"; import type {IBuyOrderResponse} from "~/types"; import {useNotification} from "~/composables/notification"; import {BUY_CART} from "~/graphql/mutations/cart"; export function useOrderBuy() { const {t} = useI18n(); const { mutate, loading, error } = useMutation(BUY_CART); async function buyOrder( orderUuid: string, ) { const result = await mutate({ orderUuid, forcePayment: true, }); if (result?.data?.buyOrder?.transaction?.process?.redirect_url) { window.location.href = result.data.buyOrder.transaction.process.redirect_url } else { console.log(result?.data) } } watch(error, (err) => { if (!err) return; console.error('useOrderBuy error:', err); let message = t('popup.errors.defaultError'); if (isGraphQLError(err)) { message = err.graphQLErrors?.[0]?.message || message; } else { message = err.message; } useNotification({ message, type: 'error', title: t('popup.errors.main') }); }); return { buyOrder, loading }; }