Skip to content

Commit cf575bf

Browse files
authored
Merge pull request #73 from YAPP-Github/epic/moneymong-231-소속가입-미구현-기능-개발
Epic/moneymong 231 소속가입 미구현 기능 개발
2 parents b2ee507 + 8b5a54c commit cf575bf

4 files changed

Lines changed: 40 additions & 9 deletions

File tree

feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/join/AgencyCompleteScreen.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import androidx.compose.ui.res.painterResource
2222
import androidx.compose.ui.text.style.TextAlign
2323
import androidx.compose.ui.unit.dp
2424
import androidx.hilt.navigation.compose.hiltViewModel
25+
import com.moneymong.moneymong.common.ui.noRippleClickable
2526
import com.moneymong.moneymong.design_system.theme.Black
2627
import com.moneymong.moneymong.design_system.theme.Heading1
2728
import com.moneymong.moneymong.design_system.theme.MMHorizontalSpacing
@@ -70,7 +71,7 @@ fun AgencyCompleteScreen(
7071
Icon(
7172
painterResource(id = R.drawable.ic_close_default),
7273
modifier = Modifier
73-
.clickable {
74+
.noRippleClickable {
7475
navigateToSearch()
7576
},
7677
contentDescription = null

feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/join/AgencyJoinScreen.kt

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,10 @@ import androidx.compose.ui.focus.FocusRequester
2727
import androidx.compose.ui.res.painterResource
2828
import androidx.compose.ui.unit.dp
2929
import androidx.hilt.navigation.compose.hiltViewModel
30+
import com.moneymong.moneymong.common.ui.noRippleClickable
3031
import com.moneymong.moneymong.design_system.R
3132
import com.moneymong.moneymong.design_system.component.snackbar.MDSSnackbarHost
33+
import com.moneymong.moneymong.design_system.error.ErrorDialog
3234
import com.moneymong.moneymong.design_system.theme.Black
3335
import com.moneymong.moneymong.design_system.theme.Gray10
3436
import com.moneymong.moneymong.design_system.theme.Heading3
@@ -47,6 +49,7 @@ fun AgencyJoinScreen(
4749
agencyId: Long
4850
) {
4951
val state = viewModel.collectAsState().value
52+
5053
Scaffold(
5154
modifier = modifier
5255
.fillMaxSize()
@@ -64,7 +67,7 @@ fun AgencyJoinScreen(
6467
Icon(
6568
modifier = Modifier
6669
.size(24.dp)
67-
.clickable {
70+
.noRippleClickable {
6871
navigateUp()
6972
},
7073
painter = painterResource(id = R.drawable.ic_close_default),
@@ -79,7 +82,8 @@ fun AgencyJoinScreen(
7982
agencyId = agencyId,
8083
state = state,
8184
viewModel = viewModel,
82-
navigateToComplete = navigateToComplete
85+
navigateToComplete = navigateToComplete,
86+
navigateUp = navigateUp
8387
)
8488
}
8589
)
@@ -91,11 +95,24 @@ private fun JoinContent(
9195
agencyId: Long,
9296
state: AgencyJoinState,
9397
viewModel: AgencyJoinViewModel,
94-
navigateToComplete: () -> Unit
98+
navigateToComplete: () -> Unit,
99+
navigateUp: () -> Unit
95100
) {
96101
val snackbarHostState = remember { SnackbarHostState() }
97102
val focusRequesters = remember { List(6) { FocusRequester() } }
98103

104+
if (state.visiblePopUpError) {
105+
ErrorDialog(
106+
message = state.errorPopUpMessage,
107+
onConfirm = {
108+
viewModel.visiblePopUpErrorChanged(false)
109+
viewModel.onIsErrorChanged(false)
110+
viewModel.resetNumbers()
111+
navigateUp()
112+
}
113+
)
114+
}
115+
99116
LaunchedEffect(key1 = state.isError) {
100117
Log.d("launch", state.isError.toString())
101118
if (state.isError) {

feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/join/AgencyJoinState.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,7 @@ import com.moneymong.moneymong.common.base.State
55
data class AgencyJoinState (
66
val isError : Boolean = false,
77
val numbers : List<String> = listOf("", "", "", "", "" , ""),
8-
val codeAccess : Boolean = false
8+
val codeAccess : Boolean = false,
9+
val visiblePopUpError : Boolean = false,
10+
val errorPopUpMessage : String = ""
911
) : State

feature/agency/src/main/java/com/moneymong/moneymong/feature/agency/join/AgencyJoinViewModel.kt

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ class AgencyJoinViewModel @Inject constructor(
1919
) : BaseViewModel<AgencyJoinState, AgencyJoinSideEffect>(AgencyJoinState()) {
2020

2121
fun agencyCodeNumbers(agencyId: Long) = intent {
22-
val codeNumbers = state.numbers.joinToString(separator = "")
22+
val codeNumbers = state.numbers.joinToString(separator = "")
2323
viewModelScope.launch {
2424
useCase.invoke(agencyId, AgencyJoinParam(codeNumbers))
2525
.onSuccess {
@@ -40,7 +40,12 @@ class AgencyJoinViewModel @Inject constructor(
4040
}
4141
}
4242
.onFailure {
43-
//TODO - 에러화면
43+
reduce {
44+
state.copy(
45+
visiblePopUpError = true,
46+
errorPopUpMessage = it.message.toString()
47+
)
48+
}
4449

4550
}
4651
}
@@ -60,13 +65,11 @@ class AgencyJoinViewModel @Inject constructor(
6065
val newNumbers = state.numbers.toMutableList().apply {
6166
this[index] = value
6267
}
63-
Log.d("newNumbers", newNumbers.toString())
6468
reduce {
6569
state.copy(
6670
numbers = newNumbers
6771
)
6872
}
69-
Log.d("numbers", state.numbers.joinToString(separator = ""))
7073
}
7174

7275
fun resetNumbers() = intent {
@@ -76,4 +79,12 @@ class AgencyJoinViewModel @Inject constructor(
7679
)
7780
}
7881
}
82+
83+
fun visiblePopUpErrorChanged(visibleError: Boolean) = intent {
84+
reduce {
85+
state.copy(
86+
visiblePopUpError = visibleError,
87+
)
88+
}
89+
}
7990
}

0 commit comments

Comments
 (0)