import React, { useState, useEffect } from 'react'; import { IPublicClientApplication } from '@azure/msal-browser'; import { LogoutIcon } from './icons/LogoutIcon'; import { QuestionMarkIcon } from './icons/QuestionMarkIcon'; import { getUserInfo, UserInfo } from '../services/authService'; interface ProfileProps { onLogout: () => void; msalInstance: IPublicClientApplication; } export const Profile: React.FC = ({ onLogout, msalInstance }) => { const [isQuestionFormVisible, setIsQuestionFormVisible] = useState(false); const [question, setQuestion] = useState(''); const [userInfo, setUserInfo] = useState(null); useEffect(() => { const info = getUserInfo(msalInstance); setUserInfo(info); }, [msalInstance]); const userDetails = userInfo ? { 'Account Type': userInfo.accountType, 'First Name': userInfo.firstName || 'N/A', 'Last Name': userInfo.lastName || 'N/A', 'Email': userInfo.email, } : { 'Account Type': 'Loading...', 'First Name': '', 'Last Name': '', 'Email': '', }; const handleLogout = () => { onLogout(); }; const handleToggleQuestionForm = () => { setIsQuestionFormVisible(prev => !prev); }; const handleSubmitQuestion = (e: React.FormEvent) => { e.preventDefault(); if (!question.trim()) { alert('Please enter a question before submitting.'); return; } alert(`Your question has been submitted:\n\n"${question}"\n\nWe'll get back to you shortly.`); setQuestion(''); setIsQuestionFormVisible(false); }; return (

Your Profile

View your account details and manage settings.

Account Information

{Object.entries(userDetails).map(([key, value]) => (

{key}

{value}

))}
{isQuestionFormVisible && (

Ask a Question

Your question will be sent to the OLIVER Agency support team.