From ebba8f2ca96d5b4beacad840bc3ded7acabccea8 Mon Sep 17 00:00:00 2001 From: junsuPark Date: Wed, 4 Oct 2023 20:04:57 +0900 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20::=20ID=20=EA=B0=95?= =?UTF-8?q?=EC=A0=9C=20=EB=A1=9C=EC=A7=81=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feature/signin/SignInScreen.kt | 23 +++++++++++++++---- .../feature/signin/SignInViewModel.kt | 11 +++++---- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/xquare/xquare_android/feature/signin/SignInScreen.kt b/app/src/main/java/com/xquare/xquare_android/feature/signin/SignInScreen.kt index 3a803376..92966340 100644 --- a/app/src/main/java/com/xquare/xquare_android/feature/signin/SignInScreen.kt +++ b/app/src/main/java/com/xquare/xquare_android/feature/signin/SignInScreen.kt @@ -10,7 +10,12 @@ import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.material.Scaffold -import androidx.compose.runtime.* +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext @@ -44,18 +49,23 @@ fun SignInScreen(navController: NavController) { is SignInViewModel.Event.Success -> { navController.navigate(AppNavigationItem.Main.route) { popUpTo(0) } } + is SignInViewModel.Event.BadRequest -> { makeToast(context, "잘못된 요청입니다") } + is SignInViewModel.Event.NotFound -> { makeToast(context, "아이디와 비밀번호를 확인해주세요") } + is SignInViewModel.Event.Timeout -> { makeToast(context, "요청 시간이 초과되었습니다") } + is SignInViewModel.Event.TooManyRequest -> { makeToast(context, "현재 요청이 너무 많습니다") } + is SignInViewModel.Event.FetchIdSuccess -> { userId = it.data } @@ -67,7 +77,10 @@ fun SignInScreen(navController: NavController) { onSignInClick = { signInViewModel.signIn(it) }, onFindAccountClick = { //makeToast(context, "Xquare 페이스북 페이지로 문의 해주세요.") - val intent = Intent(Intent.ACTION_VIEW, Uri.parse("https://www.facebook.com/profile.php?id=100091948951498")) + val intent = Intent( + Intent.ACTION_VIEW, + Uri.parse("https://www.facebook.com/profile.php?id=100091948951498") + ) context.startActivity(intent) //TODO("아이디/비밀번호 찾기로 이동") }, @@ -85,7 +98,7 @@ private fun SignIn( val context = LocalContext.current var accountId by remember { mutableStateOf("") } var password by remember { mutableStateOf("") } - if (userId.isNotBlank()) accountId = userId + val isSignInEnabled = accountId.isNotEmpty() && password.isNotEmpty() Scaffold( modifier = Modifier @@ -109,7 +122,7 @@ private fun SignIn( Column(Modifier.padding(horizontal = 16.dp)) { TextField( text = accountId, - placeholder = "아이디", + placeholder = userId.ifBlank { "아이디" }, onTextChange = { text -> accountId = text } @@ -126,7 +139,7 @@ private fun SignIn( } Spacer(Modifier.size(16.dp)) ColoredLargeButton(text = "로그인", isEnabled = isSignInEnabled) { - onSignInClick(SignInEntity(accountId, password, getToken(context).toString() )) + onSignInClick(SignInEntity(accountId, password, getToken(context).toString())) } Spacer(Modifier.size(16.dp)) Body2( diff --git a/app/src/main/java/com/xquare/xquare_android/feature/signin/SignInViewModel.kt b/app/src/main/java/com/xquare/xquare_android/feature/signin/SignInViewModel.kt index 355f0389..ec19c369 100644 --- a/app/src/main/java/com/xquare/xquare_android/feature/signin/SignInViewModel.kt +++ b/app/src/main/java/com/xquare/xquare_android/feature/signin/SignInViewModel.kt @@ -1,7 +1,10 @@ package com.xquare.xquare_android.feature.signin import com.xquare.domain.entity.auth.SignInEntity -import com.xquare.domain.exception.* +import com.xquare.domain.exception.BadRequestException +import com.xquare.domain.exception.NotFoundException +import com.xquare.domain.exception.TimeoutException +import com.xquare.domain.exception.TooManyRequestException import com.xquare.domain.usecase.auth.FetchIdUseCase import com.xquare.domain.usecase.auth.SignInUseCase import com.xquare.xquare_android.base.BaseViewModel @@ -30,15 +33,15 @@ class SignInViewModel @Inject constructor( fun fetchId() = execute( job = { fetchIdUseCase.execute(Unit) }, onSuccess = { emitEvent(Event.FetchIdSuccess(it)) }, - onFailure = { } + onFailure = { } ) sealed class Event { - object Success : SignInViewModel.Event() + object Success : Event() object BadRequest : Event() object NotFound : Event() object Timeout : Event() object TooManyRequest : Event() data class FetchIdSuccess(val data: String) : Event() } -} \ No newline at end of file +}