"use client"; import { useState, useEffect } from 'react'; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card'; import { Button } from '@/components/ui/button'; import { auth } from '@/lib/firebase/config'; import { toast } from 'sonner'; import { Users, UserPlus, Crown, Mail } from 'lucide-react'; import { useParams } from 'next/navigation'; interface WorkspaceUser { id: string; email: string; displayName: string; role: 'owner' | 'admin' | 'member'; joinedAt: any; lastActive: any; } export default function UsersPage() { const params = useParams(); const workspace = params.workspace as string; const [users, setUsers] = useState([]); const [loading, setLoading] = useState(true); const [currentUser, setCurrentUser] = useState(null); useEffect(() => { loadUsers(); }, []); const loadUsers = async () => { try { const user = auth.currentUser; if (!user) return; const token = await user.getIdToken(); const response = await fetch(`/api/workspace/${workspace}/users`, { headers: { 'Authorization': `Bearer ${token}`, }, }); if (response.ok) { const data = await response.json(); setUsers(data.users); setCurrentUser(data.currentUser); } } catch (error) { console.error('Error loading users:', error); toast.error('Failed to load workspace users'); } finally { setLoading(false); } }; const getRoleBadgeColor = (role: string) => { switch (role) { case 'owner': return 'bg-purple-500/10 text-purple-600 border-purple-500/20'; case 'admin': return 'bg-blue-500/10 text-blue-600 border-blue-500/20'; default: return 'bg-gray-500/10 text-gray-600 border-gray-500/20'; } }; return (
{/* Header */}

Team Members

Manage workspace access and team collaboration

{/* Current User Info */} {currentUser && ( Your Account

{currentUser.displayName || 'Unknown'}

{currentUser.email}

{currentUser.role}
)} {/* Users List */} {loading ? (

Loading team members...

) : users.length === 0 ? (

No team members yet

Invite team members to collaborate on projects in this workspace

) : (
{users.map((user) => (

{user.displayName || 'Unknown'}

{user.email}

{user.lastActive && (

Last active: {new Date(user.lastActive._seconds * 1000).toLocaleDateString()}

)}
{user.role}
))}
)} {/* Info Card */} Team Collaboration (Coming Soon)

👥 Team Workspaces: Invite team members to collaborate on projects together.

🔐 Role-Based Access: Control what team members can see and do with flexible permissions.

💬 Shared Context: All team members can access shared AI chat history and project documentation.

This feature is currently in development. Check back soon!

); }