작성
·
560
0
FutureOr<String?> redirectLogic(BuildContext context,GoRouterState state){
final UserModelBase? user = ref.read(userMeProvider);
//로그인 중
final logginIn = state.location == '/login';
//회원가입 페이지 이동중인지
final joinIn = state.location == '/login/join';
//유저 정보가 없는데
//로그인중이면 그대로 로그인 페이지에 두고
//만약 로그인중이 아니라면 로그인 페이지로 이동
if(user == null && !joinIn){
return logginIn ? null : '/login';
}
//회원가입 페이지로 이동중이라면
if(user==null && joinIn){
return '/login/join';
}
//user가 null이 아님
//UserModel
//사용자 정보가 있는상태면
//로그인 중이거나 현재 위치가 SplashScreen이면
//홈으로 이동
if(user is UserModel){
return logginIn || state.location == '/splash' ? '/' : null;
}
//UserModelError
if(user is UserModelError){
return logginIn ? null : '/login';
}
return null;
}
}
위의 로직에서 splash화면을 인스타그램처럼 1초 지속되도록 하고싶은데 혹시 방법이 있을까요?
답변 1
0
안녕하세요!
인증 로직에 고의로 1초정도 딜레이를 넣어주는건 어떤가요?
예를들어서 인증 요청을 하기전에 DateTime을 저장한 다음 인증이 끝나고 나서의 DateTime과 비교를 한 후 만약에 1초를 넘었으면 바로 인증 결과를 상태로 저장해서 redirect가 되도록 하고 1초보다 빨랐을경우 차이만큼 고의로 Future.wait()를 해준다음 상태를 저장하는 방법입니다.
감사합니다!
final UserModelBase? user = ref.read(userMeProvider);
위의 로직 전후로 말씀하시는건가욤??