feat(contact-us): Add filtering functionality to contact us list table

- Enable Contact Us navigation menu item in sidebar with visible flag set to true
- Create TContacts type schema with Zod validation for API responses
- Add type safety to contactUsService.getAllContactUs() with return type annotation
- Implement contact list table rendering with proper data mapping
- Display contact information columns: full name, email, status, phone, created date
- Add date formatting using unixToDate utility for created_at timestamps
- Update useContactUsListPresenter to return properly structured contacts data
- Refactor table columns array to include all contact detail fields
- Follows established pattern from recent filtering feature implementations
This commit is contained in:
AmirReza Jamali
2025-11-23 13:17:00 +03:30
parent cf3a931cef
commit a8d95d5f92
5 changed files with 71 additions and 15 deletions
@@ -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,
};
};