import { ExternalUserDto } from "@/super-admin/dto/ExternalUsersDto"; import { format } from "date-fns"; import { ColumnDef } from "@tanstack/react-table"; import { Badge } from "@/shared/common/ui/badge"; import { UserStatusToggleConfirm } from "./UserStatusToggleConfirm"; import { t } from "i18next"; import { useNavigate } from "react-router-dom"; export const ExternalUsersColumnDefn = ( localizedName: (name?: { am: string; en: string }) => string, navigate: ReturnType ): ColumnDef[] => { return [ { accessorKey: "name.en", header: () => t("organization.username"), cell: ({ row }) => (
{localizedName(row.original.name)}
), }, { accessorKey: "updatedAt", header: () => t("organization.updatedOn"), cell: ({ row }) => (
{format(new Date(row.original.updatedAt), "MMM dd, yyyy")}
), }, { accessorKey: "userType", header: () => "User Type", cell: ({ row }) => { const userType = row.original.userType; const displayText = userType === "external_organization" ? "External Organization" : "Employee"; return (
{displayText}
); }, }, { id: "status", header: () => t("dashboard.Status"), cell: ({ row }) => { const { status } = row.original; const getStatusColor = (status: string) => { switch (status) { case "accepted": return "bg-primary-100 text-primary-600 hover:bg-primary-100 dark:bg-primary-900/40 dark:text-primary-300 dark:hover:bg-primary-900/50"; case "rejected": return "bg-red-100 text-red-600 hover:bg-red-100 dark:bg-red-900/40 dark:text-red-300 dark:hover:bg-red-900/50"; case "pending": default: return "bg-blue-100 text-blue-600 hover:bg-blue-100 dark:bg-blue-900/40 dark:text-blue-300 dark:hover:bg-blue-900/50"; } }; const getStatusText = (status: string) => { switch (status) { case "accepted": return "Accepted"; case "rejected": return "Rejected"; case "pending": default: return t("statusBar.Pending"); } }; return (
{getStatusText(status)}
); }, }, { id: "actions", header: () => t("userRecord.Actions"), cell: ({ row }) => { const { id, status } = row.original; const handleViewUploads = () => { navigate(`/user-management/external_users/view/${id}`); }; // const handleEdit = () => { // navigate(`/user-management/external_users/edit/${id}`); // }; return (
{/* */}
); }, }, ]; };