diff --git a/src/pages/received/Components/MessageArchive.tsx b/src/pages/received/Components/MessageArchive.tsx
index eafa2fd..1b8ce0d 100644
--- a/src/pages/received/Components/MessageArchive.tsx
+++ b/src/pages/received/Components/MessageArchive.tsx
@@ -26,7 +26,7 @@ const MessageArchive: FC<{ isActiveArchive: boolean }> = ({ isActiveArchive }) =
})
}
setIsArchive(!isArchive)
- }} size={18} variant={isArchive ? 'Bold' : 'Outline'} color='black' />
+ }} className='lg:size-[18px] size-[20px]' variant={isArchive ? 'Bold' : 'Outline'} color='black' />
)
}
diff --git a/src/pages/received/Components/MessageFavorite.tsx b/src/pages/received/Components/MessageFavorite.tsx
index e8c4718..45aed16 100644
--- a/src/pages/received/Components/MessageFavorite.tsx
+++ b/src/pages/received/Components/MessageFavorite.tsx
@@ -25,7 +25,7 @@ const MessageFavorite: FC<{ flagged: boolean }> = ({ flagged }) => {
})
}
setIsFavorite(!isFavorite)
- }} size={18} variant={isFavorite ? 'Bold' : 'Outline'} color={isFavorite ? '#FFC107' : 'black'} />
+ }} className='lg:size-[18px] size-[20px]' variant={isFavorite ? 'Bold' : 'Outline'} color={isFavorite ? '#FFC107' : 'black'} />
)
}
diff --git a/src/pages/received/Components/MessageSpam.tsx b/src/pages/received/Components/MessageSpam.tsx
index d596839..cb97967 100644
--- a/src/pages/received/Components/MessageSpam.tsx
+++ b/src/pages/received/Components/MessageSpam.tsx
@@ -27,7 +27,7 @@ const MessageSpam: FC<{ isActiveSpam: boolean }> = ({ isActiveSpam }) => {
})
}
setIsSpam(!isSpam)
- }} size={18} variant={isSpam ? 'Bold' : 'Outline'} color='black' />
+ }} className='lg:size-[18px] size-[20px]' variant={isSpam ? 'Bold' : 'Outline'} color='black' />
)
}
diff --git a/src/pages/received/Components/MessageTrash.tsx b/src/pages/received/Components/MessageTrash.tsx
index 8f86b92..61a3cea 100644
--- a/src/pages/received/Components/MessageTrash.tsx
+++ b/src/pages/received/Components/MessageTrash.tsx
@@ -10,7 +10,7 @@ const MessageTrash: FC<{ isActiveTrash: boolean }> = ({ isActiveTrash }) => {
const { mutate: restoreMessage } = useRestoreMessage()
const navigate = useNavigate()
return (
-
{
+ {
setIsTrash(!isTrash)
if (isTrash) {
restoreMessage({ messageId: id || '', mailbox: mailbox || '' }, {
diff --git a/src/pages/received/Components/MessageUnread.tsx b/src/pages/received/Components/MessageUnread.tsx
index 8588939..40cccb0 100644
--- a/src/pages/received/Components/MessageUnread.tsx
+++ b/src/pages/received/Components/MessageUnread.tsx
@@ -18,7 +18,7 @@ const MessageUnread: FC = () => {
markAsRead({ messageId: id || '', mailbox: mailbox || '' })
}
setIsRead(!isRead)
- }} size={18} variant={isRead ? 'Outline' : 'Bold'} color='black' />
+ }} className='lg:size-[18px] size-[22px]' variant={isRead ? 'Outline' : 'Bold'} color='black' />
)
}
diff --git a/src/pages/received/Components/SummarizeModal.tsx b/src/pages/received/Components/SummarizeModal.tsx
new file mode 100644
index 0000000..0dea11a
--- /dev/null
+++ b/src/pages/received/Components/SummarizeModal.tsx
@@ -0,0 +1,77 @@
+import DefaulModal from '@/components/DefaulModal'
+import { InboxMessage } from '../types/Types'
+import Button from '@/components/Button'
+import { FC } from 'react'
+import Skeleton from 'react-loading-skeleton'
+import { useNavigate } from 'react-router-dom'
+
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
+const SummarizeModal: FC<{ open: boolean, onClose: () => void, isPending: boolean, item: InboxMessage, id: string, mailbox: string, data: any }> = ({ open, onClose, isPending, item, id, mailbox, data }) => {
+ const navigate = useNavigate()
+ return (
+
+
+ {isPending ? (
+
+ ) : (
+
+
+ موضوع:
+
+
+ {item.subject}
+
+
+
+
+ خلاصه متن:
+
+
+ {data?.data?.summary}
+
+
+
+ )}
+
+
+
+
+
+
+
+
+ )
+}
+
+export default SummarizeModal
\ No newline at end of file
diff --git a/src/pages/received/Components/Summerize.tsx b/src/pages/received/Components/Summerize.tsx
index c278b6f..cc60292 100644
--- a/src/pages/received/Components/Summerize.tsx
+++ b/src/pages/received/Components/Summerize.tsx
@@ -1,11 +1,8 @@
import { FC, useState } from 'react'
import { useSummarizeEmail } from '../hooks/useEmailData';
-import DefaulModal from '@/components/DefaulModal';
-import Button from '@/components/Button';
import { InboxMessage } from '@/pages/draft/types/DraftTypes';
import Intelligense from '@/assets/images/intelligense.svg'
-import Skeleton from 'react-loading-skeleton'
-import { useNavigate } from 'react-router-dom'
+import SummarizeModal from './SummarizeModal';
const Summerize: FC<{ id: string, mailbox: string, item: InboxMessage }> = ({ id, mailbox, item }) => {
@@ -13,7 +10,6 @@ const Summerize: FC<{ id: string, mailbox: string, item: InboxMessage }> = ({ id
const { mutate: summarizeEmail, isPending } = useSummarizeEmail();
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const [data, setData] = useState()
- const navigate = useNavigate()
const handleSummarizeEmail = () => {
setOpen(true)
@@ -28,72 +24,11 @@ const Summerize: FC<{ id: string, mailbox: string, item: InboxMessage }> = ({ id
return (
-

+
-
setOpen(false)}
- isHeader
- title_header='پیش نمایش ایمیل'
- >
-
- {isPending ? (
-
- ) : (
-
-
- موضوع:
-
-
- {item.subject}
-
-
-
-
- خلاصه متن:
-
-
- {data?.data?.summary}
-
-
-
- )}
-
-
-
-
-
-
-
+
setOpen(false)} isPending={isPending} item={item} id={id} mailbox={mailbox} data={data} />
)
}
diff --git a/src/pages/received/List.tsx b/src/pages/received/List.tsx
index 29cf3b8..f7bdba4 100644
--- a/src/pages/received/List.tsx
+++ b/src/pages/received/List.tsx
@@ -6,29 +6,35 @@ import { ColumnType } from '../../components/types/TableTypes';
import { InfoCircle, More, Refresh2, Trash, Edit, Archive, ArchiveTick, Star1 } from 'iconsax-react';
import { RowActionItem } from '../../components/RowActionsDropdown';
import { useNavigate } from 'react-router-dom';
-import { useGetInbox } from './hooks/useEmailData';
+import { useGetInbox, useSummarizeEmail } from './hooks/useEmailData';
import { InboxMessage } from './types/Types';
import { formatDate } from '@/config/func';
import MarkAsRead from '@/assets/images/mark_as_read.svg'
import { useEmailActions } from '@/hooks/useEmailActions';
import Favorite from './Components/Favorite';
import Summerize from './Components/Summerize';
+import Intelligense from '@/assets/images/intelligense.svg'
+import SummarizeModal from './Components/SummarizeModal';
const List: FC = () => {
+
const navigate = useNavigate();
const { t } = useTranslation();
const [currentPage, setCurrentPage] = useState(1);
const [filters, setFilters] = useState({});
const emailActions = useEmailActions();
+ const [openSummarizeModal, setOpenSummarizeModal] = useState(false);
+ const { mutate: summarizeEmail, isPending: isSummarizing, data: summarizeData } = useSummarizeEmail();
const { data: inboxData, isLoading, refetch, isFetching } = useGetInbox({
page: currentPage,
- limit: 25,
+ limit: 10,
...filters
});
const [selectedMessages, setSelectedMessages] = useState([]);
+ const [selectedMessage, setSelectedMessage] = useState(null);
const columns: ColumnType[] = [
{
@@ -152,6 +158,15 @@ const List: FC = () => {
];
const getRowActions = (message: InboxMessage): RowActionItem[] => [
+ {
+ label: 'مشاهده خلاصه',
+ icon:
,
+ onClick: () => {
+ setSelectedMessage(message)
+ setOpenSummarizeModal(true)
+ summarizeEmail({ messageId: message.id, mailbox: message.mailbox })
+ },
+ },
{
label: message.seen ? 'علامتگذاری به عنوان خوانده نشده' : 'علامتگذاری به عنوان خوانده شده',
icon: ,
@@ -231,6 +246,18 @@ const List: FC = () => {
} : undefined}
/>
+ {selectedMessage && (
+ setOpenSummarizeModal(false)}
+ isPending={isSummarizing}
+ item={selectedMessage}
+ id={selectedMessage.id.toString()}
+ mailbox={selectedMessage.mailbox}
+ data={summarizeData}
+ />
+ )}
+
)
}
diff --git a/src/pages/search/List.tsx b/src/pages/search/List.tsx
index b3d565a..f9eda69 100644
--- a/src/pages/search/List.tsx
+++ b/src/pages/search/List.tsx
@@ -173,7 +173,7 @@ const List: FC = () => {