diff --git a/src/components/Filters.tsx b/src/components/Filters.tsx index 04e307f..c3b713e 100644 --- a/src/components/Filters.tsx +++ b/src/components/Filters.tsx @@ -3,6 +3,7 @@ import { Filter, CloseCircle } from 'iconsax-react'; import DatePicker from './DatePicker'; import Input from './Input'; import Select, { ItemsSelectType } from './Select'; +import moment from 'moment-jalaali' // تعریف نوع داده برای فیلدهای مختلف export type DateFieldType = { @@ -91,7 +92,7 @@ const Filters: FC = ({ handleChange(field.name, value)} + onChange={(value) => handleChange(field.name, moment(value, 'jYYYY/jMM/jDD').format('YYYY-MM-DD'))} defaultValue={currentValue || field.defaultValue || ''} /> ); diff --git a/src/pages/received/List.tsx b/src/pages/received/List.tsx index 188dc5c..45a89f8 100644 --- a/src/pages/received/List.tsx +++ b/src/pages/received/List.tsx @@ -202,16 +202,16 @@ const List: FC = () => { => { - const { data } = await axios.get(`/email/messages/inbox`, { params: query }); + console.log("query", query); + + const isSearch = + !!query.search || + !!query.datestart || + query.dateend || + query.unseen || + query.from; + const url = isSearch ? "search" : "messages/inbox"; + + const { data } = await axios.get(`/email/${url}`, { + params: query, + }); return data; }; @@ -41,105 +53,75 @@ export const getMessageDetail = async ( return data.data.message; }; -export const deleteMessage = async (messageId: string): Promise => { +export const deleteMessage = async (messageId: string) => { const { data } = await axios.delete(`/email/messages/${messageId}`); return data; }; -export const moveToArchive = async ( - messageId: string, - mailbox: string -): Promise => { +export const moveToArchive = async (messageId: string, mailbox: string) => { const { data } = await axios.patch( `/email/messages/${messageId}/archive?mailbox=${mailbox}` ); return data; }; -export const moveToTrash = async ( - messageId: string, - mailbox: string -): Promise => { +export const moveToTrash = async (messageId: string, mailbox: string) => { const { data } = await axios.patch( `/email/messages/${messageId}/trash?mailbox=${mailbox}` ); return data; }; -export const moveToFavorite = async ( - messageId: string, - mailbox: string -): Promise => { +export const moveToFavorite = async (messageId: string, mailbox: string) => { const { data } = await axios.patch( `/email/messages/${messageId}/favorite?mailbox=${mailbox}` ); return data; }; -export const moveToJunk = async ( - messageId: string, - mailbox: string -): Promise => { +export const moveToJunk = async (messageId: string, mailbox: string) => { const { data } = await axios.patch( `/email/messages/${messageId}/junk?mailbox=${mailbox}` ); return data; }; -export const moveToNotJunk = async ( - messageId: string, - mailbox: string -): Promise => { +export const moveToNotJunk = async (messageId: string, mailbox: string) => { const { data } = await axios.patch( `/email/messages/${messageId}/not-junk?mailbox=${mailbox}` ); return data; }; -export const restoreMessage = async ( - messageId: string, - mailbox: string -): Promise => { +export const restoreMessage = async (messageId: string, mailbox: string) => { const { data } = await axios.patch( `/email/messages/${messageId}/restore?mailbox=${mailbox}` ); return data; }; -export const unFavoriteMessage = async ( - messageId: string, - mailbox: string -): Promise => { +export const unFavoriteMessage = async (messageId: string, mailbox: string) => { const { data } = await axios.patch( `/email/messages/${messageId}/unfavorite?mailbox=${mailbox}` ); return data; }; -export const unArchiveMessage = async ( - messageId: string, - mailbox: string -): Promise => { +export const unArchiveMessage = async (messageId: string, mailbox: string) => { const { data } = await axios.patch( `/email/messages/${messageId}/unarchive?mailbox=${mailbox}` ); return data; }; -export const markAsRead = async ( - messageId: string, - mailbox: string -): Promise => { +export const markAsRead = async (messageId: string, mailbox: string) => { const { data } = await axios.patch( `/email/messages/${messageId}/seen?mailbox=${mailbox}` ); return data; }; -export const markAsUnread = async ( - messageId: string, - mailbox: string -): Promise => { +export const markAsUnread = async (messageId: string, mailbox: string) => { const { data } = await axios.patch( `/email/messages/${messageId}/unseen?mailbox=${mailbox}` ); diff --git a/src/pages/received/types/Types.ts b/src/pages/received/types/Types.ts index da1c59d..9cc66ee 100644 --- a/src/pages/received/types/Types.ts +++ b/src/pages/received/types/Types.ts @@ -56,15 +56,15 @@ export interface SendEmailDto { export interface MessageListQueryDto { page?: number; limit?: number; - order?: string; search?: string; from?: string; subject?: string; - dateFrom?: string; - dateTo?: string; - hasAttachment?: boolean; - isRead?: boolean; - isFlagged?: boolean; + datestart?: string; + dateend?: string; + attachments?: boolean; + unseen?: boolean; + flagged?: boolean; + order?: "asc" | "desc"; } // Updated types based on actual API response