@@ -6,14 +6,19 @@ import { useEffect } from 'react';
66import type { UserInfoResponse } from '~/entities/user/types/user.type' ;
77import ApiClient from '~/shared/api/httpClient' ;
88import { useUserId } from '../provider/UserInfoProvider' ;
9+ import { getSession } from '../sessions.server' ;
910
1011export async function loader ( { request } : LoaderFunctionArgs ) {
1112 const rawCookie = request . headers . get ( 'Cookie' ) ?? '' ;
13+
14+ const session = await getSession ( rawCookie ) ;
15+ const referer = session . get ( 'referer' ) || '/' ;
16+
1217 const cookies = cookie . parse ( rawCookie ) ;
1318 const isAccessTokenExists = ! ! cookies . access_token ;
1419
1520 if ( ! isAccessTokenExists ) {
16- return redirect ( '/trade/BTC/login' ) ;
21+ return redirect ( referer ) ;
1722 }
1823
1924 const response = await ApiClient . get < UserInfoResponse > ( 'api/userinfo' , {
@@ -24,18 +29,19 @@ export async function loader({ request }: LoaderFunctionArgs) {
2429
2530 const { data } = await response . json ( ) ;
2631
27- return data . userId ;
32+ return { userId : data . userId , referer : referer } ;
2833}
2934
3035export default function CallbackRoutes ( { loaderData } : Route . ComponentProps ) {
36+ const { userId, referer } = loaderData ;
3137 const navigate = useNavigate ( ) ;
32- const { userId , setUserId } = useUserId ( ) ;
33- setUserId ( loaderData ) ;
38+ const { setUserId } = useUserId ( ) ;
39+ setUserId ( userId ) ;
3440
3541 useEffect ( ( ) => {
3642 if ( ! userId ) return ;
37- navigate ( '/trade/BTC' ) ;
38- } , [ userId , navigate ] ) ;
43+ navigate ( referer ) ;
44+ } , [ userId , referer , navigate ] ) ;
3945
4046 return null ;
4147}
0 commit comments