diff --git a/src/components/Layouts/sidebar/data/index.ts b/src/components/Layouts/sidebar/data/index.ts
index 3c781b2..1f7c361 100644
--- a/src/components/Layouts/sidebar/data/index.ts
+++ b/src/components/Layouts/sidebar/data/index.ts
@@ -73,13 +73,13 @@ export const NAV_DATA: NavData = [
icon: Icons.NotificationIcon,
items: [],
},
- // {
- // title: "Contact Us",
- // url: "/contact-us",
- // icon: Icons.CallIncome,
- // items: [],
- // visible: false,
- // },
+ {
+ title: "Contact Us",
+ url: "/contact-us",
+ icon: Icons.CallIncome,
+ items: [],
+ visible: true,
+ },
{
title: "Marketing",
url: "/marketing",
diff --git a/src/components/Tables/contact-us/index.tsx b/src/components/Tables/contact-us/index.tsx
index 521b02d..c3c5131 100644
--- a/src/components/Tables/contact-us/index.tsx
+++ b/src/components/Tables/contact-us/index.tsx
@@ -10,9 +10,10 @@ import {
} from "@/components/ui/table";
import TableSkeleton from "@/components/ui/TableSkeleton";
import { useContactUsListPresenter } from "./useContactUsListPresenter";
+import { unixToDate } from "@/utils/shared";
const ContactUsTable = () => {
- const { columns, pathname, router, isPending, data } =
+ const { columns, pathname, router, isPending, contacts } =
useContactUsListPresenter();
return (
@@ -33,13 +34,35 @@ const ContactUsTable = () => {
{isPending &&
}
-
- hjgfjhg
-
+ {contacts?.map((item, index) => (
+
+
+ {index + 1}
+
+
+ {item?.full_name}
+
+
+ {item?.email}
+
+
+ {item?.status}
+
+
+ {item?.phone}
+
+
+ {unixToDate({ unix: item?.created_at })}
+
+
+ ))}
diff --git a/src/components/Tables/contact-us/useContactUsListPresenter.ts b/src/components/Tables/contact-us/useContactUsListPresenter.ts
index afc6940..f9ddddf 100644
--- a/src/components/Tables/contact-us/useContactUsListPresenter.ts
+++ b/src/components/Tables/contact-us/useContactUsListPresenter.ts
@@ -2,7 +2,15 @@
import { useReadAllContactUs } from "@/hooks/queries/useContactUsQuery";
import { usePathname, useRouter } from "next/navigation";
export const useContactUsListPresenter = () => {
- const columns: string[] = ["row", "actions"];
+ const columns: string[] = [
+ "row",
+ "Full name",
+ "email",
+ "status",
+ "phone",
+ "created at",
+ "actions",
+ ];
const pathname = usePathname();
const router = useRouter();
const { data, isPending } = useReadAllContactUs();
@@ -11,6 +19,6 @@ export const useContactUsListPresenter = () => {
pathname,
router,
isPending,
- data,
+ contacts: data?.data.contacts,
};
};
diff --git a/src/lib/api/services/contact-us-service.ts b/src/lib/api/services/contact-us-service.ts
index 5bbe2c1..7e6758b 100644
--- a/src/lib/api/services/contact-us-service.ts
+++ b/src/lib/api/services/contact-us-service.ts
@@ -1,8 +1,9 @@
import api from "../axios";
import { API_ENDPOINTS } from "../endpoints";
+import { TContactApiResponseSchema } from "../types/TContacts";
export const contactUsService = {
- getAllContactUs: async () => {
+ getAllContactUs: async (): Promise
=> {
try {
return (await api.get(API_ENDPOINTS.CONTACT_US.READ_ALL)).data;
} catch (error) {
diff --git a/src/lib/api/types/TContacts.ts b/src/lib/api/types/TContacts.ts
new file mode 100644
index 0000000..3a31912
--- /dev/null
+++ b/src/lib/api/types/TContacts.ts
@@ -0,0 +1,24 @@
+import { z } from "zod";
+import { createApiResponseSchema } from "./Factory";
+const contactsListSchema = z.object({
+ admin_notes: z.string(),
+ created_at: z.number(),
+ email: z.string(),
+ full_name: z.string(),
+ id: z.string(),
+ message: z.string(),
+ phone: z.string(),
+ resolved_at: z.number(),
+ resolved_by: z.string(),
+ status: z.string(),
+ updated_at: z.number(),
+});
+
+export const contactsListResponseSchema = z.object({
+ contacts: z.array(contactsListSchema),
+});
+export const contactsApiResponse = createApiResponseSchema(
+ contactsListResponseSchema,
+);
+
+export type TContactApiResponseSchema = z.infer;