@@ -6,37 +6,57 @@ import Layout01 from "@layout/layout-01";
66import Breadcrumb from "@components/breadcrumb" ;
77import ProfileBio from "@containers/profile/bio" ;
88import Spinner from "@ui/spinner" ;
9- import { useUser } from "@contexts/user-context " ;
9+ import { useSession , signOut } from "next-auth/react " ;
1010import { useMount } from "@hooks" ;
1111
12- type PageProps = NextPage & {
13- Layout : typeof Layout01 ;
12+ type PageProps = {
13+ layout ?: {
14+ headerShadow : boolean ;
15+ headerFluid : boolean ;
16+ footerMode : string ;
17+ } ;
18+ } ;
19+
20+ type PageWithLayout = NextPage < PageProps > & {
21+ Layout ?: typeof Layout01 ;
1422} ;
1523
16- const Profile : PageProps = ( ) => {
24+ const Profile : PageWithLayout = ( ) => {
1725 const mounted = useMount ( ) ;
18- const { isLoggedIn , logout } = useUser ( ) ;
26+ const { data : session , status } = useSession ( ) ;
1927 const router = useRouter ( ) ;
2028
2129 useEffect ( ( ) => {
22- if ( ! isLoggedIn ) {
23- void router . push ( "/login" ) ;
30+ if ( status === "unauthenticated" ) {
31+ router . replace ( "/login" ) . catch ( ( error ) => {
32+ console . error ( "Redirect error:" , error ) ;
33+ } ) ;
2434 }
25- } , [ isLoggedIn , router ] ) ;
35+ } , [ status , router ] ) ;
2636
27- if ( ! mounted ) return null ;
37+ if ( ! mounted || status === "loading" ) {
38+ return (
39+ < div className = "tw-fixed tw-bg-white tw-top-0 tw-z-50 tw-w-screen tw-h-screen tw-flex tw-justify-center tw-items-center" >
40+ < Spinner />
41+ </ div >
42+ ) ;
43+ }
2844
29- if ( ! isLoggedIn ) {
45+ if ( ! session ) {
3046 return (
31- < div className = "tw-fixed tw-bg-light-100 tw-top-0 tw-z-50 tw-w-screen tw-h-screen tw-flex tw-justify-center tw-items-center" >
47+ < div className = "tw-fixed tw-bg-white tw-top-0 tw-z-50 tw-w-screen tw-h-screen tw-flex tw-justify-center tw-items-center" >
3248 < Spinner />
3349 </ div >
3450 ) ;
3551 }
3652
37- const handleLogout = ( ) => {
38- logout ( ) ;
39- void router . push ( "/login" ) ;
53+ const handleLogout = async ( ) => {
54+ try {
55+ await signOut ( { redirect : false } ) ;
56+ await router . replace ( "/login" ) ;
57+ } catch ( error ) {
58+ console . error ( "Logout error:" , error ) ;
59+ }
4060 } ;
4161
4262 return (
@@ -63,7 +83,7 @@ const Profile: PageProps = () => {
6383
6484Profile . Layout = Layout01 ;
6585
66- export const getStaticProps : GetStaticProps = ( ) => {
86+ export const getStaticProps : GetStaticProps < PageProps > = ( ) => {
6787 return {
6888 props : {
6989 layout : {
0 commit comments