From 226fdf3b7eb818b80c8dbb7b8a0cf5d4afaced08 Mon Sep 17 00:00:00 2001 From: oilbeaneda <20221444@sungshin.ac.kr> Date: Fri, 17 Jul 2026 16:04:25 +0900 Subject: [PATCH 1/7] =?UTF-8?q?[fix/#204]=20=EC=A7=84=ED=96=89=20=EC=A4=91?= =?UTF-8?q?=20=EB=A7=A4=EC=B9=AD=20=EC=A0=9C=EC=95=88=20=EC=9E=88=EC=9C=BC?= =?UTF-8?q?=EB=A9=B4=20=EC=A6=89=EC=8B=9C=EB=A7=A4=EC=B9=AD=20=EB=B2=84?= =?UTF-8?q?=ED=8A=BC=EC=9D=B4=20=EB=8C=80=EA=B8=B0=ED=99=94=EB=A9=B4?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=EB=B3=B5=EA=B7=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../instructorhome/InstructorHomeViewModel.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/presentation/instructor-home/src/main/java/com/ssing/presentation/instructorhome/InstructorHomeViewModel.kt b/presentation/instructor-home/src/main/java/com/ssing/presentation/instructorhome/InstructorHomeViewModel.kt index eef5137f..95cf6f5c 100644 --- a/presentation/instructor-home/src/main/java/com/ssing/presentation/instructorhome/InstructorHomeViewModel.kt +++ b/presentation/instructor-home/src/main/java/com/ssing/presentation/instructorhome/InstructorHomeViewModel.kt @@ -130,11 +130,17 @@ internal class InstructorHomeViewModel @Inject constructor( } fun onMatchingClick() { - // 확정/진행 중인 강습이 있으면 즉시매칭 시작을 막는다. if (uiState.value.hasActiveLesson) { sendEffect(InstructorHomeContract.Effect.ShowToast(MSG_ACTIVE_LESSON_BLOCK)) return } + val ongoingOffer = uiState.value.lessonCards + .filterIsInstance() + .firstOrNull { it.status == Status.Matched && it.offerId != null } + if (ongoingOffer != null) { + sendEffect(InstructorHomeContract.Effect.NavigateToMatchingWaiting(offerId = ongoingOffer.offerId)) + return + } sendEffect(InstructorHomeContract.Effect.NavigateToMatching) } From b2012d425d38007a0ec44011a2650916a65f342e Mon Sep 17 00:00:00 2001 From: oilbeaneda <20221444@sungshin.ac.kr> Date: Fri, 17 Jul 2026 19:55:35 +0900 Subject: [PATCH 2/7] =?UTF-8?q?[mod/#227]=20=EC=8B=9C=EC=9E=91=EB=8F=BC?= =?UTF-8?q?=EC=9A=94=20=EC=9D=B4=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ssing/core/ui/common/component/SsingMatchingDetailCard.kt | 2 +- .../consumermatching/screen/ConsumerMatchingResultScreen.kt | 2 +- .../com/ssing/presentation/consumerpayment/PaymentContract.kt | 4 ++-- .../presentation/instructormatching/model/MatchingUiModel.kt | 4 ++-- .../instructormatching/screen/MatchingOfferScreen.kt | 2 +- .../instructormatching/screen/MatchingPendingScreen.kt | 2 +- .../presentation/instructormatching/screen/MatchingScreen.kt | 4 ++-- .../instructormatching/screen/MatchingWaitingScreen.kt | 2 +- 8 files changed, 11 insertions(+), 11 deletions(-) diff --git a/core/ui/src/main/java/com/ssing/core/ui/common/component/SsingMatchingDetailCard.kt b/core/ui/src/main/java/com/ssing/core/ui/common/component/SsingMatchingDetailCard.kt index 9ead3fd9..72fa6c0a 100644 --- a/core/ui/src/main/java/com/ssing/core/ui/common/component/SsingMatchingDetailCard.kt +++ b/core/ui/src/main/java/com/ssing/core/ui/common/component/SsingMatchingDetailCard.kt @@ -384,7 +384,7 @@ private fun SsingClassDetailCardPreview( nickname = "김OO", teamCount = 0, totalCount = totalCount, - classDateTime = "강사와 만난 후 강습 시작", + classDateTime = "강사와 만난 후 강습 시작돼요", location = "OOO 리조트", duration = "0시간", maxCapacity = 0, diff --git a/presentation/consumer-matching/src/main/java/com/ssing/presentation/consumermatching/screen/ConsumerMatchingResultScreen.kt b/presentation/consumer-matching/src/main/java/com/ssing/presentation/consumermatching/screen/ConsumerMatchingResultScreen.kt index dae3d8e4..6f673ce4 100644 --- a/presentation/consumer-matching/src/main/java/com/ssing/presentation/consumermatching/screen/ConsumerMatchingResultScreen.kt +++ b/presentation/consumer-matching/src/main/java/com/ssing/presentation/consumermatching/screen/ConsumerMatchingResultScreen.kt @@ -55,7 +55,7 @@ internal fun ConsumerMatchingResultRoute( SsingModal( onDismissRequest = viewModel::closeCancelModal, title = "매칭을 취소할까요?", - text = "홈으로 이동하면 현재 매칭된 강사와의 연결이 취소됩니다", + text = "홈으로 이동하면 현재 매칭된 강사와의 연결이 취소돼요", primaryText = "계속 보기", onPrimary = viewModel::closeCancelModal, primaryStyle = SsingButtonStyle.GRAY, diff --git a/presentation/consumer-payment/src/main/java/com/ssing/presentation/consumerpayment/PaymentContract.kt b/presentation/consumer-payment/src/main/java/com/ssing/presentation/consumerpayment/PaymentContract.kt index 9e220254..24ee6615 100644 --- a/presentation/consumer-payment/src/main/java/com/ssing/presentation/consumerpayment/PaymentContract.kt +++ b/presentation/consumer-payment/src/main/java/com/ssing/presentation/consumerpayment/PaymentContract.kt @@ -13,7 +13,7 @@ internal interface PaymentContract { val showCancelModal: Boolean = false, val nickname: String = "", val tags: ImmutableList = persistentListOf(), - val classDateTime: String = "강사와 만난 뒤 강습 시작", + val classDateTime: String = "강사와 만난 뒤 강습 시작돼요", val location: String = "", val duration: String = "", val participant: String = "", @@ -29,4 +29,4 @@ internal interface PaymentContract { data object NavigateToHome : Effect data class ShowToast(val message: String) : Effect } -} \ No newline at end of file +} diff --git a/presentation/instructor-matching/src/main/java/com/ssing/presentation/instructormatching/model/MatchingUiModel.kt b/presentation/instructor-matching/src/main/java/com/ssing/presentation/instructormatching/model/MatchingUiModel.kt index 1035ceae..c4a023f8 100644 --- a/presentation/instructor-matching/src/main/java/com/ssing/presentation/instructormatching/model/MatchingUiModel.kt +++ b/presentation/instructor-matching/src/main/java/com/ssing/presentation/instructormatching/model/MatchingUiModel.kt @@ -88,7 +88,7 @@ internal data class MatchingOfferUiModel( val expiresAtMillis: Long?, val nickname: String = "", val teamCount: Int = 0, - val classDateTime: String = "강습생과 만난 직후 강습 시작", + val classDateTime: String = "강습생과 만난 직후 강습 시작돼요", val participant: String = "", val participants: List = emptyList(), val isPaid: Boolean = false, @@ -117,7 +117,7 @@ internal data class LessonSummaryUiModel( internal data class MatchingWaitingUiState( val nickname: String = "", val teamCount: Int = 0, - val classDateTime: String = "강습생과 만난 직후 강습 시작", + val classDateTime: String = "강습생과 만난 직후 강습 시작돼요", val participant: String = "", val participants: List = emptyList(), val isPaid: Boolean = false, diff --git a/presentation/instructor-matching/src/main/java/com/ssing/presentation/instructormatching/screen/MatchingOfferScreen.kt b/presentation/instructor-matching/src/main/java/com/ssing/presentation/instructormatching/screen/MatchingOfferScreen.kt index 44ae2e6d..4fafc693 100644 --- a/presentation/instructor-matching/src/main/java/com/ssing/presentation/instructormatching/screen/MatchingOfferScreen.kt +++ b/presentation/instructor-matching/src/main/java/com/ssing/presentation/instructormatching/screen/MatchingOfferScreen.kt @@ -104,7 +104,7 @@ private fun MatchingOfferScreenPreview() { expiresAtMillis = null, nickname = "홍지민", teamCount = 4, - classDateTime = "강습생과 만난 직후 강습 시작", + classDateTime = "강습생과 만난 직후 강습 시작돼요", participants = listOf( ParticipantUiModel(age = 11, isMale = true), ParticipantUiModel(age = 11, isMale = true), diff --git a/presentation/instructor-matching/src/main/java/com/ssing/presentation/instructormatching/screen/MatchingPendingScreen.kt b/presentation/instructor-matching/src/main/java/com/ssing/presentation/instructormatching/screen/MatchingPendingScreen.kt index 40751762..e5ce7d73 100644 --- a/presentation/instructor-matching/src/main/java/com/ssing/presentation/instructormatching/screen/MatchingPendingScreen.kt +++ b/presentation/instructor-matching/src/main/java/com/ssing/presentation/instructormatching/screen/MatchingPendingScreen.kt @@ -108,7 +108,7 @@ private fun MatchingPendingScreenPreview() { expiresAtMillis = null, nickname = "홍지민", teamCount = 4, - classDateTime = "강습생과 만난 직후 강습 시작", + classDateTime = "강습생과 만난 직후 강습 시작돼요", participants = listOf( ParticipantUiModel(age = 11, isMale = true), ParticipantUiModel(age = 11, isMale = true), diff --git a/presentation/instructor-matching/src/main/java/com/ssing/presentation/instructormatching/screen/MatchingScreen.kt b/presentation/instructor-matching/src/main/java/com/ssing/presentation/instructormatching/screen/MatchingScreen.kt index f612f570..f91a3401 100644 --- a/presentation/instructor-matching/src/main/java/com/ssing/presentation/instructormatching/screen/MatchingScreen.kt +++ b/presentation/instructor-matching/src/main/java/com/ssing/presentation/instructormatching/screen/MatchingScreen.kt @@ -172,7 +172,7 @@ private val previewOffer = MatchingOfferUiModel( expiresAtMillis = null, nickname = "홍지민", teamCount = 4, - classDateTime = "강습생과 만난 직후 강습 시작", + classDateTime = "강습생과 만난 직후 강습 시작돼요", participants = listOf( ParticipantUiModel(age = 28, isMale = true), ParticipantUiModel(age = 25, isMale = false), @@ -192,7 +192,7 @@ private val previewOffer = MatchingOfferUiModel( private val previewWaiting = MatchingWaitingUiState( nickname = "홍지민", teamCount = 2, - classDateTime = "강습생과 만난 직후 강습 시작", + classDateTime = "강습생과 만난 직후 강습 시작돼요", participants = listOf( ParticipantUiModel(age = 28, isMale = true), ParticipantUiModel(age = 25, isMale = false), diff --git a/presentation/instructor-matching/src/main/java/com/ssing/presentation/instructormatching/screen/MatchingWaitingScreen.kt b/presentation/instructor-matching/src/main/java/com/ssing/presentation/instructormatching/screen/MatchingWaitingScreen.kt index 7a17fed9..3d5a9dfc 100644 --- a/presentation/instructor-matching/src/main/java/com/ssing/presentation/instructormatching/screen/MatchingWaitingScreen.kt +++ b/presentation/instructor-matching/src/main/java/com/ssing/presentation/instructormatching/screen/MatchingWaitingScreen.kt @@ -131,7 +131,7 @@ private fun MatchingWaitingScreenPreview() { waiting = MatchingWaitingUiState( nickname = "김OO", teamCount = 2, - classDateTime = "강습생과 만난 후 강습 시작", + classDateTime = "강습생과 만난 후 강습 시작돼요", participants = listOf( ParticipantUiModel(age = 28, isMale = true), ParticipantUiModel(age = 25, isMale = false), From dd5f8a258d9be2097796782195357fd4c8f3ff64 Mon Sep 17 00:00:00 2001 From: oilbeaneda <20221444@sungshin.ac.kr> Date: Fri, 17 Jul 2026 20:26:46 +0900 Subject: [PATCH 3/7] =?UTF-8?q?[feat/#227]=20=EA=B0=95=EC=82=AC=20?= =?UTF-8?q?=EB=A7=A4=EC=B9=AD=20=EB=8C=80=EA=B8=B0=20=EC=9D=91=EB=8B=B5?= =?UTF-8?q?=EC=97=90=20estimatedLessonPriceAmount=20=ED=95=84=EB=93=9C=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit DTO, 도메인 모델, Repository 매핑 포함 --- .../instructormatching/model/InstructorMatchingActive.kt | 1 + .../remote/dto/response/InstructorMatchingOffersResponse.kt | 1 + .../repository/impl/InstructorMatchingRepositoryImpl.kt | 1 + 3 files changed, 3 insertions(+) diff --git a/data/src/main/java/com/ssing/data/matching/instructormatching/model/InstructorMatchingActive.kt b/data/src/main/java/com/ssing/data/matching/instructormatching/model/InstructorMatchingActive.kt index 78aba9cf..45b0c904 100644 --- a/data/src/main/java/com/ssing/data/matching/instructormatching/model/InstructorMatchingActive.kt +++ b/data/src/main/java/com/ssing/data/matching/instructormatching/model/InstructorMatchingActive.kt @@ -13,4 +13,5 @@ data class InstructorMatchingSetting( val availableDurationMinutes: List, val maxHeadcount: Int, val equipmentReady: Boolean, + val estimatedLessonPriceAmount: Int?, ) diff --git a/data/src/main/java/com/ssing/data/matching/instructormatching/remote/dto/response/InstructorMatchingOffersResponse.kt b/data/src/main/java/com/ssing/data/matching/instructormatching/remote/dto/response/InstructorMatchingOffersResponse.kt index 68b645b4..0aba544b 100644 --- a/data/src/main/java/com/ssing/data/matching/instructormatching/remote/dto/response/InstructorMatchingOffersResponse.kt +++ b/data/src/main/java/com/ssing/data/matching/instructormatching/remote/dto/response/InstructorMatchingOffersResponse.kt @@ -18,6 +18,7 @@ internal data class InstructorMatchingSettingResponse( @SerialName("availableDurationMinutes") val availableDurationMinutes: List, @SerialName("maxHeadcount") val maxHeadcount: Int, @SerialName("equipmentReady") val equipmentReady: Boolean, + @SerialName("estimatedLessonPriceAmount") val estimatedLessonPriceAmount: Int? = null, ) @Serializable diff --git a/data/src/main/java/com/ssing/data/matching/instructormatching/repository/impl/InstructorMatchingRepositoryImpl.kt b/data/src/main/java/com/ssing/data/matching/instructormatching/repository/impl/InstructorMatchingRepositoryImpl.kt index 5932d9f9..74361340 100644 --- a/data/src/main/java/com/ssing/data/matching/instructormatching/repository/impl/InstructorMatchingRepositoryImpl.kt +++ b/data/src/main/java/com/ssing/data/matching/instructormatching/repository/impl/InstructorMatchingRepositoryImpl.kt @@ -187,6 +187,7 @@ internal class InstructorMatchingRepositoryImpl @Inject constructor( availableDurationMinutes = availableDurationMinutes, maxHeadcount = maxHeadcount, equipmentReady = equipmentReady, + estimatedLessonPriceAmount = estimatedLessonPriceAmount, ) private fun InstructorMatchingOfferDecisionResponse.toModel(): InstructorMatchingOfferDecision = From bf2b9b5eedbd73d8ee0817bef7726b1932f033b2 Mon Sep 17 00:00:00 2001 From: oilbeaneda <20221444@sungshin.ac.kr> Date: Fri, 17 Jul 2026 20:26:50 +0900 Subject: [PATCH 4/7] =?UTF-8?q?[fix/#227]=20=EA=B0=95=EC=82=AC=20=EB=8C=80?= =?UTF-8?q?=EA=B8=B0=20=ED=99=94=EB=A9=B4=20=EC=98=88=EC=83=81=20=EA=B0=80?= =?UTF-8?q?=EA=B2=A9=C2=B7=EC=9E=A5=EB=B9=84=20=EC=83=81=ED=83=9C=20state?= =?UTF-8?q?=20=EB=A7=A4=ED=95=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../instructormatching/MatchingViewModel.kt | 16 ++++++++++++++-- .../instructormatching/model/MatchingUiModel.kt | 5 ----- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/presentation/instructor-matching/src/main/java/com/ssing/presentation/instructormatching/MatchingViewModel.kt b/presentation/instructor-matching/src/main/java/com/ssing/presentation/instructormatching/MatchingViewModel.kt index 94a20f21..81e37402 100644 --- a/presentation/instructor-matching/src/main/java/com/ssing/presentation/instructormatching/MatchingViewModel.kt +++ b/presentation/instructor-matching/src/main/java/com/ssing/presentation/instructormatching/MatchingViewModel.kt @@ -21,6 +21,7 @@ import com.ssing.presentation.instructormatching.model.LessonSummaryUiModel import com.ssing.presentation.instructormatching.model.LevelOption import com.ssing.presentation.instructormatching.model.MatchingExposureUiState import com.ssing.presentation.instructormatching.model.MatchingOfferUiModel +import com.ssing.presentation.instructormatching.model.MatchingWaitingUiState import com.ssing.presentation.instructormatching.model.OfferStatusOption import com.ssing.presentation.instructormatching.model.ParticipantUiModel import com.ssing.presentation.instructormatching.model.SportOption @@ -301,8 +302,12 @@ internal class MatchingViewModel @Inject constructor( instructorMatchingRepository.fetchMatchingActive() .onSuccess { active -> Timber.d("matching-offers 응답: $active") - // 저장된 조건은 항상 복원한다(대기 화면 조건 카드/조건 수정용). - updateState { copy(exposure = exposure.applyMatchingSetting(active.setting)) } + updateState { + copy( + exposure = exposure.applyMatchingSetting(active.setting), + waiting = waiting.applyMatchingSetting(active.setting), + ) + } val activeOfferId = active.offerId offerId = activeOfferId when { @@ -440,6 +445,13 @@ internal class MatchingViewModel @Inject constructor( isNoticeChecked = setting.equipmentReady, ) + private fun MatchingWaitingUiState.applyMatchingSetting( + setting: InstructorMatchingSetting, + ): MatchingWaitingUiState = copy( + price = setting.estimatedLessonPriceAmount ?: price, + equipmentStatus = if (setting.equipmentReady) "착용 완료" else "", + ) + private fun currentOffer(): MatchingOfferUiModel? = when (val phase = uiState.value.phase) { is MatchingPhase.OfferArrived -> phase.offer diff --git a/presentation/instructor-matching/src/main/java/com/ssing/presentation/instructormatching/model/MatchingUiModel.kt b/presentation/instructor-matching/src/main/java/com/ssing/presentation/instructormatching/model/MatchingUiModel.kt index c4a023f8..057d3111 100644 --- a/presentation/instructor-matching/src/main/java/com/ssing/presentation/instructormatching/model/MatchingUiModel.kt +++ b/presentation/instructor-matching/src/main/java/com/ssing/presentation/instructormatching/model/MatchingUiModel.kt @@ -4,11 +4,6 @@ import androidx.compose.runtime.Immutable import com.ssing.core.ui.common.component.Gender import com.ssing.core.ui.common.component.Participant - -// TODO(매칭-API): API 연동 시 MatchingRepository 내 private 메소드로 DTO → UiModel 변환 구현 -// (sport/lessonLevel enum 문자열 → label, durationMinutes → hours 등) - - /** * 강습 종목 옵션 **/ From d8cf57731964d0bf403f7d7c2ee256b28ba788ee Mon Sep 17 00:00:00 2001 From: oilbeaneda <20221444@sungshin.ac.kr> Date: Fri, 17 Jul 2026 20:26:56 +0900 Subject: [PATCH 5/7] =?UTF-8?q?[fix/#227]=20=EA=B0=95=EC=82=AC=20=EB=8C=80?= =?UTF-8?q?=EA=B8=B0=20=ED=99=94=EB=A9=B4=20=EC=B9=B4=EB=93=9C=EC=97=90=20?= =?UTF-8?q?=EC=98=88=EC=83=81=20=EA=B0=80=EA=B2=A9=C2=B7=EC=9E=A5=EB=B9=84?= =?UTF-8?q?=20=EC=83=81=ED=83=9C=20=ED=91=9C=EC=8B=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../instructormatching/screen/MatchingWaitingScreen.kt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/presentation/instructor-matching/src/main/java/com/ssing/presentation/instructormatching/screen/MatchingWaitingScreen.kt b/presentation/instructor-matching/src/main/java/com/ssing/presentation/instructormatching/screen/MatchingWaitingScreen.kt index 3d5a9dfc..faa493aa 100644 --- a/presentation/instructor-matching/src/main/java/com/ssing/presentation/instructormatching/screen/MatchingWaitingScreen.kt +++ b/presentation/instructor-matching/src/main/java/com/ssing/presentation/instructormatching/screen/MatchingWaitingScreen.kt @@ -33,7 +33,6 @@ import com.ssing.presentation.instructormatching.model.MatchingExposureUiState import com.ssing.presentation.instructormatching.model.MatchingWaitingUiState import com.ssing.presentation.instructormatching.model.ParticipantUiModel import com.ssing.presentation.instructormatching.model.SportOption -import com.ssing.presentation.instructormatching.model.toParticipant import kotlinx.collections.immutable.toPersistentList @Composable @@ -86,7 +85,7 @@ internal fun MatchingWaitingScreen( duration = exposure.selectedDurations.joinToString(" / ") { it.label }, maxCapacity = exposure.maxHeadcount, participant = waiting.participant, - price = waiting.price, + price = waiting.price.takeIf { it > 0 }, equipmentStatus = waiting.equipmentStatus, modifier = Modifier.padding(horizontal = 16.dp, vertical = 12.dp), borderColor = SSINGTheme.colors.borderAlternative, From 8c29a4d65300957716c44bf0909f982fa53f3272 Mon Sep 17 00:00:00 2001 From: oilbeaneda <20221444@sungshin.ac.kr> Date: Fri, 17 Jul 2026 20:27:00 +0900 Subject: [PATCH 6/7] =?UTF-8?q?[mod/#227]=20MatchingPendingScreen=20?= =?UTF-8?q?=EB=B2=84=ED=8A=BC=20=EC=83=81=EB=8B=A8=20Spacer=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 --- .../instructormatching/screen/MatchingPendingScreen.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/presentation/instructor-matching/src/main/java/com/ssing/presentation/instructormatching/screen/MatchingPendingScreen.kt b/presentation/instructor-matching/src/main/java/com/ssing/presentation/instructormatching/screen/MatchingPendingScreen.kt index e5ce7d73..400e1de3 100644 --- a/presentation/instructor-matching/src/main/java/com/ssing/presentation/instructormatching/screen/MatchingPendingScreen.kt +++ b/presentation/instructor-matching/src/main/java/com/ssing/presentation/instructormatching/screen/MatchingPendingScreen.kt @@ -1,10 +1,11 @@ package com.ssing.presentation.instructormatching.screen import androidx.compose.foundation.background -import com.ssing.presentation.instructormatching.R import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.heightIn import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.widthIn @@ -25,6 +26,7 @@ import com.ssing.core.ui.common.component.SsingButtonStyle import com.ssing.core.ui.common.component.SsingHeader import com.ssing.core.ui.common.component.SsingTopBar import com.ssing.core.ui.designsystem.theme.SSINGTheme +import com.ssing.presentation.instructormatching.R import com.ssing.presentation.instructormatching.component.MatchingOfferSummaryDetailCard import com.ssing.presentation.instructormatching.model.LessonSummaryUiModel import com.ssing.presentation.instructormatching.model.MatchingOfferUiModel @@ -82,6 +84,7 @@ internal fun MatchingPendingScreen( modifier = Modifier.padding(horizontal = 16.dp), ) } + Spacer(modifier = Modifier.height(16.dp)) SsingButton( text = "대기중", From 13878be4929fa5771a2341ba39054d85248bd036 Mon Sep 17 00:00:00 2001 From: oilbeaneda <20221444@sungshin.ac.kr> Date: Fri, 17 Jul 2026 20:42:59 +0900 Subject: [PATCH 7/7] =?UTF-8?q?[fix/#204]=20=EC=86=8C=EB=B9=84=EC=9E=90=20?= =?UTF-8?q?=EA=B0=95=EC=8A=B5=20=EC=A2=85=EB=A3=8C/=EC=B7=A8=EC=86=8C=20?= =?UTF-8?q?=EC=83=81=EC=84=B8=20=ED=8C=80=20=EB=8C=80=ED=91=9C=EC=9E=90=20?= =?UTF-8?q?=EC=9D=B4=EB=A6=84=20=ED=91=9C=EC=8B=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/consumerlesson/mapper/LessonInfoToUiModel.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/presentation/consumer-lesson/src/main/java/com/ssing/presentation/consumerlesson/mapper/LessonInfoToUiModel.kt b/presentation/consumer-lesson/src/main/java/com/ssing/presentation/consumerlesson/mapper/LessonInfoToUiModel.kt index b41b3cd2..9713598f 100644 --- a/presentation/consumer-lesson/src/main/java/com/ssing/presentation/consumerlesson/mapper/LessonInfoToUiModel.kt +++ b/presentation/consumer-lesson/src/main/java/com/ssing/presentation/consumerlesson/mapper/LessonInfoToUiModel.kt @@ -16,9 +16,10 @@ internal fun ConsumerLessonInfo.toUiModel( tags = persistentListOf(displaySport(basic.sport), displayLessonLevel(basic.lessonLevel)), teamNicknames = matchingRequests .map { it.representativeMemberName } + .ifEmpty { basic.representativeConsumerNames } .toPersistentList(), totalCount = basic.totalHeadcount, place = basic.resort.displayName, duration = formatMinutesText(durationMinutes), price = myTeamLessonPrice, -) \ No newline at end of file +)