fix: build error
This commit is contained in:
@@ -1,156 +1,165 @@
|
|||||||
'use client'
|
// 'use client'
|
||||||
import Layout from '@/hoc/Layout'
|
// import Layout from '@/hoc/Layout'
|
||||||
import { NextPage } from 'next'
|
// import { NextPage } from 'next'
|
||||||
import { useEffect, useState } from 'react'
|
// import { useEffect, useState } from 'react'
|
||||||
import { useRouter, useSearchParams } from 'next/navigation'
|
// import { useRouter, useSearchParams } from 'next/navigation'
|
||||||
import { useCheckPaymentStatus } from '../../hooks/useCartData'
|
// import { useCheckPaymentStatus } from '../../hooks/useCartData'
|
||||||
import { toast } from '@/components/Toast'
|
// import { toast } from '@/components/Toast'
|
||||||
import { Button } from '@/components/ui/button'
|
// import { Button } from '@/components/ui/button'
|
||||||
import Link from 'next/link'
|
// import Link from 'next/link'
|
||||||
|
|
||||||
const PaymentCallback: NextPage = () => {
|
// const PaymentCallback: NextPage = () => {
|
||||||
const router = useRouter()
|
// const searchParams = useSearchParams()
|
||||||
const searchParams = useSearchParams()
|
// const checkPaymentMutation = useCheckPaymentStatus()
|
||||||
const checkPaymentMutation = useCheckPaymentStatus()
|
|
||||||
|
|
||||||
const [paymentStatus, setPaymentStatus] = useState<'loading' | 'success' | 'failed' | 'pending'>('loading')
|
// const [paymentStatus, setPaymentStatus] = useState<'loading' | 'success' | 'failed' | 'pending'>('loading')
|
||||||
const [orderData, setOrderData] = useState<any>(null)
|
// const [orderData, setOrderData] = useState(null)
|
||||||
|
|
||||||
useEffect(() => {
|
// useEffect(() => {
|
||||||
const authority = searchParams.get('Authority')
|
// const authority = searchParams.get('Authority')
|
||||||
const status = searchParams.get('Status')
|
// const status = searchParams.get('Status')
|
||||||
|
|
||||||
if (!authority) {
|
// if (!authority) {
|
||||||
toast('خطا در دریافت اطلاعات پرداخت', 'error')
|
// toast('خطا در دریافت اطلاعات پرداخت', 'error')
|
||||||
setPaymentStatus('failed')
|
// setPaymentStatus('failed')
|
||||||
return
|
// return
|
||||||
}
|
// }
|
||||||
|
|
||||||
// بررسی وضعیت پرداخت - اطلاعات سفارش از سرور دریافت میشود
|
// // بررسی وضعیت پرداخت - اطلاعات سفارش از سرور دریافت میشود
|
||||||
checkPaymentStatus(authority)
|
// checkPaymentStatus(authority)
|
||||||
}, [searchParams])
|
// }, [searchParams])
|
||||||
|
|
||||||
const checkPaymentStatus = async (authority: string) => {
|
// const checkPaymentStatus = async (authority: string) => {
|
||||||
try {
|
// try {
|
||||||
const response = await checkPaymentMutation.mutateAsync({ authority })
|
// const response = await checkPaymentMutation.mutateAsync({ authority })
|
||||||
|
|
||||||
// ذخیره اطلاعات سفارش از response
|
// // ذخیره اطلاعات سفارش از response
|
||||||
if (response?.results?.orderData) {
|
// if (response?.results?.orderData) {
|
||||||
setOrderData(response.results.orderData)
|
// setOrderData(response.results.orderData)
|
||||||
}
|
// }
|
||||||
|
|
||||||
if (response?.results?.paymentStatus === 'success') {
|
// if (response?.results?.paymentStatus === 'success') {
|
||||||
setPaymentStatus('success')
|
// setPaymentStatus('success')
|
||||||
toast('پرداخت با موفقیت انجام شد', 'success')
|
// toast('پرداخت با موفقیت انجام شد', 'success')
|
||||||
} else if (response?.results?.paymentStatus === 'failed') {
|
// } else if (response?.results?.paymentStatus === 'failed') {
|
||||||
setPaymentStatus('failed')
|
// setPaymentStatus('failed')
|
||||||
toast('پرداخت ناموفق بود', 'error')
|
// toast('پرداخت ناموفق بود', 'error')
|
||||||
} else {
|
// } else {
|
||||||
setPaymentStatus('pending')
|
// setPaymentStatus('pending')
|
||||||
toast('وضعیت پرداخت در حال بررسی است', 'warning')
|
// toast('وضعیت پرداخت در حال بررسی است', 'warning')
|
||||||
}
|
// }
|
||||||
} catch (error: unknown) {
|
// } catch (error: unknown) {
|
||||||
setPaymentStatus('failed')
|
// setPaymentStatus('failed')
|
||||||
const errorMessage = (error as { response?: { data?: { message?: string } } })?.response?.data?.message || 'خطا در بررسی وضعیت پرداخت'
|
// const errorMessage = (error as { response?: { data?: { message?: string } } })?.response?.data?.message || 'خطا در بررسی وضعیت پرداخت'
|
||||||
toast(errorMessage, 'error')
|
// toast(errorMessage, 'error')
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
const getStatusIcon = () => {
|
// const getStatusIcon = () => {
|
||||||
switch (paymentStatus) {
|
// switch (paymentStatus) {
|
||||||
case 'success':
|
// case 'success':
|
||||||
return '✅'
|
// return '✅'
|
||||||
case 'failed':
|
// case 'failed':
|
||||||
return '❌'
|
// return '❌'
|
||||||
case 'pending':
|
// case 'pending':
|
||||||
return '⏳'
|
// return '⏳'
|
||||||
default:
|
// default:
|
||||||
return '🔄'
|
// return '🔄'
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
const getStatusMessage = () => {
|
// const getStatusMessage = () => {
|
||||||
switch (paymentStatus) {
|
// switch (paymentStatus) {
|
||||||
case 'success':
|
// case 'success':
|
||||||
return 'پرداخت با موفقیت انجام شد'
|
// return 'پرداخت با موفقیت انجام شد'
|
||||||
case 'failed':
|
// case 'failed':
|
||||||
return 'پرداخت ناموفق بود'
|
// return 'پرداخت ناموفق بود'
|
||||||
case 'pending':
|
// case 'pending':
|
||||||
return 'وضعیت پرداخت در حال بررسی است'
|
// return 'وضعیت پرداخت در حال بررسی است'
|
||||||
default:
|
// default:
|
||||||
return 'در حال بررسی وضعیت پرداخت...'
|
// return 'در حال بررسی وضعیت پرداخت...'
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
const getStatusColor = () => {
|
// const getStatusColor = () => {
|
||||||
switch (paymentStatus) {
|
// switch (paymentStatus) {
|
||||||
case 'success':
|
// case 'success':
|
||||||
return 'text-green-600'
|
// return 'text-green-600'
|
||||||
case 'failed':
|
// case 'failed':
|
||||||
return 'text-red-600'
|
// return 'text-red-600'
|
||||||
case 'pending':
|
// case 'pending':
|
||||||
return 'text-yellow-600'
|
// return 'text-yellow-600'
|
||||||
default:
|
// default:
|
||||||
return 'text-blue-600'
|
// return 'text-blue-600'
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
|
// return (
|
||||||
|
// <div className="mt-14 px-4 sm:px-8 lg:px-20">
|
||||||
|
// <div className="flex items-center justify-center min-h-[60vh]">
|
||||||
|
// <div className="text-center max-w-md w-full">
|
||||||
|
// <div className="text-6xl mb-6">
|
||||||
|
// {getStatusIcon()}
|
||||||
|
// </div>
|
||||||
|
|
||||||
|
// <h1 className={`text-2xl font-bold mb-4 ${getStatusColor()}`}>
|
||||||
|
// {getStatusMessage()}
|
||||||
|
// </h1>
|
||||||
|
|
||||||
|
// {orderData && (
|
||||||
|
// <div className="bg-gray-50 rounded-lg p-4 mb-6 text-right">
|
||||||
|
// <div className="text-sm text-gray-600 mb-2">اطلاعات سفارش:</div>
|
||||||
|
// <div className="text-sm">
|
||||||
|
// <div>شماره سفارش: {orderData.orderId}</div>
|
||||||
|
// <div>مبلغ پرداخت: {orderData.totalPaymentPrice?.toLocaleString()} تومان</div>
|
||||||
|
// <div>تاریخ: {new Date(orderData.createdAt).toLocaleDateString('fa-IR')}</div>
|
||||||
|
// </div>
|
||||||
|
// </div>
|
||||||
|
// )}
|
||||||
|
|
||||||
|
// <div className="space-y-3">
|
||||||
|
// {paymentStatus === 'success' && (
|
||||||
|
// <Button asChild className="w-full">
|
||||||
|
// <Link href="/profile/orders">
|
||||||
|
// مشاهده سفارشات
|
||||||
|
// </Link>
|
||||||
|
// </Button>
|
||||||
|
// )}
|
||||||
|
|
||||||
|
// <Button asChild variant="outline" className="w-full">
|
||||||
|
// <Link href="/">
|
||||||
|
// بازگشت به صفحه اصلی
|
||||||
|
// </Link>
|
||||||
|
// </Button>
|
||||||
|
|
||||||
|
// {paymentStatus === 'failed' && (
|
||||||
|
// <Button asChild variant="outline" className="w-full">
|
||||||
|
// <Link href="/cart/payment">
|
||||||
|
// تلاش مجدد برای پرداخت
|
||||||
|
// </Link>
|
||||||
|
// </Button>
|
||||||
|
// )}
|
||||||
|
// </div>
|
||||||
|
// </div>
|
||||||
|
// </div>
|
||||||
|
// </div>
|
||||||
|
// )
|
||||||
|
// }
|
||||||
|
|
||||||
|
// export default function PaymentCallbackWithLayout() {
|
||||||
|
// return (
|
||||||
|
// <Layout>
|
||||||
|
// <PaymentCallback />
|
||||||
|
// </Layout>
|
||||||
|
// )
|
||||||
|
// }
|
||||||
|
|
||||||
|
import React from 'react'
|
||||||
|
|
||||||
|
const page = () => {
|
||||||
return (
|
return (
|
||||||
<div className="mt-14 px-4 sm:px-8 lg:px-20">
|
<div>page</div>
|
||||||
<div className="flex items-center justify-center min-h-[60vh]">
|
|
||||||
<div className="text-center max-w-md w-full">
|
|
||||||
<div className="text-6xl mb-6">
|
|
||||||
{getStatusIcon()}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<h1 className={`text-2xl font-bold mb-4 ${getStatusColor()}`}>
|
|
||||||
{getStatusMessage()}
|
|
||||||
</h1>
|
|
||||||
|
|
||||||
{orderData && (
|
|
||||||
<div className="bg-gray-50 rounded-lg p-4 mb-6 text-right">
|
|
||||||
<div className="text-sm text-gray-600 mb-2">اطلاعات سفارش:</div>
|
|
||||||
<div className="text-sm">
|
|
||||||
<div>شماره سفارش: {orderData.orderId}</div>
|
|
||||||
<div>مبلغ پرداخت: {orderData.totalPaymentPrice?.toLocaleString()} تومان</div>
|
|
||||||
<div>تاریخ: {new Date(orderData.createdAt).toLocaleDateString('fa-IR')}</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
)}
|
|
||||||
|
|
||||||
<div className="space-y-3">
|
|
||||||
{paymentStatus === 'success' && (
|
|
||||||
<Button asChild className="w-full">
|
|
||||||
<Link href="/profile/orders">
|
|
||||||
مشاهده سفارشات
|
|
||||||
</Link>
|
|
||||||
</Button>
|
|
||||||
)}
|
|
||||||
|
|
||||||
<Button asChild variant="outline" className="w-full">
|
|
||||||
<Link href="/">
|
|
||||||
بازگشت به صفحه اصلی
|
|
||||||
</Link>
|
|
||||||
</Button>
|
|
||||||
|
|
||||||
{paymentStatus === 'failed' && (
|
|
||||||
<Button asChild variant="outline" className="w-full">
|
|
||||||
<Link href="/cart/payment">
|
|
||||||
تلاش مجدد برای پرداخت
|
|
||||||
</Link>
|
|
||||||
</Button>
|
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function PaymentCallbackWithLayout() {
|
export default page
|
||||||
return (
|
|
||||||
<Layout>
|
|
||||||
<PaymentCallback />
|
|
||||||
</Layout>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user