Skip to content

Commit 3c71303

Browse files
committed
fix/#220 : 참여 화면 state immutable 로 변경
- core:model의 모델을 state로 사용 -> 화면 전용 immutable 모델 선언 및 state 사용 - uiState 선언시 등호 대신 by 사용하여 State 내부 타입 바로 접근
1 parent 4ec647a commit 3c71303

File tree

3 files changed

+10
-10
lines changed

3 files changed

+10
-10
lines changed

feature/mygroup/src/main/java/com/boostcamp/mapisode/mygroup/screen/GroupJoinScreen.kt

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ import androidx.compose.foundation.lazy.LazyColumn
1717
import androidx.compose.foundation.shape.RoundedCornerShape
1818
import androidx.compose.runtime.Composable
1919
import androidx.compose.runtime.LaunchedEffect
20-
import androidx.compose.runtime.State
2120
import androidx.compose.runtime.getValue
2221
import androidx.compose.runtime.mutableStateOf
2322
import androidx.compose.runtime.saveable.rememberSaveable
@@ -59,7 +58,7 @@ fun GroupJoinScreen(
5958
viewModel: GroupJoinViewModel = hiltViewModel(),
6059
) {
6160
val context = LocalContext.current
62-
val uiState = viewModel.uiState.collectAsStateWithLifecycle()
61+
val uiState by viewModel.uiState.collectAsStateWithLifecycle()
6362
val effect = rememberFlowWithLifecycle(
6463
flow = viewModel.sideEffect,
6564
initialValue = GroupJoinSideEffect.Idle,
@@ -95,7 +94,7 @@ fun GroupJoinScreen(
9594

9695
@Composable
9796
fun GroupJoinContent(
98-
uiState: State<GroupJoinState>,
97+
uiState: GroupJoinState,
9998
onBackClick: () -> Unit,
10099
onGetGroup: (String) -> Unit,
101100
onJoinGroup: () -> Unit,
@@ -193,13 +192,13 @@ fun GroupJoinContent(
193192
MapisodeDivider(direction = Direction.Horizontal, thickness = Thickness.Thin)
194193
Spacer(modifier = Modifier.padding(10.dp))
195194
}
196-
if (uiState.value.isGroupExist && uiState.value.group != null) {
195+
if (uiState.isGroupExist && uiState.group != null) {
197196
item {
198-
ConfirmJoinGroup(uiState.value.group!!)
197+
ConfirmJoinGroup(uiState.group.toGroupModel())
199198
Spacer(modifier = Modifier.padding(bottom = 70.dp))
200199
}
201200
}
202-
if (uiState.value.isGroupExist.not() || uiState.value.group == null) {
201+
if (uiState.isGroupExist.not() || uiState.group == null) {
203202
item {
204203
MapisodeText(
205204
text = "존재하지 않는 그룹입니다.",
@@ -208,7 +207,7 @@ fun GroupJoinContent(
208207
}
209208
}
210209
}
211-
if (uiState.value.isGroupExist && uiState.value.group != null) {
210+
if (uiState.isGroupExist && uiState.group != null) {
212211
Column(
213212
modifier = Modifier
214213
.fillMaxWidth()
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
package com.boostcamp.mapisode.mygroup.state
22

33
import androidx.compose.runtime.Immutable
4-
import com.boostcamp.mapisode.model.GroupModel
4+
import com.boostcamp.mapisode.mygroup.model.GroupCreationModel
55
import com.boostcamp.mapisode.ui.base.UiState
66

77
@Immutable
88
data class GroupJoinState(
99
val isGroupExist: Boolean = false,
1010
val isGroupLoading: Boolean = false,
1111
val isJoinedSuccess: Boolean = false,
12-
val group: GroupModel? = null,
12+
val group: GroupCreationModel? = null,
1313
) : UiState

feature/mygroup/src/main/java/com/boostcamp/mapisode/mygroup/viewmodel/GroupJoinViewModel.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import com.boostcamp.mapisode.datastore.UserPreferenceDataStore
55
import com.boostcamp.mapisode.mygroup.GroupRepository
66
import com.boostcamp.mapisode.mygroup.R
77
import com.boostcamp.mapisode.mygroup.intent.GroupJoinIntent
8+
import com.boostcamp.mapisode.mygroup.model.toGroupCreationModel
89
import com.boostcamp.mapisode.mygroup.sideeffect.GroupJoinSideEffect
910
import com.boostcamp.mapisode.mygroup.state.GroupJoinState
1011
import com.boostcamp.mapisode.ui.base.BaseViewModel
@@ -54,7 +55,7 @@ class GroupJoinViewModel @Inject constructor(
5455
intent { copy(isGroupLoading = true) }
5556
try {
5657
val group = groupRepository.getGroupByInviteCodes(inviteCodes)
57-
intent { copy(isGroupExist = true, group = group) }
58+
intent { copy(isGroupExist = true, group = group.toGroupCreationModel()) }
5859
} catch (e: Exception) {
5960
intent { copy(isGroupExist = false) }
6061
postSideEffect(GroupJoinSideEffect.ShowToast(R.string.group_join_not_exist))

0 commit comments

Comments
 (0)