annoncement

This commit is contained in:
hamid zarghami
2025-03-04 10:51:02 +03:30
parent 002e420d85
commit 004c91dde4
4 changed files with 37 additions and 26 deletions
+1 -1
View File
@@ -237,7 +237,7 @@
"service": "سرویس", "service": "سرویس",
"status": "وضعیت ", "status": "وضعیت ",
"status_paid": "وضعیت پرداخت", "status_paid": "وضعیت پرداخت",
"PENDING": "در انتظار ", "PENDING": "در انتظار تایید ",
"PAID": "پرداخت شده", "PAID": "پرداخت شده",
"CANCELED": "لغو شده", "CANCELED": "لغو شده",
"EXPIRED": "منقضی شده", "EXPIRED": "منقضی شده",
+15 -12
View File
@@ -21,7 +21,7 @@ const AnnouncementtList: FC = () => {
const handleChange = (item: AnnoncementItemType) => { const handleChange = (item: AnnoncementItemType) => {
if (window.innerWidth < 1280) { if (window.innerWidth < 1280) {
navigate(Pages.announcement.detail + item.id) navigate(Pages.announcement.detail + item.announcement.id)
} else { } else {
setItemSelected(item) setItemSelected(item)
} }
@@ -79,29 +79,32 @@ const AnnouncementtList: FC = () => {
)}> )}>
<div className='flex justify-between'> <div className='flex justify-between'>
<div className='leading-6 text-xs xl:text-[12.5px] max-w-[70%]'> <div className='leading-6 text-xs xl:text-[12.5px] max-w-[70%]'>
{item.title} {item.announcement.title}
</div> </div>
<div className='flex gap-1'> <div className='flex gap-1'>
{ {
item.isImportant && item.announcement.isImportant &&
<StatusWithText <StatusWithText
variant='error' variant='error'
text={t('announcement.important')} text={t('announcement.important')}
/> />
} }
{/* <StatusWithText {
variant='success' !item.isRead &&
text={t('announcement.new')} <StatusWithText
/> */} variant='success'
text={t('announcement.new')}
/>
}
</div> </div>
</div> </div>
<div className='m-2 flex justify-between items-center text-[11px]'> <div className='m-2 flex justify-between items-center text-[11px]'>
<div dangerouslySetInnerHTML={{ __html: item.content }} className='max-w-[70%] truncate text-description'> <div dangerouslySetInnerHTML={{ __html: item.announcement.content }} className='max-w-[70%] truncate text-description'>
</div> </div>
<div className='text-description'> <div className='text-description'>
{moment(item.publishAt, 'jYYYY/jMM/jDD').format('jYYYY/jMM/jDD')} {moment(item.announcement.publishAt).format('jYYYY/jMM/jDD')}
</div> </div>
</div> </div>
</div> </div>
@@ -122,7 +125,7 @@ const AnnouncementtList: FC = () => {
متن اطلاعیه متن اطلاعیه
</div> </div>
{ {
itemSelected.isImportant && itemSelected.announcement.isImportant &&
<StatusWithText <StatusWithText
variant='error' variant='error'
text={t('announcement.important')} text={t('announcement.important')}
@@ -131,10 +134,10 @@ const AnnouncementtList: FC = () => {
</div> </div>
<div className='mt-8'> <div className='mt-8'>
{itemSelected.title} {itemSelected.announcement.title}
</div> </div>
<div dangerouslySetInnerHTML={{ __html: itemSelected.content }} className='mt-5 leading-7 text-xs font-light'> <div dangerouslySetInnerHTML={{ __html: itemSelected.announcement.content }} className='mt-5 leading-7 text-xs font-light'>
</div> </div>
</div> </div>
+14 -12
View File
@@ -1,16 +1,18 @@
export type AnnoncementItemType = { export type AnnoncementItemType = {
content: string;
createdAt: string;
id: string; id: string;
isImportant: boolean; createdAt: string;
isPublic: boolean;
isRead: boolean;
publishAt: string;
service: {
id: string;
name: string;
};
targetGroups: any[];
title: string;
updatedAt: string; updatedAt: string;
announcement: {
id: string;
createdAt: string;
title: string;
content: string;
publishAt: string;
targetService: {
id: string;
name: string;
};
isImportant: boolean;
};
isRead: boolean;
}; };
+7 -1
View File
@@ -1,4 +1,4 @@
import { useMutation, useQuery } from "@tanstack/react-query"; import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
import * as api from "../service/ReceiptService"; import * as api from "../service/ReceiptService";
import { import {
ApplyDiscountType, ApplyDiscountType,
@@ -29,8 +29,14 @@ export const useApproveInvoice = () => {
}; };
export const usePayInvoice = () => { export const usePayInvoice = () => {
const queryClient = useQueryClient();
return useMutation({ return useMutation({
mutationFn: (variables: string) => api.payInvoice(variables), mutationFn: (variables: string) => api.payInvoice(variables),
onSuccess: () => {
queryClient.refetchQueries({
queryKey: ["wallet-balance"],
});
},
}); });
}; };