transaction detail

This commit is contained in:
hamid zarghami
2025-03-04 08:49:33 +03:30
parent fabe9b2c85
commit 8f6729024f
8 changed files with 52 additions and 17 deletions
+2 -2
View File
@@ -1,4 +1,4 @@
VITE_TOKEN_NAME = 'dsc_token' VITE_TOKEN_NAME = 'dsc_token'
VITE_REFRESH_TOKEN_NAME = 'dsc_refresh_token' VITE_REFRESH_TOKEN_NAME = 'dsc_refresh_token'
VITE_BASE_URL = 'https://api.danakcorp.com' # VITE_BASE_URL = 'https://api.danakcorp.com'
# VITE_BASE_URL = 'http://192.168.1.124:4000' VITE_BASE_URL = 'http://192.168.0.216:4000'
+1 -1
View File
@@ -82,7 +82,7 @@ define(['./workbox-e7681877'], (function (workbox) { 'use strict';
"revision": "3ca0b8505b4bec776b69afdba2768812" "revision": "3ca0b8505b4bec776b69afdba2768812"
}, { }, {
"url": "index.html", "url": "index.html",
"revision": "0.p2q1at3f1to" "revision": "0.kim5d4lsg4"
}], {}); }], {});
workbox.cleanupOutdatedCaches(); workbox.cleanupOutdatedCaches();
workbox.registerRoute(new workbox.NavigationRoute(workbox.createHandlerBoundToURL("index.html"), { workbox.registerRoute(new workbox.NavigationRoute(workbox.createHandlerBoundToURL("index.html"), {
+1 -1
View File
@@ -36,7 +36,7 @@ const ServiceItem: FC<Props> = (props: Props) => {
<Button <Button
className='h-8 w-fit px-5 text-xs text-black bg-description bg-opacity-20 rounded-xl' className='h-8 w-fit px-5 text-xs text-black bg-description bg-opacity-20 rounded-xl'
> >
<div className='flex gap-2'> <div className='flex gap-2 whitespace-nowrap'>
<div>{t('service.detail')}</div> <div>{t('service.detail')}</div>
<ArrowLeft color='black' size={16} /> <ArrowLeft color='black' size={16} />
</div> </div>
+1 -1
View File
@@ -273,7 +273,7 @@
"transaction2": "تراکنش", "transaction2": "تراکنش",
"type_deposit": "نوع واریز", "type_deposit": "نوع واریز",
"status": "وضعیت", "status": "وضعیت",
"success_paid": "پرداخت موفق", "success_paid": "موفق",
"print": "پرینت", "print": "پرینت",
"download": "دانلود", "download": "دانلود",
"type_getway": "نوع درگاه", "type_getway": "نوع درگاه",
+1 -1
View File
@@ -116,7 +116,7 @@ const TransactionList: FC = () => {
<Td text={NumberFormat(+item.amount)} /> <Td text={NumberFormat(+item.amount)} />
<Td text={moment(item.createdAt).format('jYYYY-jMM-jDD')} /> <Td text={moment(item.createdAt).format('jYYYY-jMM-jDD')} />
<Td text={''}> <Td text={''}>
<Detail /> <Detail id={item.id} />
</Td> </Td>
</tr> </tr>
) )
+33 -11
View File
@@ -4,11 +4,21 @@ import DefaulModal from '../../../components/DefaulModal'
import { useTranslation } from 'react-i18next' import { useTranslation } from 'react-i18next'
import StatusCircle from '../../../components/StatusCircle' import StatusCircle from '../../../components/StatusCircle'
import Button from '../../../components/Button' import Button from '../../../components/Button'
import { useGetTransactionDetail } from '../hooks/useTransactionData'
import { NumberFormat } from '../../../config/func'
import moment from 'moment-jalaali'
const Detail: FC = () => { type Props = {
id: string
}
const Detail: FC<Props> = ({ id }) => {
const { t } = useTranslation('global') const { t } = useTranslation('global')
const [showModal, setShowModal] = useState<boolean>(false) const [showModal, setShowModal] = useState<boolean>(false)
const { data: d } = useGetTransactionDetail(id, showModal)
const data = d?.data?.transaction
return ( return (
<div> <div>
@@ -18,7 +28,7 @@ const Detail: FC = () => {
open={showModal} open={showModal}
close={() => setShowModal(false)} close={() => setShowModal(false)}
isHeader isHeader
title_header={`${t('transaction.transaction2')} ۱۲۳۴۵۵`} title_header={`${t('transaction.transaction2')}`}
> >
<div className='my-10'> <div className='my-10'>
<div className='flex xl:flex-row flex-col gap-8'> <div className='flex xl:flex-row flex-col gap-8'>
@@ -30,7 +40,14 @@ const Detail: FC = () => {
</div> </div>
</div> </div>
<div> <div>
واریز شتابی {
data?.payment ?
' واریز شتابی'
:
data?.depositRequest ?
t('wallet.' + data?.depositRequest?.type.toLowerCase())
: '-'
}
</div> </div>
</div> </div>
<div className='flex-1 px-6 h-10 flex justify-between items-center'> <div className='flex-1 px-6 h-10 flex justify-between items-center'>
@@ -57,7 +74,12 @@ const Detail: FC = () => {
</div> </div>
</div> </div>
<div> <div>
آنلاین بانک سامان {
data?.payment ?
data?.payment?.paymentGateway?.nameFa
:
'-'
}
</div> </div>
</div> </div>
<div className='flex-1 px-6 h-10 flex justify-between items-center'> <div className='flex-1 px-6 h-10 flex justify-between items-center'>
@@ -68,7 +90,7 @@ const Detail: FC = () => {
</div> </div>
</div> </div>
<div className='flex gap-2 items-center'> <div className='flex gap-2 items-center'>
۱۰,۰۰۰,۰۰۰ {t('toman')} {NumberFormat(data?.amount)} {t('toman')}
</div> </div>
</div> </div>
</div> </div>
@@ -82,7 +104,7 @@ const Detail: FC = () => {
</div> </div>
</div> </div>
<div> <div>
مهرداد مظفری {data?.wallet?.user?.firstName} {data?.wallet?.user?.lastName}
</div> </div>
</div> </div>
<div className='flex-1 px-6 h-10 flex justify-between items-center'> <div className='flex-1 px-6 h-10 flex justify-between items-center'>
@@ -93,7 +115,7 @@ const Detail: FC = () => {
</div> </div>
</div> </div>
<div className='flex gap-2 items-center'> <div className='flex gap-2 items-center'>
۱۴۰۳/۰۹/۳۰ {moment(data?.createdAt).format('jYYYY/jMM/jDD')}
</div> </div>
</div> </div>
</div> </div>
@@ -105,8 +127,8 @@ const Detail: FC = () => {
{t('transaction.tracking_number')} {t('transaction.tracking_number')}
</div> </div>
</div> </div>
<div> <div className='truncate max-w-20'>
bbd704c-۱۲۳۴۵۶ {data?.id}
</div> </div>
</div> </div>
<div className='flex-1 px-6 h-10 flex justify-between items-center'> <div className='flex-1 px-6 h-10 flex justify-between items-center'>
@@ -117,7 +139,7 @@ const Detail: FC = () => {
</div> </div>
</div> </div>
<div className='flex gap-2 items-center'> <div className='flex gap-2 items-center'>
bbd704c-۱۲۳۴۵۶ {data?.numericId}
</div> </div>
</div> </div>
</div> </div>
@@ -131,7 +153,7 @@ const Detail: FC = () => {
</div> </div>
</div> </div>
<div> <div>
- {data?.description}
</div> </div>
</div> </div>
</div> </div>
@@ -7,3 +7,11 @@ export const useGetTransactions = (page: number) => {
queryFn: () => api.getTransactions(page), queryFn: () => api.getTransactions(page),
}); });
}; };
export const useGetTransactionDetail = (id: string, enabled: boolean) => {
return useQuery({
queryKey: ["transactions-detail", id],
queryFn: () => api.getTransactionDetail(id),
enabled: enabled,
});
};
@@ -4,3 +4,8 @@ export const getTransactions = async (page: number) => {
const { data } = await axios.get(`/wallets/transactions?page=${page}`); const { data } = await axios.get(`/wallets/transactions?page=${page}`);
return data; return data;
}; };
export const getTransactionDetail = async (id: string) => {
const { data } = await axios.get(`/wallets/transactions/${id}`);
return data;
};