From a10cddd91c87582f9d8486f5b7ab21887a711099 Mon Sep 17 00:00:00 2001 From: 88guri Date: Tue, 18 Nov 2025 15:31:24 +0900 Subject: [PATCH 01/15] =?UTF-8?q?feature#156=20=EC=83=81=EB=8B=A8=20?= =?UTF-8?q?=EC=97=AC=EB=B0=B1=20=EC=A2=81=EC=9D=8C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/teamsolply/solply/oauth/OauthScreen.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/feature/oauth/src/main/java/com/teamsolply/solply/oauth/OauthScreen.kt b/feature/oauth/src/main/java/com/teamsolply/solply/oauth/OauthScreen.kt index 487f8f2d..fb04e23e 100644 --- a/feature/oauth/src/main/java/com/teamsolply/solply/oauth/OauthScreen.kt +++ b/feature/oauth/src/main/java/com/teamsolply/solply/oauth/OauthScreen.kt @@ -82,7 +82,7 @@ fun OauthScreen( Column( modifier.fillMaxSize() ) { - Spacer(modifier = Modifier.height(115.dp)) + Spacer(modifier = Modifier.height(180.dp)) Image( painter = painterResource(R.drawable.ic_logo_full_vector), contentDescription = "app_logo", From f2812148c4c025ba325c49e7d50469637c6532f6 Mon Sep 17 00:00:00 2001 From: 88guri Date: Tue, 18 Nov 2025 15:38:31 +0900 Subject: [PATCH 02/15] =?UTF-8?q?feature#156=20google=20=EB=A1=9C=EA=B7=B8?= =?UTF-8?q?=EC=9D=B8=20ic=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/res/drawable/ic_google_logo.xml | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 core/designsystem/src/main/res/drawable/ic_google_logo.xml diff --git a/core/designsystem/src/main/res/drawable/ic_google_logo.xml b/core/designsystem/src/main/res/drawable/ic_google_logo.xml new file mode 100644 index 00000000..55e2eeaf --- /dev/null +++ b/core/designsystem/src/main/res/drawable/ic_google_logo.xml @@ -0,0 +1,22 @@ + + + + + + From d65ed31b19e62b200ad44d7261f0fb07c8a5a397 Mon Sep 17 00:00:00 2001 From: 88guri Date: Tue, 18 Nov 2025 15:38:54 +0900 Subject: [PATCH 03/15] =?UTF-8?q?feature#156=20google=EB=A1=9C=EA=B7=B8?= =?UTF-8?q?=EC=9D=B8=20=EB=B2=84=ED=8A=BC=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/teamsolply/solply/oauth/OauthScreen.kt | 10 +++++----- feature/oauth/src/main/res/values/strings.xml | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/feature/oauth/src/main/java/com/teamsolply/solply/oauth/OauthScreen.kt b/feature/oauth/src/main/java/com/teamsolply/solply/oauth/OauthScreen.kt index fb04e23e..d155ea1e 100644 --- a/feature/oauth/src/main/java/com/teamsolply/solply/oauth/OauthScreen.kt +++ b/feature/oauth/src/main/java/com/teamsolply/solply/oauth/OauthScreen.kt @@ -151,7 +151,7 @@ fun OauthScreen( .height(52.dp) .padding(start = 20.dp, end = 20.dp) .background( - color = SolplyTheme.colors.black, + color = SolplyTheme.colors.white, shape = RoundedCornerShape(12.dp) ) .customClickable( @@ -163,16 +163,16 @@ fun OauthScreen( horizontalArrangement = Arrangement.Start ) { Icon( - painter = painterResource(R.drawable.ic_apple_logo), - contentDescription = "kakao_logo", + painter = painterResource(R.drawable.ic_google_logo), + contentDescription = "google_logo", tint = Color.Unspecified, modifier = Modifier .padding(start = 16.dp, end = 12.dp, top = 12.dp, bottom = 12.dp) ) Text( - text = stringResource(com.teamsolply.solply.oauth.R.string.apple_login), + text = stringResource(com.teamsolply.solply.oauth.R.string.google_login), style = SolplyTheme.typography.button16M, - color = SolplyTheme.colors.white + color = SolplyTheme.colors.black ) } Spacer(modifier = Modifier.height(48.dp)) diff --git a/feature/oauth/src/main/res/values/strings.xml b/feature/oauth/src/main/res/values/strings.xml index bec778d5..1bc495ae 100644 --- a/feature/oauth/src/main/res/values/strings.xml +++ b/feature/oauth/src/main/res/values/strings.xml @@ -1,5 +1,5 @@ 카카오로 계속하기 - Apple로 계속하기 + Google로 계속하기 \ No newline at end of file From 2e7cd454fb255156d4a9ade618d0e607dffd6980 Mon Sep 17 00:00:00 2001 From: 88guri Date: Tue, 18 Nov 2025 16:45:52 +0900 Subject: [PATCH 04/15] =?UTF-8?q?feature#156=20=EC=98=A8=EB=B3=B4=EB=94=A9?= =?UTF-8?q?=20=EC=9E=90=EA=B0=80=EB=8F=99=20api=20=EB=B3=80=EA=B2=BD?= =?UTF-8?q?=EC=97=90=20=EB=94=B0=EB=A5=B8=20Dto=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../solply/onboarding/dto/response/GetAllTownResponseDto.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/data/onboarding/src/main/java/com/teamsolply/solply/onboarding/dto/response/GetAllTownResponseDto.kt b/data/onboarding/src/main/java/com/teamsolply/solply/onboarding/dto/response/GetAllTownResponseDto.kt index 6d4b84ed..30cefdcf 100644 --- a/data/onboarding/src/main/java/com/teamsolply/solply/onboarding/dto/response/GetAllTownResponseDto.kt +++ b/data/onboarding/src/main/java/com/teamsolply/solply/onboarding/dto/response/GetAllTownResponseDto.kt @@ -15,6 +15,8 @@ data class TownDto( val townId: Long, @SerialName("townName") val townName: String, + @SerialName("parentTownId") + val parentTownId: Long? = null, @SerialName("subTowns") val subTowns: List? = null -) +) \ No newline at end of file From 92facef8246d06844aa8d5aab90bef0debf987a5 Mon Sep 17 00:00:00 2001 From: 88guri Date: Tue, 18 Nov 2025 16:46:04 +0900 Subject: [PATCH 05/15] =?UTF-8?q?feature#156=20=EC=98=A8=EB=B3=B4=EB=94=A9?= =?UTF-8?q?=20=EC=9E=90=EA=B0=80=EB=8F=99=20api=20=EB=B3=80=EA=B2=BD?= =?UTF-8?q?=EC=97=90=20=EB=94=B0=EB=A5=B8=20Entity=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../teamsolply/solply/onboarding/model/TownEntity.kt | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/domain/onboarding/src/main/java/com/teamsolply/solply/onboarding/model/TownEntity.kt b/domain/onboarding/src/main/java/com/teamsolply/solply/onboarding/model/TownEntity.kt index 91cdeb5d..2e3fdbe5 100644 --- a/domain/onboarding/src/main/java/com/teamsolply/solply/onboarding/model/TownEntity.kt +++ b/domain/onboarding/src/main/java/com/teamsolply/solply/onboarding/model/TownEntity.kt @@ -1,11 +1,16 @@ package com.teamsolply.solply.onboarding.model data class TownEntity( - val towns: List + val parentTowns: List ) -data class SubTownEntity( +data class ParentTownEntity( val townId: Long, val townName: String, - val subTowns: List? = null + val subTowns: List ) + +data class SubTownEntity( + val townId: Long, + val townName: String +) \ No newline at end of file From ad22ebcff89da139d5c74c588120019506bf5591 Mon Sep 17 00:00:00 2001 From: 88guri Date: Tue, 18 Nov 2025 16:46:22 +0900 Subject: [PATCH 06/15] =?UTF-8?q?feature#156=20=EC=98=A8=EB=B3=B4=EB=94=A9?= =?UTF-8?q?=20=EC=9E=90=EA=B0=80=EB=8F=99=20api=20=EB=B3=80=EA=B2=BD?= =?UTF-8?q?=EC=97=90=20=EB=94=B0=EB=A5=B8=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/teamsolply/solply/onboarding/OnBoardingContract.kt | 4 +++- .../com/teamsolply/solply/onboarding/OnBoardingViewModel.kt | 6 +++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/OnBoardingContract.kt b/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/OnBoardingContract.kt index e6ee1c14..ed79dc0a 100644 --- a/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/OnBoardingContract.kt +++ b/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/OnBoardingContract.kt @@ -10,12 +10,13 @@ data class OnBoardingState( val currentPage: Int = 0, val totalPageCount: Int = 3, val townList: TownEntity = TownEntity( - towns = emptyList() + parentTowns = emptyList() ), val selectedRegionId: Long? = 1, val selectedTownId: Long? = null, val townBottomSheetShown: Boolean = false, + val personaList: PersonaEntity = PersonaEntity(personaList = emptyList()), val selectedPersona: String? = null, @@ -25,6 +26,7 @@ data class OnBoardingState( val isOnBoardingSuccess: Boolean = false ) : UiState + sealed interface OnBoardingIntent : UiIntent { data object OnBoardingButtonClick : OnBoardingIntent data object ChangeTownBottomSheetShown : OnBoardingIntent diff --git a/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/OnBoardingViewModel.kt b/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/OnBoardingViewModel.kt index c1ebe070..fafef6e4 100644 --- a/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/OnBoardingViewModel.kt +++ b/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/OnBoardingViewModel.kt @@ -120,7 +120,11 @@ class OnBoardingViewModel @Inject constructor( uiState.value.selectedPersona?.let { selectedPersona -> onBoardingRepository.patchUserInfo( selectedTownId = selectedTownId, - favoriteTownIdList = uiState.value.townList.towns.map { it.townId }, + + favoriteTownIdList = uiState.value.townList.parentTowns + .flatMap { it.subTowns } + .map { it.townId }, + persona = selectedPersona, nickname = uiState.value.userNickname ).onSuccess { From ae287e89e6cfb7c8315ff4408884c85d003f8ffa Mon Sep 17 00:00:00 2001 From: 88guri Date: Tue, 18 Nov 2025 16:46:30 +0900 Subject: [PATCH 07/15] =?UTF-8?q?feature#156=20=EC=98=A8=EB=B3=B4=EB=94=A9?= =?UTF-8?q?=20=EC=9E=90=EA=B0=80=EB=8F=99=20api=20=EB=B3=80=EA=B2=BD?= =?UTF-8?q?=EC=97=90=20=EB=94=B0=EB=A5=B8=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../onboarding/mapper/TownEntitiyMapper.kt | 34 ++++++++++++++++--- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/data/onboarding/src/main/java/com/teamsolply/solply/onboarding/mapper/TownEntitiyMapper.kt b/data/onboarding/src/main/java/com/teamsolply/solply/onboarding/mapper/TownEntitiyMapper.kt index 33388052..4ca03793 100644 --- a/data/onboarding/src/main/java/com/teamsolply/solply/onboarding/mapper/TownEntitiyMapper.kt +++ b/data/onboarding/src/main/java/com/teamsolply/solply/onboarding/mapper/TownEntitiyMapper.kt @@ -2,19 +2,45 @@ package com.teamsolply.solply.onboarding.mapper import com.teamsolply.solply.onboarding.dto.response.GetAllTownResponseDto import com.teamsolply.solply.onboarding.dto.response.TownDto +import com.teamsolply.solply.onboarding.model.ParentTownEntity import com.teamsolply.solply.onboarding.model.SubTownEntity import com.teamsolply.solply.onboarding.model.TownEntity fun GetAllTownResponseDto.toEntity(): TownEntity { + val parentTowns = towns.filter { it.parentTownId == null } + + val grouped = parentTowns.map { parent -> + ParentTownEntity( + townId = parent.townId, + townName = parent.townName, + subTowns = towns + .filter { it.parentTownId == parent.townId } + .map { dto -> + SubTownEntity( + townId = dto.townId, + townName = dto.townName + ) + } + ) + } + return TownEntity( - towns = towns.map { it.toSubEntity() } + parentTowns = grouped + ) +} + +fun TownDto.toParentEntity(): ParentTownEntity { + return ParentTownEntity( + townId = townId, + townName = townName, + subTowns = subTowns?.map { it.toSubEntity() } ?: emptyList() ) } fun TownDto.toSubEntity(): SubTownEntity { return SubTownEntity( - townId = this.townId, - townName = this.townName, - subTowns = this.subTowns?.map { it.toSubEntity() } + townId = townId, + townName = townName ) } + From 024ad72945253f40a9b34e5fc32b223504118072 Mon Sep 17 00:00:00 2001 From: 88guri Date: Tue, 18 Nov 2025 16:46:46 +0900 Subject: [PATCH 08/15] =?UTF-8?q?feature#156=20=EC=98=A8=EB=B3=B4=EB=94=A9?= =?UTF-8?q?=20=EC=9E=90=EA=B0=80=EB=8F=99=20api=20=EB=B3=80=EA=B2=BD?= =?UTF-8?q?=EC=97=90=20=EB=94=B0=EB=A5=B8=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../onboarding/screen/SelectTownScreen.kt | 31 ++++++------------- 1 file changed, 10 insertions(+), 21 deletions(-) diff --git a/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/screen/SelectTownScreen.kt b/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/screen/SelectTownScreen.kt index e6a76da3..93937df9 100644 --- a/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/screen/SelectTownScreen.kt +++ b/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/screen/SelectTownScreen.kt @@ -33,6 +33,7 @@ import com.teamsolply.solply.designsystem.theme.SolplyTheme import com.teamsolply.solply.onboarding.OnBoardingIntent import com.teamsolply.solply.onboarding.OnBoardingState import com.teamsolply.solply.onboarding.component.OnBoardingTownBottomSheet +import com.teamsolply.solply.onboarding.model.ParentTownEntity import com.teamsolply.solply.onboarding.model.SubTownEntity import com.teamsolply.solply.ui.extension.customClickable @@ -77,8 +78,8 @@ fun SelectTownScreen( ) } else { AddLocalAreaButton( - text = townList.towns - .flatMap { it.subTowns ?: emptyList() } + text = townList.parentTowns + .flatMap { it.subTowns } .find { it.townId == state.selectedTownId } ?.townName ?: "", onClick = {}, @@ -112,15 +113,9 @@ fun SelectTownScreen( ) { LeftRegionPane( borderColor = borderColor, - regions = townList.towns, + regions = townList.parentTowns, selectedRegionId = state.selectedRegionId, - onSelect = { id -> - onBoardingIntent( - OnBoardingIntent.ChangeRegion( - id - ) - ) - } + onSelect = { id -> onBoardingIntent(OnBoardingIntent.ChangeRegion(id)) } ) VerticalDivider( thickness = 1.dp, @@ -128,17 +123,11 @@ fun SelectTownScreen( ) RightTownPane( borderColor = borderColor, - towns = townList.towns + towns = townList.parentTowns .find { it.townId == state.selectedRegionId } ?.subTowns ?: emptyList(), selectedTownId = state.selectedTownId, - onSelect = { id -> - onBoardingIntent( - OnBoardingIntent.OnTownSelected( - id - ) - ) - } + onSelect = { id -> onBoardingIntent(OnBoardingIntent.OnTownSelected(id)) } ) } } @@ -184,7 +173,7 @@ fun SelectTownScreen( @Composable private fun LeftRegionPane( borderColor: Color, - regions: List, + regions: List, selectedRegionId: Long?, onSelect: (Long) -> Unit ) { @@ -194,8 +183,8 @@ private fun LeftRegionPane( .fillMaxHeight() .background(SolplyTheme.colors.gray100) ) { - itemsIndexed(items = regions) { index: Int, item: SubTownEntity -> - val selected = selectedRegionId == item.townId + itemsIndexed(items = regions) { index: Int, item: ParentTownEntity -> + val selected = selectedRegionId == item.townId val bg = if (selected) SolplyTheme.colors.white else SolplyTheme.colors.gray100 val textColor = if (selected) SolplyTheme.colors.black else SolplyTheme.colors.gray600 val fontWeight = if (selected) FontWeight.SemiBold else FontWeight.Medium From b1a92262dc524cf3fb29dc1485942993875b1bbc Mon Sep 17 00:00:00 2001 From: 88guri Date: Tue, 18 Nov 2025 17:31:31 +0900 Subject: [PATCH 09/15] =?UTF-8?q?feature#156=20=EC=98=A8=EB=B3=B4=EB=94=A9?= =?UTF-8?q?=20=ED=8E=98=EC=9D=B4=EC=A7=80=EC=88=98=20=EB=B3=80=EA=B2=BD?= =?UTF-8?q?=EC=97=90=20=EB=94=B0=EB=A5=B8=20totalPageCount=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/teamsolply/solply/onboarding/OnBoardingContract.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/OnBoardingContract.kt b/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/OnBoardingContract.kt index ed79dc0a..dc4cf6e7 100644 --- a/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/OnBoardingContract.kt +++ b/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/OnBoardingContract.kt @@ -8,7 +8,7 @@ import com.teamsolply.solply.ui.base.UiState data class OnBoardingState( val currentPage: Int = 0, - val totalPageCount: Int = 3, + val totalPageCount: Int = 4, val townList: TownEntity = TownEntity( parentTowns = emptyList() ), From 552834cd30414bb9d54e7a9c5740f5768009719b Mon Sep 17 00:00:00 2001 From: 88guri Date: Tue, 18 Nov 2025 17:32:01 +0900 Subject: [PATCH 10/15] =?UTF-8?q?feature#156=20town=20=EC=BB=B4=ED=8F=AC?= =?UTF-8?q?=20=ED=83=AD=ED=95=98=EC=97=AC=20=EB=8B=A4=EC=8B=9C=20=EC=84=A4?= =?UTF-8?q?=EC=A0=95=ED=95=A0=20=EC=88=98=20=EC=9E=88=EA=B2=8C=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../teamsolply/solply/onboarding/screen/SelectTownScreen.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/screen/SelectTownScreen.kt b/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/screen/SelectTownScreen.kt index 93937df9..679ea04d 100644 --- a/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/screen/SelectTownScreen.kt +++ b/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/screen/SelectTownScreen.kt @@ -82,7 +82,9 @@ fun SelectTownScreen( .flatMap { it.subTowns } .find { it.townId == state.selectedTownId } ?.townName ?: "", - onClick = {}, + onClick = { + onBoardingIntent(OnBoardingIntent.ChangeTownBottomSheetShown) + }, selected = true ) } @@ -222,7 +224,7 @@ private fun LeftRegionPane( ) { Text( text = item.townName, - style = SolplyTheme.typography.body14M.copy(fontWeight = fontWeight), + style = SolplyTheme.typography.body16M.copy(fontWeight = fontWeight), color = textColor ) } From 8123c0224d121171b68f6dc93f44e76cd5266b2d Mon Sep 17 00:00:00 2001 From: 88guri Date: Tue, 18 Nov 2025 19:12:55 +0900 Subject: [PATCH 11/15] =?UTF-8?q?feature#156=20onboarding=20patch=20api=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD=20=EA=B4=80=EB=A0=A8=20Dto=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/request/PatchUserInfoRequestDto.kt | 8 ++++---- .../dto/request/PolicyAgreementInfoDto.kt | 13 +++++++++++++ 2 files changed, 17 insertions(+), 4 deletions(-) create mode 100644 data/onboarding/src/main/java/com/teamsolply/solply/onboarding/dto/request/PolicyAgreementInfoDto.kt diff --git a/data/onboarding/src/main/java/com/teamsolply/solply/onboarding/dto/request/PatchUserInfoRequestDto.kt b/data/onboarding/src/main/java/com/teamsolply/solply/onboarding/dto/request/PatchUserInfoRequestDto.kt index c06efd1c..99121e84 100644 --- a/data/onboarding/src/main/java/com/teamsolply/solply/onboarding/dto/request/PatchUserInfoRequestDto.kt +++ b/data/onboarding/src/main/java/com/teamsolply/solply/onboarding/dto/request/PatchUserInfoRequestDto.kt @@ -8,12 +8,12 @@ data class PatchUserInfoRequestDto( @SerialName("selectedTownId") val selectedTownId: Long, - @SerialName("favoriteTownIdList") - val favoriteTownIdList: List, - @SerialName("persona") val persona: String, @SerialName("nickname") - val nickname: String + val nickname: String, + + @SerialName("policyAgreementInfos") + val policyAgreementInfos: List ) diff --git a/data/onboarding/src/main/java/com/teamsolply/solply/onboarding/dto/request/PolicyAgreementInfoDto.kt b/data/onboarding/src/main/java/com/teamsolply/solply/onboarding/dto/request/PolicyAgreementInfoDto.kt new file mode 100644 index 00000000..06b61816 --- /dev/null +++ b/data/onboarding/src/main/java/com/teamsolply/solply/onboarding/dto/request/PolicyAgreementInfoDto.kt @@ -0,0 +1,13 @@ +package com.teamsolply.solply.onboarding.dto.request + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +data class PolicyAgreementInfoDto( + @SerialName("policyId") + val policyId: Long, + + @SerialName("isAgree") + val isAgree: Boolean +) \ No newline at end of file From 6e374eb6bdd4d7cc12d5372f05c424079bcf8890 Mon Sep 17 00:00:00 2001 From: 88guri Date: Tue, 18 Nov 2025 19:13:09 +0900 Subject: [PATCH 12/15] =?UTF-8?q?feature#156=20onboarding=20patch=20api=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD=20=EA=B4=80=EB=A0=A8=20Entity=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../solply/onboarding/model/PolicyAgreementInfoEntity.kt | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 domain/onboarding/src/main/java/com/teamsolply/solply/onboarding/model/PolicyAgreementInfoEntity.kt diff --git a/domain/onboarding/src/main/java/com/teamsolply/solply/onboarding/model/PolicyAgreementInfoEntity.kt b/domain/onboarding/src/main/java/com/teamsolply/solply/onboarding/model/PolicyAgreementInfoEntity.kt new file mode 100644 index 00000000..bddbaba1 --- /dev/null +++ b/domain/onboarding/src/main/java/com/teamsolply/solply/onboarding/model/PolicyAgreementInfoEntity.kt @@ -0,0 +1,6 @@ +package com.teamsolply.solply.onboarding.model + +data class PolicyAgreementInfoEntity( + val policyId: Long, + val isAgree: Boolean +) \ No newline at end of file From ee1862ff5a92efe46f5f8ed4a981157f55406bbd Mon Sep 17 00:00:00 2001 From: 88guri Date: Tue, 18 Nov 2025 19:13:32 +0900 Subject: [PATCH 13/15] =?UTF-8?q?feature#156=20onboarding=20patch=20api=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD=20=EA=B4=80=EB=A0=A8=20Mapper=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../onboarding/mapper/PolicyAgreementInfoMapper.kt | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 data/onboarding/src/main/java/com/teamsolply/solply/onboarding/mapper/PolicyAgreementInfoMapper.kt diff --git a/data/onboarding/src/main/java/com/teamsolply/solply/onboarding/mapper/PolicyAgreementInfoMapper.kt b/data/onboarding/src/main/java/com/teamsolply/solply/onboarding/mapper/PolicyAgreementInfoMapper.kt new file mode 100644 index 00000000..7c03951f --- /dev/null +++ b/data/onboarding/src/main/java/com/teamsolply/solply/onboarding/mapper/PolicyAgreementInfoMapper.kt @@ -0,0 +1,10 @@ +package com.teamsolply.solply.onboarding.mapper + +import com.teamsolply.solply.onboarding.dto.request.PolicyAgreementInfoDto +import com.teamsolply.solply.onboarding.model.PolicyAgreementInfoEntity + +fun PolicyAgreementInfoEntity.toDto(): PolicyAgreementInfoDto = + PolicyAgreementInfoDto( + policyId = this.policyId, + isAgree = this.isAgree + ) \ No newline at end of file From 4867b97a26bee72527911e5136c28d485be8ddbc Mon Sep 17 00:00:00 2001 From: 88guri Date: Tue, 18 Nov 2025 19:14:08 +0900 Subject: [PATCH 14/15] =?UTF-8?q?feature#156=20onboarding=20patch=20api=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD=20=EA=B4=80=EB=A0=A8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/OnBoardingRepositoryImpl.kt | 11 ++++-- .../repository/OnBoardingRepository.kt | 5 ++- .../solply/onboarding/OnBoardingContract.kt | 11 +++++- .../solply/onboarding/OnBoardingViewModel.kt | 28 +++++++++++--- .../onboarding/screen/AllowClauseScreen.kt | 37 +++++++++---------- 5 files changed, 58 insertions(+), 34 deletions(-) diff --git a/data/onboarding/src/main/java/com/teamsolply/solply/onboarding/repository/OnBoardingRepositoryImpl.kt b/data/onboarding/src/main/java/com/teamsolply/solply/onboarding/repository/OnBoardingRepositoryImpl.kt index 898c0f24..1c31a9f3 100644 --- a/data/onboarding/src/main/java/com/teamsolply/solply/onboarding/repository/OnBoardingRepositoryImpl.kt +++ b/data/onboarding/src/main/java/com/teamsolply/solply/onboarding/repository/OnBoardingRepositoryImpl.kt @@ -1,8 +1,10 @@ package com.teamsolply.solply.onboarding.repository import com.teamsolply.solply.onboarding.dto.request.PatchUserInfoRequestDto +import com.teamsolply.solply.onboarding.mapper.toDto import com.teamsolply.solply.onboarding.mapper.toEntity import com.teamsolply.solply.onboarding.model.PersonaEntity +import com.teamsolply.solply.onboarding.model.PolicyAgreementInfoEntity import com.teamsolply.solply.onboarding.model.TownEntity import com.teamsolply.solply.onboarding.model.UserInfoEntity import com.teamsolply.solply.onboarding.source.remote.OnBoardingRemoteDataSource @@ -29,16 +31,17 @@ class OnBoardingRepositoryImpl @Inject constructor( override suspend fun patchUserInfo( selectedTownId: Long, - favoriteTownIdList: List, persona: String, - nickname: String + nickname: String, + policyAgreementInfos: List ): Result = runCatching { + onBoardingRemoteDataSource.patchUserInfo( PatchUserInfoRequestDto( selectedTownId = selectedTownId, - favoriteTownIdList = favoriteTownIdList, persona = persona, - nickname = nickname + nickname = nickname, + policyAgreementInfos = policyAgreementInfos.map { it.toDto() } ) ) }.mapCatching { diff --git a/domain/onboarding/src/main/java/com/teamsolply/solply/onboarding/repository/OnBoardingRepository.kt b/domain/onboarding/src/main/java/com/teamsolply/solply/onboarding/repository/OnBoardingRepository.kt index 8d965d09..b21d6347 100644 --- a/domain/onboarding/src/main/java/com/teamsolply/solply/onboarding/repository/OnBoardingRepository.kt +++ b/domain/onboarding/src/main/java/com/teamsolply/solply/onboarding/repository/OnBoardingRepository.kt @@ -1,6 +1,7 @@ package com.teamsolply.solply.onboarding.repository import com.teamsolply.solply.onboarding.model.PersonaEntity +import com.teamsolply.solply.onboarding.model.PolicyAgreementInfoEntity import com.teamsolply.solply.onboarding.model.TownEntity import com.teamsolply.solply.onboarding.model.UserInfoEntity @@ -10,8 +11,8 @@ interface OnBoardingRepository { suspend fun checkNicknameDuplicate(nickname: String): Result suspend fun patchUserInfo( selectedTownId: Long, - favoriteTownIdList: List, persona: String, - nickname: String + nickname: String, + policyAgreementInfos: List ): Result } diff --git a/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/OnBoardingContract.kt b/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/OnBoardingContract.kt index dc4cf6e7..58e59db8 100644 --- a/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/OnBoardingContract.kt +++ b/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/OnBoardingContract.kt @@ -23,8 +23,11 @@ data class OnBoardingState( val userNickname: String = "", val isNicknameDuplicate: Boolean = false, val showStartingScreen: Boolean = false, - val isOnBoardingSuccess: Boolean = false -) : UiState + val isOnBoardingSuccess: Boolean = false, + val agree14: Boolean = false, + val agreeService: Boolean = false, + val agreePrivacy: Boolean = false + ) : UiState sealed interface OnBoardingIntent : UiIntent { @@ -42,6 +45,10 @@ sealed interface OnBoardingIntent : UiIntent { ) : OnBoardingIntent data object ShowStartingScreen : OnBoardingIntent + data class ChangeAgree14(val isChecked: Boolean) : OnBoardingIntent + data class ChangeAgreeService(val isChecked: Boolean) : OnBoardingIntent + data class ChangeAgreePrivacy(val isChecked: Boolean) : OnBoardingIntent + } sealed interface OnBoardingSideEffect : SideEffect { diff --git a/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/OnBoardingViewModel.kt b/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/OnBoardingViewModel.kt index fafef6e4..3baa762c 100644 --- a/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/OnBoardingViewModel.kt +++ b/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/OnBoardingViewModel.kt @@ -1,6 +1,7 @@ package com.teamsolply.solply.onboarding import androidx.lifecycle.viewModelScope +import com.teamsolply.solply.onboarding.model.PolicyAgreementInfoEntity import com.teamsolply.solply.onboarding.repository.OnBoardingRepository import com.teamsolply.solply.ui.base.BaseViewModel import dagger.hilt.android.lifecycle.HiltViewModel @@ -83,6 +84,18 @@ class OnBoardingViewModel @Inject constructor( is OnBoardingIntent.ShowStartingScreen -> { patchUserInfo() } + is OnBoardingIntent.ChangeAgree14 -> { + reduce { copy(agree14 = intent.isChecked) } + } + + is OnBoardingIntent.ChangeAgreeService -> { + reduce { copy(agreeService = intent.isChecked) } + } + + is OnBoardingIntent.ChangeAgreePrivacy -> { + reduce { copy(agreePrivacy = intent.isChecked) } + } + } } @@ -118,15 +131,18 @@ class OnBoardingViewModel @Inject constructor( viewModelScope.launch { uiState.value.selectedTownId?.let { selectedTownId -> uiState.value.selectedPersona?.let { selectedPersona -> - onBoardingRepository.patchUserInfo( - selectedTownId = selectedTownId, - favoriteTownIdList = uiState.value.townList.parentTowns - .flatMap { it.subTowns } - .map { it.townId }, + val policyInfos = listOf( + PolicyAgreementInfoEntity(1, uiState.value.agree14), + PolicyAgreementInfoEntity(2, uiState.value.agreeService), + PolicyAgreementInfoEntity(3, uiState.value.agreePrivacy) + ) + onBoardingRepository.patchUserInfo( + selectedTownId = selectedTownId, persona = selectedPersona, - nickname = uiState.value.userNickname + nickname = uiState.value.userNickname, + policyAgreementInfos = policyInfos, ).onSuccess { reduce { copy(showStartingScreen = true) } } diff --git a/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/screen/AllowClauseScreen.kt b/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/screen/AllowClauseScreen.kt index aa2933b8..9beb0c47 100644 --- a/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/screen/AllowClauseScreen.kt +++ b/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/screen/AllowClauseScreen.kt @@ -17,11 +17,6 @@ import androidx.compose.foundation.layout.width import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import androidx.compose.runtime.LaunchedEffect -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.painterResource @@ -38,14 +33,10 @@ fun AllowClauseScreen( onNextClick: () -> Unit, onBoardingIntent: (OnBoardingIntent) -> Unit ) { - var isAllChecked by remember { mutableStateOf(false) } - var agree14 by remember { mutableStateOf(false) } - var agreeService by remember { mutableStateOf(false) } - var agreePrivacy by remember { mutableStateOf(false) } - - LaunchedEffect(agree14, agreeService, agreePrivacy) { - isAllChecked = agree14 && agreeService && agreePrivacy - } + val agree14 = state.agree14 + val agreeService = state.agreeService + val agreePrivacy = state.agreePrivacy + val isAllChecked = agree14 && agreeService && agreePrivacy Column( modifier = Modifier @@ -77,10 +68,9 @@ fun AllowClauseScreen( ) .customClickable(rippleEnabled = false) { val toggle = !isAllChecked - isAllChecked = toggle - agree14 = toggle - agreeService = toggle - agreePrivacy = toggle + onBoardingIntent(OnBoardingIntent.ChangeAgree14(toggle)) + onBoardingIntent(OnBoardingIntent.ChangeAgreeService(toggle)) + onBoardingIntent(OnBoardingIntent.ChangeAgreePrivacy(toggle)) } ) { Row( @@ -114,13 +104,17 @@ fun AllowClauseScreen( AgreementItem( text = "(필수) 만 14세 이상입니다", checked = agree14, - onClick = { agree14 = !agree14 } + onClick = { + onBoardingIntent(OnBoardingIntent.ChangeAgree14(!agree14)) + } ) AgreementItem( text = "(필수) 서비스 이용 약관", checked = agreeService, - onClick = { agreeService = !agreeService }, + onClick = { + onBoardingIntent(OnBoardingIntent.ChangeAgreeService(!agreeService)) + }, showArrow = true, onArrowClick = { // TODO: 서비스 이용 약관 이동 @@ -130,12 +124,15 @@ fun AllowClauseScreen( AgreementItem( text = "(필수) 개인정보 처리방침", checked = agreePrivacy, - onClick = { agreePrivacy = !agreePrivacy }, + onClick = { + onBoardingIntent(OnBoardingIntent.ChangeAgreePrivacy(!agreePrivacy)) + }, showArrow = true, onArrowClick = { // TODO: 개인정보 처리방침 이동 } ) + } SolplyBasicButton( From 8ded00029d49784c48b0d85059f9d826e0c04f31 Mon Sep 17 00:00:00 2001 From: 88guri Date: Tue, 18 Nov 2025 19:18:15 +0900 Subject: [PATCH 15/15] feature#156 Run Ktlint --- .../solply/onboarding/dto/request/PolicyAgreementInfoDto.kt | 2 +- .../solply/onboarding/dto/response/GetAllTownResponseDto.kt | 2 +- .../solply/onboarding/mapper/PolicyAgreementInfoMapper.kt | 2 +- .../teamsolply/solply/onboarding/mapper/TownEntitiyMapper.kt | 1 - .../solply/onboarding/repository/OnBoardingRepositoryImpl.kt | 1 - .../solply/onboarding/model/PolicyAgreementInfoEntity.kt | 2 +- .../java/com/teamsolply/solply/onboarding/model/TownEntity.kt | 2 +- .../com/teamsolply/solply/onboarding/OnBoardingContract.kt | 4 +--- .../com/teamsolply/solply/onboarding/OnBoardingViewModel.kt | 3 +-- .../teamsolply/solply/onboarding/screen/AllowClauseScreen.kt | 1 - .../teamsolply/solply/onboarding/screen/SelectTownScreen.kt | 2 +- 11 files changed, 8 insertions(+), 14 deletions(-) diff --git a/data/onboarding/src/main/java/com/teamsolply/solply/onboarding/dto/request/PolicyAgreementInfoDto.kt b/data/onboarding/src/main/java/com/teamsolply/solply/onboarding/dto/request/PolicyAgreementInfoDto.kt index 06b61816..e22889f2 100644 --- a/data/onboarding/src/main/java/com/teamsolply/solply/onboarding/dto/request/PolicyAgreementInfoDto.kt +++ b/data/onboarding/src/main/java/com/teamsolply/solply/onboarding/dto/request/PolicyAgreementInfoDto.kt @@ -10,4 +10,4 @@ data class PolicyAgreementInfoDto( @SerialName("isAgree") val isAgree: Boolean -) \ No newline at end of file +) diff --git a/data/onboarding/src/main/java/com/teamsolply/solply/onboarding/dto/response/GetAllTownResponseDto.kt b/data/onboarding/src/main/java/com/teamsolply/solply/onboarding/dto/response/GetAllTownResponseDto.kt index 30cefdcf..db9d53da 100644 --- a/data/onboarding/src/main/java/com/teamsolply/solply/onboarding/dto/response/GetAllTownResponseDto.kt +++ b/data/onboarding/src/main/java/com/teamsolply/solply/onboarding/dto/response/GetAllTownResponseDto.kt @@ -19,4 +19,4 @@ data class TownDto( val parentTownId: Long? = null, @SerialName("subTowns") val subTowns: List? = null -) \ No newline at end of file +) diff --git a/data/onboarding/src/main/java/com/teamsolply/solply/onboarding/mapper/PolicyAgreementInfoMapper.kt b/data/onboarding/src/main/java/com/teamsolply/solply/onboarding/mapper/PolicyAgreementInfoMapper.kt index 7c03951f..ba5145f5 100644 --- a/data/onboarding/src/main/java/com/teamsolply/solply/onboarding/mapper/PolicyAgreementInfoMapper.kt +++ b/data/onboarding/src/main/java/com/teamsolply/solply/onboarding/mapper/PolicyAgreementInfoMapper.kt @@ -7,4 +7,4 @@ fun PolicyAgreementInfoEntity.toDto(): PolicyAgreementInfoDto = PolicyAgreementInfoDto( policyId = this.policyId, isAgree = this.isAgree - ) \ No newline at end of file + ) diff --git a/data/onboarding/src/main/java/com/teamsolply/solply/onboarding/mapper/TownEntitiyMapper.kt b/data/onboarding/src/main/java/com/teamsolply/solply/onboarding/mapper/TownEntitiyMapper.kt index 4ca03793..c0309801 100644 --- a/data/onboarding/src/main/java/com/teamsolply/solply/onboarding/mapper/TownEntitiyMapper.kt +++ b/data/onboarding/src/main/java/com/teamsolply/solply/onboarding/mapper/TownEntitiyMapper.kt @@ -43,4 +43,3 @@ fun TownDto.toSubEntity(): SubTownEntity { townName = townName ) } - diff --git a/data/onboarding/src/main/java/com/teamsolply/solply/onboarding/repository/OnBoardingRepositoryImpl.kt b/data/onboarding/src/main/java/com/teamsolply/solply/onboarding/repository/OnBoardingRepositoryImpl.kt index 1c31a9f3..cb48db68 100644 --- a/data/onboarding/src/main/java/com/teamsolply/solply/onboarding/repository/OnBoardingRepositoryImpl.kt +++ b/data/onboarding/src/main/java/com/teamsolply/solply/onboarding/repository/OnBoardingRepositoryImpl.kt @@ -35,7 +35,6 @@ class OnBoardingRepositoryImpl @Inject constructor( nickname: String, policyAgreementInfos: List ): Result = runCatching { - onBoardingRemoteDataSource.patchUserInfo( PatchUserInfoRequestDto( selectedTownId = selectedTownId, diff --git a/domain/onboarding/src/main/java/com/teamsolply/solply/onboarding/model/PolicyAgreementInfoEntity.kt b/domain/onboarding/src/main/java/com/teamsolply/solply/onboarding/model/PolicyAgreementInfoEntity.kt index bddbaba1..f8da33e0 100644 --- a/domain/onboarding/src/main/java/com/teamsolply/solply/onboarding/model/PolicyAgreementInfoEntity.kt +++ b/domain/onboarding/src/main/java/com/teamsolply/solply/onboarding/model/PolicyAgreementInfoEntity.kt @@ -3,4 +3,4 @@ package com.teamsolply.solply.onboarding.model data class PolicyAgreementInfoEntity( val policyId: Long, val isAgree: Boolean -) \ No newline at end of file +) diff --git a/domain/onboarding/src/main/java/com/teamsolply/solply/onboarding/model/TownEntity.kt b/domain/onboarding/src/main/java/com/teamsolply/solply/onboarding/model/TownEntity.kt index 2e3fdbe5..e5767279 100644 --- a/domain/onboarding/src/main/java/com/teamsolply/solply/onboarding/model/TownEntity.kt +++ b/domain/onboarding/src/main/java/com/teamsolply/solply/onboarding/model/TownEntity.kt @@ -13,4 +13,4 @@ data class ParentTownEntity( data class SubTownEntity( val townId: Long, val townName: String -) \ No newline at end of file +) diff --git a/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/OnBoardingContract.kt b/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/OnBoardingContract.kt index 58e59db8..f00aa866 100644 --- a/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/OnBoardingContract.kt +++ b/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/OnBoardingContract.kt @@ -27,8 +27,7 @@ data class OnBoardingState( val agree14: Boolean = false, val agreeService: Boolean = false, val agreePrivacy: Boolean = false - ) : UiState - +) : UiState sealed interface OnBoardingIntent : UiIntent { data object OnBoardingButtonClick : OnBoardingIntent @@ -48,7 +47,6 @@ sealed interface OnBoardingIntent : UiIntent { data class ChangeAgree14(val isChecked: Boolean) : OnBoardingIntent data class ChangeAgreeService(val isChecked: Boolean) : OnBoardingIntent data class ChangeAgreePrivacy(val isChecked: Boolean) : OnBoardingIntent - } sealed interface OnBoardingSideEffect : SideEffect { diff --git a/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/OnBoardingViewModel.kt b/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/OnBoardingViewModel.kt index 3baa762c..ace2de8e 100644 --- a/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/OnBoardingViewModel.kt +++ b/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/OnBoardingViewModel.kt @@ -95,7 +95,6 @@ class OnBoardingViewModel @Inject constructor( is OnBoardingIntent.ChangeAgreePrivacy -> { reduce { copy(agreePrivacy = intent.isChecked) } } - } } @@ -142,7 +141,7 @@ class OnBoardingViewModel @Inject constructor( selectedTownId = selectedTownId, persona = selectedPersona, nickname = uiState.value.userNickname, - policyAgreementInfos = policyInfos, + policyAgreementInfos = policyInfos ).onSuccess { reduce { copy(showStartingScreen = true) } } diff --git a/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/screen/AllowClauseScreen.kt b/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/screen/AllowClauseScreen.kt index 9beb0c47..b74a2554 100644 --- a/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/screen/AllowClauseScreen.kt +++ b/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/screen/AllowClauseScreen.kt @@ -132,7 +132,6 @@ fun AllowClauseScreen( // TODO: 개인정보 처리방침 이동 } ) - } SolplyBasicButton( diff --git a/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/screen/SelectTownScreen.kt b/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/screen/SelectTownScreen.kt index 679ea04d..e6cc50ee 100644 --- a/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/screen/SelectTownScreen.kt +++ b/feature/onboarding/src/main/java/com/teamsolply/solply/onboarding/screen/SelectTownScreen.kt @@ -186,7 +186,7 @@ private fun LeftRegionPane( .background(SolplyTheme.colors.gray100) ) { itemsIndexed(items = regions) { index: Int, item: ParentTownEntity -> - val selected = selectedRegionId == item.townId + val selected = selectedRegionId == item.townId val bg = if (selected) SolplyTheme.colors.white else SolplyTheme.colors.gray100 val textColor = if (selected) SolplyTheme.colors.black else SolplyTheme.colors.gray600 val fontWeight = if (selected) FontWeight.SemiBold else FontWeight.Medium