Skip to content

Commit

Permalink
[TNT-103] feat: 로그인 '다음' 버튼 클릭 시 화면 이동 구현
Browse files Browse the repository at this point in the history
* 실제 이동은 아직 회원가입 화면의 네비게이션 경로를 알 수 없기 때문에 미구현
hoyahozz committed Jan 17, 2025
1 parent 1b79ff9 commit e6a8dc7
Showing 5 changed files with 28 additions and 5 deletions.
2 changes: 2 additions & 0 deletions feature/login/src/main/java/co/kr/tnt/login/LoginContract.kt
Original file line number Diff line number Diff line change
@@ -25,5 +25,7 @@ internal class LoginContract {

sealed interface LoginSideEffect : UiSideEffect {
data object ShowTermBottomSheet : LoginSideEffect
data object NavigateToHome : LoginSideEffect
data object NavigateToSignup : LoginSideEffect
}
}
9 changes: 8 additions & 1 deletion feature/login/src/main/java/co/kr/tnt/login/LoginScreen.kt
Original file line number Diff line number Diff line change
@@ -51,6 +51,8 @@ import co.kr.tnt.login.model.TermState
@Composable
internal fun LoginRoute(
viewModel: LoginViewModel = hiltViewModel(),
navigateToHome: () -> Unit,
navigateToSignup: () -> Unit,
) {
val uiState by viewModel.uiState.collectAsStateWithLifecycle()
val sheetState = rememberModalBottomSheetState(skipPartiallyExpanded = true)
@@ -73,6 +75,7 @@ internal fun LoginRoute(
state = uiState,
onCheckAllTermAgree = { viewModel.setEvent(LoginUiEvent.OnCheckAllTermAgree) },
onCheckTerm = { term -> viewModel.setEvent(LoginUiEvent.OnCheckTerm(term)) },
onClickNext = { viewModel.setEvent(LoginUiEvent.OnClickNext) },
)
},
)
@@ -84,6 +87,8 @@ internal fun LoginRoute(
LoginSideEffect.ShowTermBottomSheet -> {
showBottomSheet = true
}
LoginSideEffect.NavigateToHome -> navigateToHome()
LoginSideEffect.NavigateToSignup -> navigateToSignup()
}
}
}
@@ -177,6 +182,7 @@ private fun TermBottomSheetContent(
state: LoginUiState,
onCheckAllTermAgree: () -> Unit,
onCheckTerm: (TermState) -> Unit,
onClickNext: () -> Unit,
) {
val isAllTermChecked = state.isAllTermChecked()

@@ -224,7 +230,7 @@ private fun TermBottomSheetContent(
TnTBottomButton(
text = stringResource(R.string.next),
enabled = isAllTermChecked,
onClick = { },
onClick = onClickNext,
)
}
}
@@ -337,6 +343,7 @@ private fun TermBottomSheetContentPreview() {
state = LoginUiState(),
onCheckAllTermAgree = { },
onCheckTerm = { },
onClickNext = { },
)
}
}
Original file line number Diff line number Diff line change
@@ -18,7 +18,7 @@ internal class LoginViewModel @Inject constructor() : BaseViewModel<LoginUiState
LoginUiEvent.OnCheckAllTermAgree -> checkAllTerms()
is LoginUiEvent.OnCheckTerm -> checkTerm(event.termState)
is LoginUiEvent.OnClickTermLink -> TODO()
LoginUiEvent.OnClickNext -> TODO()
LoginUiEvent.OnClickNext -> navigateToNext()
}
}

@@ -41,4 +41,9 @@ internal class LoginViewModel @Inject constructor() : BaseViewModel<LoginUiState
)
}
}

private fun navigateToNext() {
// TODO 회원가입이 되어있는 유저인 경우 홈, 그렇지 않은 경우 회원가입 화면 이동
sendEffect(LoginSideEffect.NavigateToSignup)
}
}
Original file line number Diff line number Diff line change
@@ -14,8 +14,14 @@ fun NavController.navigateToLogin(
builder = navOptions,
)

fun NavGraphBuilder.loginScreen() {
fun NavGraphBuilder.loginScreen(
navigateToHome: () -> Unit,
navigateToSignup: () -> Unit,
) {
composable<Route.Login> {
LoginRoute()
LoginRoute(
navigateToHome = navigateToHome,
navigateToSignup = navigateToSignup,
)
}
}
5 changes: 4 additions & 1 deletion feature/main/src/main/java/co/kr/tnt/main/ui/TnTNavHost.kt
Original file line number Diff line number Diff line change
@@ -22,7 +22,10 @@ fun TnTNavHost(
navController = navController,
startDestination = appState.startDestination,
) {
loginScreen()
loginScreen(
navigateToHome = { },
navigateToSignup = { },
)
homeNavGraph {
}
}

0 comments on commit e6a8dc7

Please sign in to comment.