import React, { useState, useEffect } from 'react'; import { Camera, Save, Mail, User as UserIcon, Building, Shield, Loader2, CheckCircle2 } from 'lucide-react'; import { getUserById } from '../services/dataService'; import { User } from '../types'; export const UserProfile: React.FC = () => { const [user, setUser] = useState(null); const [isLoading, setIsLoading] = useState(false); const [isSuccess, setIsSuccess] = useState(false); const [name, setName] = useState(''); const [bio, setBio] = useState(''); useEffect(() => { const fetchUser = async () => { const storedId = localStorage.getItem('ctms_user_id'); if (storedId) { try { const fetchedUser = await getUserById(storedId); if (fetchedUser) { setUser(fetchedUser); setName(fetchedUser.name); setBio(fetchedUser.bio || ''); } } catch (err) { console.error("Error fetching profile:", err); } } }; fetchUser(); }, []); const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); setIsLoading(true); setIsSuccess(false); // Simulate API call setTimeout(() => { setIsLoading(false); setIsSuccess(true); // In a real app, we would update the user context/store here setTimeout(() => setIsSuccess(false), 3000); }, 1500); }; if (!user) return
Carregando perfil...
; return (

Meu Perfil

Gerencie suas informações pessoais e preferências.

{/* Left Column: Avatar & Basic Info */}
{user.name}

{user.name}

{user.email}

{user.role} {user.team_id === 'sales_1' ? 'Vendas Alpha' : 'Vendas Beta'}

Status da Conta

Ativo
Fasto Corp (Organização)
{/* Right Column: Edit Form */}

Informações Pessoais

{isSuccess && ( Salvo com sucesso )}
setName(e.target.value)} className="block w-full pl-10 pr-3 py-2 border border-slate-200 rounded-lg bg-white text-slate-900 placeholder-slate-400 focus:outline-none focus:ring-2 focus:ring-blue-100 focus:border-blue-500 sm:text-sm transition-all" />

Contate o admin para alterar o e-mail.