@@ -31,12 +31,15 @@ import androidx.hilt.navigation.compose.hiltViewModel
3131import com.example.member.component.MemberCardView
3232import com.example.member.component.MemberDialogView
3333import com.example.member.component.MemberListView
34+ import com.moneymong.moneymong.common.ui.noRippleClickable
3435import com.moneymong.moneymong.design_system.R
3536import com.moneymong.moneymong.design_system.component.bottomSheet.MDSBottomSheet
3637import com.moneymong.moneymong.design_system.component.button.MDSButton
3738import com.moneymong.moneymong.design_system.component.button.MDSButtonSize
3839import com.moneymong.moneymong.design_system.component.button.MDSButtonType
3940import com.moneymong.moneymong.design_system.component.snackbar.MDSSnackbarHost
41+ import com.moneymong.moneymong.design_system.error.ErrorDialog
42+ import com.moneymong.moneymong.design_system.error.ErrorScreen
4043import com.moneymong.moneymong.design_system.theme.Blue04
4144import com.moneymong.moneymong.design_system.theme.Body3
4245import com.moneymong.moneymong.design_system.theme.Body4
@@ -99,7 +102,7 @@ fun MemberScreen(
99102 LaunchedEffect (key1 = Unit ) {
100103 viewModel.eventEmit(MemberSideEffect .GetInvitationCode (state.agencyId.toLong()))
101104 viewModel.eventEmit(MemberSideEffect .GetMemberLists (state.agencyId.toLong()))
102- viewModel.eventEmit(MemberSideEffect .GetMyInfo (Unit )) // TODO - 마이몽 유저 정보 조회 연결
105+ viewModel.eventEmit(MemberSideEffect .GetMyInfo (Unit ))
103106 }
104107
105108
@@ -150,7 +153,17 @@ fun MemberScreen(
150153 }
151154 }
152155 }
153-
156+ if (state.visiblePopUpError) {
157+ ErrorDialog (
158+ message = state.errorPopUpMessage,
159+ onConfirm = {
160+ viewModel.eventEmit(MemberSideEffect .GetInvitationCode (state.agencyId.toLong()))
161+ viewModel.eventEmit(MemberSideEffect .GetMemberLists (state.agencyId.toLong()))
162+ viewModel.eventEmit(MemberSideEffect .GetMyInfo (Unit ))
163+ viewModel.visiblePopUpErrorChanged(false )
164+ }
165+ )
166+ }
154167 if (state.showDialog) {
155168 MemberDialogView (
156169 onDismissRequest = {
@@ -165,7 +178,6 @@ fun MemberScreen(
165178
166179 if (state.visibleBottomSheet) {
167180 viewModel.isRoleChanged(false )
168-
169181 MDSBottomSheet (
170182 onDismissRequest = {
171183 coroutineScope.launch {
@@ -188,7 +200,7 @@ fun MemberScreen(
188200 verticalArrangement = Arrangement .spacedBy(20 .dp)
189201 ) {
190202 Row (
191- modifier = Modifier .clickable {
203+ modifier = Modifier .noRippleClickable {
192204 bottomSheetType.value = BottomSheetType .ADMIN_GENERAL_MEMBER
193205 }
194206 ) {
@@ -208,7 +220,7 @@ fun MemberScreen(
208220 Text (
209221 modifier = Modifier
210222 .fillMaxWidth()
211- .clickable {
223+ .noRippleClickable {
212224 viewModel.onVertClickChanged(false )
213225 viewModel.onShowDialogChanged(true )
214226 },
@@ -227,7 +239,7 @@ fun MemberScreen(
227239 Row (
228240 modifier = Modifier
229241 .fillMaxWidth()
230- .clickable {
242+ .noRippleClickable {
231243 viewModel.isStaffCheckedChanged(true )
232244 viewModel.isMemberCheckedChanged(false )
233245 }
@@ -250,7 +262,7 @@ fun MemberScreen(
250262 Row (
251263 modifier = Modifier
252264 .fillMaxWidth()
253- .clickable {
265+ .noRippleClickable {
254266 viewModel.isStaffCheckedChanged(false )
255267 viewModel.isMemberCheckedChanged(true )
256268 },
@@ -287,7 +299,8 @@ fun MemberScreen(
287299 " STAFF" ,
288300 state.vertClickedUserId
289301 )
290- ) // TODO
302+ )
303+
291304 viewModel.isStaffCheckedChanged(false )
292305
293306 } else if (! state.isStaffChecked && state.isMemberChecked) {
@@ -297,7 +310,7 @@ fun MemberScreen(
297310 " MEMBER" ,
298311 state.vertClickedUserId
299312 )
300- ) // TODO
313+ )
301314 viewModel.isMemberCheckedChanged(false )
302315 }
303316 },
@@ -310,6 +323,16 @@ fun MemberScreen(
310323 }
311324 }
312325
326+ if (state.visibleError) {
327+ ErrorScreen (
328+ modifier = Modifier .fillMaxSize(),
329+ message = state.errorMessage,
330+ onRetry = {
331+ viewModel.visibleErrorChanged(false )
332+ viewModel.eventEmit(MemberSideEffect .GetInvitationCode (state.agencyId.toLong()))
333+ viewModel.eventEmit(MemberSideEffect .GetMemberLists (state.agencyId.toLong()))
334+ viewModel.eventEmit(MemberSideEffect .GetMyInfo (Unit ))
335+ }
313336 Column (
314337 modifier = Modifier
315338 .fillMaxSize()
@@ -353,18 +376,63 @@ fun MemberScreen(
353376 },
354377 vertClickedUserIdChanged = { userId -> viewModel.vertClickedUserIdChanged(userId) },
355378 )
356-
357- Box (
379+ } else {
380+ Column (
358381 modifier = Modifier
359- .fillMaxWidth()
360- .weight(1f )
382+ .fillMaxSize()
383+ .background(White )
384+ .padding(horizontal = MMHorizontalSpacing )
361385 ) {
362- MDSSnackbarHost (
363- hostState = snackbarHostState ,
364- modifier = Modifier
365- .align( BottomCenter )
366- .padding(bottom = 12 .dp)
386+ Text (
387+ modifier = Modifier .padding(top = 24 .dp, bottom = 8 .dp) ,
388+ text = " 나 " ,
389+ style = Body3 ,
390+ color = Gray07
367391 )
392+ MemberCardView (
393+ modifier = Modifier ,
394+ agencyId = state.agencyId,
395+ memberList = state.memberList,
396+ memberMyInfoId = state.memberMyInfoId,
397+ memberMyInfo = state.memberMyInfo,
398+ memberMyInfoChanged = { id, userId, nickname, agencyUserRole ->
399+ viewModel.memberMyInfoChanged(
400+ id,
401+ userId,
402+ nickname,
403+ agencyUserRole
404+ )
405+ },
406+ invitationCode = state.invitationCode,
407+ isReInvitationCode = { viewModel.eventEmit(MemberSideEffect .GetReInvitationCode (it)) },
408+ onCopyChange = { onCopyClick -> viewModel.onCopyClickChanged(onCopyClick) },
409+ )
410+
411+ MemberListView (
412+ modifier = Modifier .padding(top = 24 .dp),
413+ memberMyInfo = state.memberMyInfo,
414+ filteredMemberList = state.filteredMemberList,
415+ onIconClick = { vertClick -> viewModel.onVertClickChanged(vertClick) },
416+ updateFilteredMemberList = { memberMyInfoId ->
417+ viewModel.updateFilteredMemberList(
418+ memberMyInfoId
419+ )
420+ },
421+ vertClickedUserIdChanged = { userId -> viewModel.vertClickedUserIdChanged(userId) },
422+ )
423+
424+ Box (
425+ modifier = Modifier
426+ .fillMaxWidth()
427+ .weight(1f )
428+ ) {
429+ MDSSnackbarHost (
430+ hostState = snackbarHostState,
431+ modifier = Modifier
432+ .align(BottomCenter )
433+ .padding(bottom = 12 .dp)
434+ )
435+ }
368436 }
369437 }
370438}
0 commit comments