import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "@/components/ui/card"; import { api } from "@/utils/api"; import { MoreHorizontal, Users } from "lucide-react"; import { AddUser } from "./add-user"; import { DeleteUser } from "./delete-user"; import { format } from "date-fns"; import { useEffect, useState } from "react"; import { AddUserPermissions } from "./add-permissions"; import copy from "copy-to-clipboard"; import { toast } from "sonner"; import { Table, TableBody, TableCaption, TableCell, TableHead, TableHeader, TableRow, } from "@/components/ui/table"; import { Badge } from "@/components/ui/badge"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import { Button } from "@/components/ui/button"; export const ShowUsers = () => { const { data } = api.user.all.useQuery(); const [url, setUrl] = useState(""); useEffect(() => { setUrl(document.location.origin); }, []); return (
Users Add, manage and delete users.
{data && data.length > 0 && (
)}
{data?.length === 0 ? (
To create a user, you need to add:
) : (
See all users Email Status 2FA Expiration Actions {data?.map((user) => { return ( {user.auth.email} {user.isRegistered ? "Registered" : "Not Registered"} {user.auth.is2FAEnabled ? "2FA Enabled" : "2FA Not Enabled"} {format(new Date(user.expirationDate), "PPpp")} Actions {!user.isRegistered && ( { copy( `${origin}/invitation?token=${user.token}`, ); toast.success( "Invitation Copied to clipboard", ); }} > Copy Invitation )} {user.isRegistered && ( )} ); })}
)}
); };