| | |
| | | import { useCallback, useEffect, useState } from 'react' |
| | | import type { ReactNode } from 'react' |
| | | import { usePathname, useRouter, useSearchParams } from 'next/navigation' |
| | | import { fetchSetupStatus } from '@/service/common' |
| | | import { fetchSetupStatus, regAndLogin } from '@/service/common' |
| | | import type { RegAndLoginResponse } from '@/models/common' |
| | | |
| | | type SwrInitorProps = { |
| | | children: ReactNode |
| | |
| | | const searchParams = useSearchParams() |
| | | const consoleToken = decodeURIComponent(searchParams.get('access_token') || '') |
| | | const refreshToken = decodeURIComponent(searchParams.get('refresh_token') || '') |
| | | const userId = decodeURIComponent(searchParams.get('userId') || '') |
| | | const consoleTokenFromLocalStorage = localStorage?.getItem('console_token') |
| | | const refreshTokenFromLocalStorage = localStorage?.getItem('refresh_token') |
| | | const pathname = usePathname() |
| | |
| | | useEffect(() => { |
| | | (async () => { |
| | | try { |
| | | const isFinished = await isSetupFinished() |
| | | if (!isFinished) { |
| | | router.replace('/install') |
| | | return |
| | | let currentUserId = '' |
| | | if (userId) { |
| | | currentUserId = userId |
| | | localStorage.setItem('userId', userId) |
| | | } |
| | | if (!((consoleToken && refreshToken) || (consoleTokenFromLocalStorage && refreshTokenFromLocalStorage))) { |
| | | router.replace('/signin') |
| | | return |
| | | else { |
| | | currentUserId = localStorage.getItem('userId') || '' |
| | | } |
| | | if (searchParams.has('access_token') || searchParams.has('refresh_token')) { |
| | | consoleToken && localStorage.setItem('console_token', consoleToken) |
| | | refreshToken && localStorage.setItem('refresh_token', refreshToken) |
| | | router.replace(pathname) |
| | | } |
| | | |
| | | const response: RegAndLoginResponse = await regAndLogin({ body: { userId: currentUserId } }) |
| | | localStorage.setItem('console_token', response.data.access_token) |
| | | localStorage.setItem('refresh_token', response.data.refresh_token) |
| | | setInit(true) |
| | | // if (!isFinished) { |
| | | // router.replace('/install') |
| | | // return |
| | | // } |
| | | // if (!((consoleToken && refreshToken) || (consoleTokenFromLocalStorage && refreshTokenFromLocalStorage))) { |
| | | // router.replace('/signin') |
| | | // return |
| | | // } |
| | | // if (searchParams.has('access_token') || searchParams.has('refresh_token')) { |
| | | // consoleToken && localStorage.setItem('console_token', consoleToken) |
| | | // refreshToken && localStorage.setItem('refresh_token', refreshToken) |
| | | // router.replace(pathname) |
| | | // } |
| | | |
| | | // setInit(true) |
| | | } |
| | | catch (error) { |
| | | router.replace('/signin') |