Skip to content

Commit

Permalink
rename/#6: intent sideEffect로 네이밍 변경
Browse files Browse the repository at this point in the history
  • Loading branch information
kangyein9892 committed Nov 1, 2024
1 parent 766b2d0 commit a350c8f
Show file tree
Hide file tree
Showing 12 changed files with 52 additions and 52 deletions.
6 changes: 3 additions & 3 deletions app/src/main/java/org/sopt/and/my/MyScreen.kt
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ import org.sopt.and.R
import org.sopt.and.component.ContentsView
import org.sopt.and.component.PairTextView
import org.sopt.and.extension.noRippleClickable
import org.sopt.and.my.intent.MyIntent
import org.sopt.and.my.sideeffect.MySideEffect
import org.sopt.and.my.viewmodel.MyViewModel
import org.sopt.and.ui.theme.FirstGrey
import org.sopt.and.ui.theme.SecondGrey
Expand Down Expand Up @@ -71,14 +71,14 @@ fun MyScreen(
viewModel.intent.flowWithLifecycle(lifecycle = lifecycleOwner.lifecycle)
.collect{ intent ->
when(intent) {
MyIntent.LogOut -> {
MySideEffect.LogOut -> {
PreferenceUtil.clearIdPassword()
snackBarHostState.showSnackbar(
message = context.getString(R.string.my_logout_text)
)
onLogOut()
}
is MyIntent.SnackBar -> TODO()
is MySideEffect.SnackBar -> TODO()
}
}
}
Expand Down
8 changes: 0 additions & 8 deletions app/src/main/java/org/sopt/and/my/intent/MyIntent.kt

This file was deleted.

8 changes: 8 additions & 0 deletions app/src/main/java/org/sopt/and/my/sideeffect/MySideEffect.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package org.sopt.and.my.sideeffect

import androidx.annotation.StringRes

sealed class MySideEffect {
data class SnackBar(@StringRes val message: Int): MySideEffect()
data object LogOut: MySideEffect()
}
6 changes: 3 additions & 3 deletions app/src/main/java/org/sopt/and/my/viewmodel/MyViewModel.kt
Original file line number Diff line number Diff line change
Expand Up @@ -8,23 +8,23 @@ import kotlinx.coroutines.flow.asSharedFlow
import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.update
import kotlinx.coroutines.launch
import org.sopt.and.my.intent.MyIntent
import org.sopt.and.my.sideeffect.MySideEffect
import org.sopt.and.my.model.MyState

class MyViewModel: ViewModel() {

private val _state = MutableStateFlow(MyState())
val state = _state.asStateFlow()

private val _intent = MutableSharedFlow<MyIntent>()
private val _intent = MutableSharedFlow<MySideEffect>()
val intent = _intent.asSharedFlow()

fun updateId(id: String) = _state.update {
it.copy(id = id)
}

fun onLogOutButtonClick() = viewModelScope.launch {
_intent.emit(MyIntent.LogOut)
_intent.emit(MySideEffect.LogOut)
}


Expand Down
8 changes: 4 additions & 4 deletions app/src/main/java/org/sopt/and/sign/signin/SignInScreen.kt
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ import org.sopt.and.component.OtherServiceIconRow
import org.sopt.and.component.WavveActionTextField
import org.sopt.and.component.WavveTextField
import org.sopt.and.extension.noRippleClickable
import org.sopt.and.sign.signin.intent.SignInIntent
import org.sopt.and.sign.signin.sideeffect.SignInSideEffect
import org.sopt.and.sign.signin.viewmodel.SignInViewModel
import org.sopt.and.ui.theme.FirstGrey
import org.sopt.and.ui.theme.SecondGrey
Expand Down Expand Up @@ -65,13 +65,13 @@ fun SignInScreen(
LaunchedEffect(viewModel.intent) {
viewModel.intent.collect{ intent ->
when(intent) {
SignInIntent.SignIn -> {
SignInSideEffect.SignIn -> {
PreferenceUtil.id = state.id
PreferenceUtil.password = state.password
navigateToMy()
}
SignInIntent.SignUp -> navigateToSignUp()
is SignInIntent.SnackBar -> {
SignInSideEffect.SignUp -> navigateToSignUp()
is SignInSideEffect.SnackBar -> {
snackBarHostState.showSnackbar(context.getString(intent.message))
}
}
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package org.sopt.and.sign.signin.sideeffect

import androidx.annotation.StringRes

sealed class SignInSideEffect {
data class SnackBar(@StringRes val message: Int) : SignInSideEffect()
data object SignIn : SignInSideEffect()
data object SignUp: SignInSideEffect()
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@ import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.update
import kotlinx.coroutines.launch
import org.sopt.and.R
import org.sopt.and.sign.signin.intent.SignInIntent
import org.sopt.and.sign.signin.sideeffect.SignInSideEffect
import org.sopt.and.sign.signin.model.SignInState

class SignInViewModel: ViewModel() {

private var _state = MutableStateFlow(SignInState())
val state = _state.asStateFlow()

private var _intent = MutableSharedFlow<SignInIntent>()
private var _intent = MutableSharedFlow<SignInSideEffect>()
val intent = _intent.asSharedFlow()

fun updateId(id: String) = _state.update {
Expand All @@ -29,15 +29,15 @@ class SignInViewModel: ViewModel() {
}

fun onSignUpButtonClick() = viewModelScope.launch {
_intent.emit(SignInIntent.SignUp)
_intent.emit(SignInSideEffect.SignUp)
}

fun onSignInButtonClick(id: String, password: String) = viewModelScope.launch {
if(isValidateSignIn(id, password)) {
_intent.emit(SignInIntent.SnackBar(R.string.signin_success_text))
_intent.emit(SignInIntent.SignIn)
_intent.emit(SignInSideEffect.SnackBar(R.string.signin_success_text))
_intent.emit(SignInSideEffect.SignIn)
} else {
_intent.emit(SignInIntent.SnackBar(R.string.signin_failure_text))
_intent.emit(SignInSideEffect.SnackBar(R.string.signin_failure_text))
}
}
private fun isValidateSignIn(id: String, password: String): Boolean {
Expand Down
6 changes: 3 additions & 3 deletions app/src/main/java/org/sopt/and/sign/signup/SignUpScreen.kt
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ import org.sopt.and.component.OtherServiceIconRow
import org.sopt.and.component.WavveActionTextField
import org.sopt.and.component.WavveTextField
import org.sopt.and.extension.noRippleClickable
import org.sopt.and.sign.signup.intent.SignUpIntent
import org.sopt.and.sign.signup.intent.SignUpSideEffect
import org.sopt.and.sign.signup.viewmodel.SignUpViewModel
import org.sopt.and.ui.theme.ThirdGrey
import org.sopt.and.ui.theme.White
Expand All @@ -61,10 +61,10 @@ fun SignUpScreen(
LaunchedEffect(viewModel.intent) {
viewModel.intent.collect { intent ->
when(intent) {
SignUpIntent.SignUp -> {
SignUpSideEffect.SignUp -> {
navigationToSignIn(state.id, state.password)
}
is SignUpIntent.SnackBar -> {
is SignUpSideEffect.SnackBar -> {
snackBarHostState.showSnackbar(context.getString(intent.message))
}
}
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package org.sopt.and.sign.signup.intent

import androidx.annotation.StringRes

sealed class SignUpSideEffect {
data class SnackBar(@StringRes val message: Int) : SignUpSideEffect()
data object SignUp: SignUpSideEffect()
}

Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@ import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.update
import kotlinx.coroutines.launch
import org.sopt.and.R
import org.sopt.and.sign.signup.intent.SignUpIntent
import org.sopt.and.sign.signup.intent.SignUpSideEffect
import org.sopt.and.sign.signup.model.SignUpState

class SignUpViewModel: ViewModel() {

private var _state = MutableStateFlow(SignUpState())
val state = _state.asStateFlow()

private var _intent = MutableSharedFlow<SignUpIntent>()
private var _intent = MutableSharedFlow<SignUpSideEffect>()
val intent = _intent.asSharedFlow()

fun updateId(id: String) = _state.update {
Expand All @@ -33,17 +33,17 @@ class SignUpViewModel: ViewModel() {
val isValidatePassword = state.value.password.matches(passwordPattern)
when{
isValidateId && isValidatePassword -> {
_intent.emit(SignUpIntent.SnackBar(R.string.signup_success_text))
_intent.emit(SignUpIntent.SignUp)
_intent.emit(SignUpSideEffect.SnackBar(R.string.signup_success_text))
_intent.emit(SignUpSideEffect.SignUp)
}
!isValidateId -> {
_intent.emit(SignUpIntent.SnackBar(R.string.signup_failure_email_text))
_intent.emit(SignUpSideEffect.SnackBar(R.string.signup_failure_email_text))
}
!isValidatePassword -> {
_intent.emit(SignUpIntent.SnackBar(R.string.signup_failure_password_text))
_intent.emit(SignUpSideEffect.SnackBar(R.string.signup_failure_password_text))
}
else -> {
_intent.emit(SignUpIntent.SnackBar(R.string.signup_failure_text))
_intent.emit(SignUpSideEffect.SnackBar(R.string.signup_failure_text))
}
}
}
Expand Down

0 comments on commit a350c8f

Please sign in to comment.