import moment from 'moment'; import { useCallback, useEffect, useState } from 'react'; import { useUserInfo } from '@/entities/user/lib/use-user-info'; import { FavoriteWrapper } from '@/entities/home/ui/favorite-wrapper'; import { DayStatusBox } from '@/entities/home/ui/day-status-box'; import { HomeBottomBanner } from '@/entities/home/ui/home-bottom-banner'; import { AuthRegister } from '@/entities/home/ui/auth-reguster'; import { FooterItemActiveKey } from '@/entities/common/model/types'; import { useStore } from '@/shared/model/store'; import { StorageKeys } from '@/shared/constants/local-storage'; import { setLocalStorage, getLocalStorage } from '@/shared/lib/web-view-bridge'; import { useAppBridge } from '@/hooks/useAppBridge'; import { HeaderType } from '@/entities/common/model/types'; import { useSetHeaderTitle, useSetHeaderType, useSetFooterMode, useSetFooterCurrentPage, useSetFavoriteEdit, useSetMenuOn } from '@/widgets/sub-layout/use-sub-layout'; export const HomePage = () => { const { callLogin } = useUserInfo(); const { isNativeEnvironment, openBiometricRegistrationPopup, requestToken, logout } = useAppBridge(); useSetHeaderTitle(''); useSetHeaderType(HeaderType.Home); useSetFooterMode(true); useSetFooterCurrentPage(FooterItemActiveKey.Home); //useSetFavoriteEdit(true); //useSetMenuOn(true); const today = moment().format('YYYYMMDD').toString(); let bannerToday = getLocalStorage(StorageKeys.BottomBannerClose); const [bottomBannerOn, setBottomBannerOn] = useState(false); const [authRegisterOn, setAuthRegisterOn] = useState(false); const [loginSuccess, setLoginSuccess] = useState(false); /* const userParmas = { id: 'thenaun12', password: 'answjddl1!' }; */ const handleRequestToken = useCallback(async () =>{ console.log('handleRequestToken'); alert('handleRequestToken'); requestToken() .then((token) => { if (!token) { // 토큰이 null인 경우 로그아웃 처리 console.error('Token is null, performing logout'); useStore.getState().UserStore.resetUserInfo(); setLoginSuccess(false); logout(); return; } console.log('token', token); setLocalStorage(StorageKeys.Usrid, token.usrid); setLocalStorage(StorageKeys.TokenType, token.tokenType); setLocalStorage(StorageKeys.AccessToken, token.accessToken); setLocalStorage(StorageKeys.RefreshToken, token.refreshToken); setLocalStorage(StorageKeys.AccessTokenExpiresIn, token.accessTokenExpiresIn); setLocalStorage(StorageKeys.RefreshTokenExpiresIn, token.refreshTokenExpiresIn); setLocalStorage(StorageKeys.MenuGrants, token.menuGrants); useStore.getState().UserStore.setUserInfo({ usrid: token.usrid, tokenType: token.tokenType, accessToken: token.accessToken, refreshToken: token.refreshToken, accessTokenExpiresIn: token.accessTokenExpiresIn, refreshTokenExpiresIn: token.refreshTokenExpiresIn, menuGrants: token.menuGrants, }); setLoginSuccess(true); }) .catch((error) => { // 토큰 요청 실패 시 로그아웃 처리 console.error('Failed to request token:', error); useStore.getState().UserStore.resetUserInfo(); setLoginSuccess(false); logout(); }); }, []); const userParmas = { id: 'nictest00', password: 'nictest00' }; const handleLogin = useCallback(async () =>{ //let appStart = getLocalStorage(StorageKeys.AppStart); //if(!!appStart){ if(false){ useStore.getState().UserStore.resetUserInfo(); let tokenType = getLocalStorage(StorageKeys.TokenType); let accessToken = getLocalStorage(StorageKeys.AccessToken); let refreshToken = getLocalStorage(StorageKeys.RefreshToken); let accessTokenExpiresIn = getLocalStorage(StorageKeys.AccessTokenExpiresIn); let refreshTokenExpiresIn = getLocalStorage(StorageKeys.RefreshTokenExpiresIn); let menuGrants = getLocalStorage(StorageKeys.TokenType); // let usrid = getLocalStorage(StorageKeys.Usrid); useStore.getState().UserStore.setUserInfo({ tokenType: tokenType, accessToken: accessToken, refreshToken: refreshToken, accessTokenExpiresIn: accessTokenExpiresIn, refreshTokenExpiresIn: refreshTokenExpiresIn, menuGrants: menuGrants, // usrid: usrid }); setLoginSuccess(true); } else{ callLogin(userParmas).then(() => { setLoginSuccess(true); }); } }, []); const checkBottomBannerOpen = () => { console.log('checkBottomBannerOpen'); if(!!bannerToday){ bannerToday = bannerToday.toString(); } let sw = (today !== bannerToday); setBottomBannerOn(sw); }; const checkAuthRegisterOpen = () => { openBiometricRegistrationPopup().then((isOpen) => { if(isOpen){ setAuthRegisterOn(true); } }).catch((e) => { console.log('catch', e) }).finally(() => { console.log('finally') // setAuthRegisterOn(true); }); }; useEffect(() => { // handleRequestToken(); if (isNativeEnvironment) { handleRequestToken(); } else { handleLogin(); } checkBottomBannerOpen(); checkAuthRegisterOpen(); }, []); const setBottomBannerEffect = (mode: boolean) => { setBottomBannerOn(mode); if(mode === false){ if(authRegisterOn){ setAuthRegisterOn(false); setTimeout(() => { setAuthRegisterOn(true); }, 500) } } }; /*useLoginMutation const [userInfo] = useStore( useShallow((state) => [state.userSlice.userInfo]), ); */ // useRefreshUserInfo(); return ( <>
{/**/}
{ loginSuccess && <> }
{ (!bottomBannerOn) && } ); };