import AdaptableCard from '@/components/shared/AdaptableCard'
import Container from '@/components/shared/Container'
import Tabs from '@/components/ui/Tabs'
import { APP_NAME } from '@/constants/app.constant'
import { useLocalization } from '@/utils/hooks/useLocalization'
import { Suspense, lazy, useState } from 'react'
import { Helmet } from 'react-helmet'
import { FaCheckCircle, FaCompressAlt, FaNode, FaUser } from 'react-icons/fa'
import { useLocation, useNavigate } from 'react-router-dom'
type AccountSetting = {
profile: {
firstName?: string
lastName?: string
avatar?: string
lang?: string
}
loginHistory: {
type: string
deviceName: string
time: number
location: string
}[]
}
const General = lazy(() => import('./components/General'))
const Password = lazy(() => import('./components/Password'))
const NotificationSettings = lazy(() => import('./components/NotificationSettings'))
const { TabNav, TabList } = Tabs
const Profile = () => {
const { translate } = useLocalization()
const settingsMenu: Record<
string,
{
label: string
path: string
icon?: JSX.Element
}
> = {
general: {
label: translate('::Abp.Identity.Profile.General'),
path: 'general',
icon: ,
},
password: {
label: translate('::Abp.Identity.Password'),
path: 'password',
icon: ,
},
notificationSettings: {
label: translate('::Abp.Identity.NotificationSettings'),
path: 'notification-settings',
icon: ,
},
}
const location = useLocation()
const path = location.pathname.substring(location.pathname.lastIndexOf('/') + 1)
const [currentTab, setCurrentTab] = useState(path)
const [data, setData] = useState>({})
const navigate = useNavigate()
const PROFILE_BASE_PATH = '/admin/profile'
const onTabChange = (val: string) => {
if (settingsMenu[val]) {
setCurrentTab(settingsMenu[val].path)
navigate(`${PROFILE_BASE_PATH}/${settingsMenu[val].path}`)
}
}
return (
onTabChange(val)}>
{Object.keys(settingsMenu).map((key) => (
{settingsMenu[key].icon && (
{settingsMenu[key].icon}
)}
{settingsMenu[key].label}
))}
>}>
{currentTab === 'general' && }
{currentTab === 'password' && }
{currentTab === 'notification-settings' && }
)
}
export default Profile