"use client" import * as React from "react" import { IconUserPlus } from "@tabler/icons-react" import { toast } from "sonner" import { getUsers, deactivateUser, type UserWithRelations } from "@/app/actions/users" import { Button } from "@/components/ui/button" import { Separator } from "@/components/ui/separator" import { PeopleTable } from "@/components/people-table" import { UserDrawer } from "@/components/people/user-drawer" import { InviteDialog } from "@/components/people/invite-dialog" import { InviteLinksSection } from "@/components/settings/invite-links-section" export function TeamTab() { const [users, setUsers] = React.useState([]) const [loading, setLoading] = React.useState(true) const [selectedUser, setSelectedUser] = React.useState(null) const [drawerOpen, setDrawerOpen] = React.useState(false) const [inviteDialogOpen, setInviteDialogOpen] = React.useState(false) React.useEffect(() => { loadUsers() }, []) const loadUsers = async () => { try { const data = await getUsers() setUsers(data) } catch (error) { console.error("Failed to load users:", error) toast.error("Failed to load users") } finally { setLoading(false) } } const handleEditUser = (user: UserWithRelations) => { setSelectedUser(user) setDrawerOpen(true) } const handleDeactivateUser = async (userId: string) => { try { const result = await deactivateUser(userId) if (result.success) { toast.success("User deactivated") await loadUsers() } else { toast.error(result.error || "Failed to deactivate user") } } catch (error) { console.error("Failed to deactivate user:", error) toast.error("Failed to deactivate user") } } const handleUserUpdated = async () => { await loadUsers() } const handleUserInvited = async () => { await loadUsers() } if (loading) { return (
Loading...
) } return ( <>

Manage team members and client users

{users.length === 0 ? (

No users found

Invite users to get started

) : ( )}
) }