1- import { User } from 'firebase/auth'
21import React , { useEffect , useState } from 'react'
32import 'react-contexify/dist/ReactContexify.css'
43import { NavLink , Outlet } from 'react-router-dom'
54import toast from 'react-simple-toasts'
65import { auth } from 'src/features/auth'
6+ import { CurrentUser } from 'src/types'
77import './settings.css'
88
99interface UserInfoProps {
10- userInfo : User // Define the type of userInfo
10+ userInfo : CurrentUser
1111}
1212
1313const UserInfo = ( { userInfo } : UserInfoProps ) => {
@@ -23,9 +23,9 @@ const UserInfo = ({ userInfo }: UserInfoProps) => {
2323 }
2424 return (
2525 < div className = "userCard" >
26- { userInfo ?. photoURL && < img src = { userInfo . photoURL } className = "userImage" > </ img > }
26+ { userInfo ?. imageURL && < img src = { userInfo . imageURL } className = "userImage" > </ img > }
2727 < div className = "userInfos" >
28- < div className = "userName" > { userInfo ?. displayName } </ div >
28+ < div className = "userName" > { userInfo ?. name } </ div >
2929 < div className = "userEmail" > { userInfo ?. email } </ div >
3030 </ div >
3131 < button className = "logoutBtn" onClick = { logout } >
@@ -36,10 +36,19 @@ const UserInfo = ({ userInfo }: UserInfoProps) => {
3636}
3737
3838export const SettingsLayout = ( ) => {
39- const [ user , setUser ] = useState < User | null > ( null )
39+ const [ user , setUser ] = useState < CurrentUser | null > ( null )
4040 useEffect ( ( ) => {
4141 const unsubscribe = auth . onAuthStateChanged ( ( user ) => {
42- setUser ( user )
42+ if ( user ) {
43+ const currentUser = {
44+ name : user ?. displayName || '' ,
45+ email : user ?. email || '' ,
46+ imageUrl : user ?. photoURL || '' ,
47+ }
48+ setUser ( currentUser )
49+ } else {
50+ setUser ( null )
51+ }
4352 } )
4453 return ( ) => unsubscribe ( )
4554 } )
0 commit comments