+
{currentNotification?.title}
{currentNotification?.message}
diff --git a/src/components/Layouts/header/notification/notification-list.tsx b/src/components/Layouts/header/notification/notification-list.tsx
index 9f3fb8e..d80d11f 100644
--- a/src/components/Layouts/header/notification/notification-list.tsx
+++ b/src/components/Layouts/header/notification/notification-list.tsx
@@ -16,7 +16,7 @@ const NotificationList = ({
setUnreadNotificationCount,
onNotificationClick,
}: IProps) => {
- const { data, isLoading } = useGetMyNotifications({ seen: false });
+ const { data, isLoading } = useGetMyNotifications({seen:false});
useEffect(() => {
setUnreadNotificationCount(data?.data.length ?? 0);
}, [data, isLoading]);
diff --git a/src/components/Tables/notification-history/index.tsx b/src/components/Tables/notification-history/index.tsx
index 83d3462..e64ee0b 100644
--- a/src/components/Tables/notification-history/index.tsx
+++ b/src/components/Tables/notification-history/index.tsx
@@ -1,5 +1,5 @@
"use client";
-import { EyeIcon } from "@/assets/icons";
+import { CheckIcon, CrossIcon, EyeIcon } from "@/assets/icons";
import { ShowcaseSection } from "@/components/Layouts/showcase-section";
import Pagination from "@/components/ui/pagination";
import Status from "@/components/ui/Status";
@@ -13,7 +13,7 @@ import {
} from "@/components/ui/table";
import TableSkeleton from "@/components/ui/TableSkeleton";
import { _TooltipDefaultParams } from "@/constants/tooltip";
-import { isoStringToDate } from "@/utils/shared";
+import { unixToDate } from "@/utils/shared";
import Link from "next/link";
import { Tooltip } from "react-tooltip";
import useNotificationHistoryTablePresenter from "./useNotificationHistoryTablePresenter";
@@ -59,9 +59,9 @@ const NotificationHistoryTable = () => {
{item.title}
{item.event_type}
- {isoStringToDate({
+ {unixToDate({
hasTime: true,
- isoString: item.created_at,
+ unix: item.created_at,
})}
{item.message}
@@ -72,7 +72,7 @@ const NotificationHistoryTable = () => {
{item.type}
- {item.seen ? "Seen" : "Unseen"}
+ {item.seen ? : }
{item.status}
diff --git a/src/components/ui/notification-details-card.tsx b/src/components/ui/notification-details-card.tsx
new file mode 100644
index 0000000..54332f7
--- /dev/null
+++ b/src/components/ui/notification-details-card.tsx
@@ -0,0 +1,67 @@
+"use client";
+import { TNotificationDetailsResponse } from "@/lib/api/types/NotificationHistory";
+import { capitalize, unixToDate } from "@/utils/shared";
+import { FC } from "react";
+import IsVisible from "./IsVisible";
+import Status from "./Status";
+
+interface IProps {
+ data: TNotificationDetailsResponse;
+}
+
+export const NotificationDetailsCard: FC = ({ data }) => {
+ return (
+
+
+
+
+
+
+
+ {capitalize(data.priority ?? "")}
+
+
+
+
+ {capitalize(data.type ?? "")}
+
+
+
+
+
+
+ {data.seen ? "Yes" : "No"}
+
+
+
+
+
+
+ {data.message}
+
+
+
+ );
+};
+
+const DetailItem: FC<{
+ title: string;
+ value?: string;
+ children?: React.ReactNode;
+}> = ({ title, value, children }) => {
+ return (
+
+
+ {title}
+
+ {value ?
{value}
: null}
+ {children ?
{children}
: null}
+
+ );
+};
diff --git a/src/lib/api/types/NotificationHistory.ts b/src/lib/api/types/NotificationHistory.ts
index e6bb824..c6a4b86 100644
--- a/src/lib/api/types/NotificationHistory.ts
+++ b/src/lib/api/types/NotificationHistory.ts
@@ -8,7 +8,7 @@ import { z } from "zod";
import { createApiResponseSchema } from "./Factory";
export const notificationSchema = z.object({
- created_at: z.string(),
+ created_at: z.number(),
event_type: z.string(),
id: z.string(),
image: z.string(),
@@ -35,6 +35,24 @@ export const notificationSchema = z.object({
type: z.string(),
updated_at: z.string(),
user_id: z.string(),
+ recipient: z
+ .object({
+ id: z.string(),
+ full_name: z.string(),
+ username: z.string(),
+ email: z.string(),
+ role: z.string(),
+ status: z.string(),
+ department: z.string(),
+ position: z.string(),
+ phone: z.string(),
+ profile_image: z.string(),
+ is_verified: z.boolean(),
+ last_login_at: z.number(),
+ updated_at: z.number(),
+ created_at: z.number(),
+ })
+ .optional(),
});
const createNotificationCredentialsSchema = z.object({
channels: z.array(z.enum(NotificationChannels)),