diff --git a/feature/feature-mypage/src/main/java/com/comit/feature_mypage/navigation/MyPageNavigation.kt b/feature/feature-mypage/src/main/java/com/comit/feature_mypage/navigation/MyPageNavigation.kt index 9f295068..775da398 100644 --- a/feature/feature-mypage/src/main/java/com/comit/feature_mypage/navigation/MyPageNavigation.kt +++ b/feature/feature-mypage/src/main/java/com/comit/feature_mypage/navigation/MyPageNavigation.kt @@ -74,10 +74,19 @@ fun NavGraphBuilder.myPageNavigation( } composable( - route = SimTongScreen.MyPage.FIX_WORKPLACE, + route = SimTongScreen.MyPage.FIX_WORKPLACE + MyPageDeepLinkKeyUtil.WORK_PLACE + "{work place}", + arguments = listOf( + navArgument(MyPageDeepLinkKeyUtil.WORK_PLACE) { + type = NavType.StringType + defaultValue = "" + } + ), ) { + val currentWorkPlace = it.arguments?.getString(MyPageDeepLinkKeyUtil.WORK_PLACE) ?: "" + FixWorkPlaceScreen( navController = navController, + currentWorkPlace = currentWorkPlace, ) } diff --git a/feature/feature-mypage/src/main/java/com/comit/feature_mypage/screen/MyPageScreen.kt b/feature/feature-mypage/src/main/java/com/comit/feature_mypage/screen/MyPageScreen.kt index a7c772e3..40b847a0 100644 --- a/feature/feature-mypage/src/main/java/com/comit/feature_mypage/screen/MyPageScreen.kt +++ b/feature/feature-mypage/src/main/java/com/comit/feature_mypage/screen/MyPageScreen.kt @@ -53,6 +53,7 @@ import com.comit.core_design_system.modifier.simClickable import com.comit.core_design_system.typography.Body5 import com.comit.feature_mypage.R import com.comit.feature_mypage.mvi.MyPageSideEffect +import com.comit.feature_mypage.utils.MyPageDeepLinkKeyUtil import com.comit.feature_mypage.vm.ImageLimitSizeInKB import com.comit.feature_mypage.vm.MyPageViewModel import com.comit.navigator.SimTongScreen @@ -154,7 +155,7 @@ fun MyPageScreen( content = myPageInState.spot, onClick = { navController.navigate( - route = SimTongScreen.MyPage.FIX_WORKPLACE, + route = SimTongScreen.MyPage.FIX_WORKPLACE + MyPageDeepLinkKeyUtil.WORK_PLACE + myPageInState.spot, ) } ) diff --git a/feature/feature-mypage/src/main/java/com/comit/feature_mypage/screen/fix/workplace/FixWorkPlaceScreen.kt b/feature/feature-mypage/src/main/java/com/comit/feature_mypage/screen/fix/workplace/FixWorkPlaceScreen.kt index c552d021..49cda62b 100644 --- a/feature/feature-mypage/src/main/java/com/comit/feature_mypage/screen/fix/workplace/FixWorkPlaceScreen.kt +++ b/feature/feature-mypage/src/main/java/com/comit/feature_mypage/screen/fix/workplace/FixWorkPlaceScreen.kt @@ -65,6 +65,7 @@ private const val CannotChangePlaceTooMuch = "근무지점은 90일 동안 3회 @Composable fun FixWorkPlaceScreen( navController: NavController, + currentWorkPlace: String = "", vm: FixWorkPlaceViewModel = hiltViewModel(), ) { val toast = rememberToast() @@ -109,20 +110,27 @@ fun FixWorkPlaceScreen( Spacer(modifier = Modifier.height(15.dp)) - LazyColumn() { + LazyColumn { itemsIndexed(fixWorkPlaceState.spotList) { index, item -> + val checkCurrentWorkPlace = item.name == currentWorkPlace Box( modifier = Modifier .height(FixWorkPlaceHeight) .simSelectable( selected = isSelect(index), onClick = { - selectedValue = index - vm.inPutSpotId(UUID.fromString(item.id)) + if (!checkCurrentWorkPlace) { + selectedValue = index + vm.inPutSpotId(msg = UUID.fromString(item.id)) + } }, role = Role.RadioButton, ) ) { + val textColor = + if (checkCurrentWorkPlace) SimTongColor.Gray500 + else SimTongColor.Gray800 + Column( modifier = Modifier .padding( @@ -133,15 +141,16 @@ fun FixWorkPlaceScreen( Body4( text = item.name, - color = SimTongColor.Gray800, + color = textColor, ) Spacer(modifier = Modifier.height(3.dp)) Body8( text = item.location, - color = SimTongColor.Gray800, + color = textColor, ) + Canvas( modifier = Modifier .fillMaxWidth() @@ -165,21 +174,24 @@ fun FixWorkPlaceScreen( ) } } - SimRadioButton( - modifier = Modifier - .fillMaxWidth() - .wrapContentWidth(Alignment.End) - .fillMaxHeight() - .wrapContentHeight(Alignment.CenterVertically) - .padding( - end = 33.dp, - ), - checked = isSelect(index), - onCheckedChange = { - selectedValue = index - vm.inPutSpotId(UUID.fromString(item.id)) - }, - ) + + if (!checkCurrentWorkPlace) { + SimRadioButton( + modifier = Modifier + .fillMaxWidth() + .wrapContentWidth(Alignment.End) + .fillMaxHeight() + .wrapContentHeight(Alignment.CenterVertically) + .padding( + end = 33.dp, + ), + checked = isSelect(index), + onCheckedChange = { + selectedValue = index + vm.inPutSpotId(msg = UUID.fromString(item.id)) + }, + ) + } } } } diff --git a/feature/feature-mypage/src/main/java/com/comit/feature_mypage/utils/MyPageDeepLinkKeyUtil.kt b/feature/feature-mypage/src/main/java/com/comit/feature_mypage/utils/MyPageDeepLinkKeyUtil.kt index 3e4fd10d..484a77a6 100644 --- a/feature/feature-mypage/src/main/java/com/comit/feature_mypage/utils/MyPageDeepLinkKeyUtil.kt +++ b/feature/feature-mypage/src/main/java/com/comit/feature_mypage/utils/MyPageDeepLinkKeyUtil.kt @@ -2,4 +2,6 @@ package com.comit.feature_mypage.utils object MyPageDeepLinkKeyUtil { const val EMAIL = "email" + + const val WORK_PLACE = "work place" }