feat(notifications): Auto-mark as read and enhance UI
This commit improves the user experience for notifications by automatically marking them as read upon viewing and refining the UI. - Notifications are now marked as read immediately when the modal is opened, removing the need for an extra confirmation click. - The "Mark as read" button has been removed from the modal to streamline the user flow. - In the notification history table, a new reusable `Boolean` component is used to display the 'seen' status, replacing the previous icon-based implementation. - Long messages in the history table are now truncated to improve readability and prevent layout issues. - Added hover effects to the notification dropdown list for better visual feedback. - Standardized the required field indicator color to use the `text-error` class for consistency.
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
"use client";
|
||||
import { CheckIcon, CrossIcon, EyeIcon } from "@/assets/icons";
|
||||
import { EyeIcon } from "@/assets/icons";
|
||||
import { ShowcaseSection } from "@/components/Layouts/showcase-section";
|
||||
import Pagination from "@/components/ui/pagination";
|
||||
import Status from "@/components/ui/Status";
|
||||
@@ -13,9 +13,11 @@ import {
|
||||
} from "@/components/ui/table";
|
||||
import TableSkeleton from "@/components/ui/TableSkeleton";
|
||||
import { _TooltipDefaultParams } from "@/constants/tooltip";
|
||||
import { unixToDate } from "@/utils/shared";
|
||||
import { truncateString, unixToDate } from "@/utils/shared";
|
||||
import Link from "next/link";
|
||||
import { Tooltip } from "react-tooltip";
|
||||
|
||||
import Boolean from "@/components/ui/Boolean";
|
||||
import useNotificationHistoryTablePresenter from "./useNotificationHistoryTablePresenter";
|
||||
|
||||
const NotificationHistoryTable = () => {
|
||||
@@ -64,7 +66,9 @@ const NotificationHistoryTable = () => {
|
||||
unix: item.created_at,
|
||||
})}
|
||||
</TableCell>
|
||||
<TableCell colSpan={100}>{item.message}</TableCell>
|
||||
<TableCell colSpan={100} className="truncate">
|
||||
{truncateString(item.message, 20, 20)}
|
||||
</TableCell>
|
||||
<TableCell className="capitalize" colSpan={100}>
|
||||
{item.priority}
|
||||
</TableCell>
|
||||
@@ -72,11 +76,7 @@ const NotificationHistoryTable = () => {
|
||||
{item.type}
|
||||
</TableCell>
|
||||
<TableCell className="capitalize" colSpan={100}>
|
||||
{item.seen ? (
|
||||
<CheckIcon fill="green" width={15} height={15} />
|
||||
) : (
|
||||
<CrossIcon width={20} fill="red" />
|
||||
)}
|
||||
<Boolean value={item.seen} />
|
||||
</TableCell>
|
||||
<TableCell colSpan={100}>
|
||||
<Status status={item.status}>{item.status}</Status>
|
||||
|
||||
Reference in New Issue
Block a user