sozsoft-platform/ui/src/components/orders/OrderSuccess.tsx

55 lines
2.3 KiB
TypeScript
Raw Normal View History

2026-02-24 20:44:16 +00:00
import React from 'react'
import { FaCheckCircle, FaArrowLeft } from 'react-icons/fa'
import { useNavigate } from 'react-router-dom'
import { ROUTES_ENUM } from '@/routes/route.constant'
import { useLocalization } from '@/utils/hooks/useLocalization'
interface OrderSuccessProps {
orderId: string
onBackToShop: () => void
}
export const OrderSuccess: React.FC<OrderSuccessProps> = ({ orderId, onBackToShop }) => {
const navigate = useNavigate()
const { translate } = useLocalization()
return (
<div className="max-w-2xl mx-auto text-center">
2026-05-26 16:09:26 +00:00
<div className="bg-white rounded-xl shadow-lg border border-gray-200 p-8 dark:border-gray-700 dark:bg-gray-900 dark:shadow-gray-950/40">
2026-02-24 20:44:16 +00:00
<div className="mb-6">
<FaCheckCircle className="w-16 h-16 text-green-500 mx-auto mb-4" />
2026-05-26 16:09:26 +00:00
<h2 className="text-xl font-bold text-gray-900 dark:text-gray-100">
2026-02-24 20:44:16 +00:00
{translate('::Public.order.success.title')}
</h2>
2026-05-26 16:09:26 +00:00
<p className="text-gray-600 dark:text-gray-300">
2026-02-24 20:44:16 +00:00
{translate('::Public.order.success.number')}{' '}
<span className="font-semibold text-blue-600">#{orderId}</span>
</p>
</div>
2026-05-26 16:09:26 +00:00
<div className="bg-green-50 border border-green-200 rounded-lg p-4 mb-6 dark:border-green-900/60 dark:bg-green-950/30">
<h3 className="font-semibold text-green-800 mb-2 dark:text-green-300">
2026-02-24 20:44:16 +00:00
{translate('::Public.order.success.nextSteps')}
</h3>
2026-05-26 16:09:26 +00:00
<ul className="text-sm text-green-700 space-y-1 text-left dark:text-green-200">
2026-02-24 20:44:16 +00:00
<li> {translate('::Public.order.success.step1')}</li>
<li> {translate('::Public.order.success.step2')}</li>
<li> {translate('::Public.order.success.step3')}</li>
</ul>
</div>
<div className="flex flex-col sm:flex-row gap-4 items-center justify-center">
<button
onClick={() => navigate(ROUTES_ENUM.public.home)}
2026-05-26 16:09:26 +00:00
className="flex items-center justify-center px-6 py-3 border border-gray-300 text-gray-700 rounded-lg hover:bg-gray-50 transition-colors dark:border-gray-700 dark:text-gray-200 dark:hover:bg-gray-800"
2026-02-24 20:44:16 +00:00
>
<FaArrowLeft className="w-4 h-4 mr-2" />
{translate('::Public.notFound.button')}
</button>
</div>
</div>
</div>
)
}