From b624ec4bbcac328362725694facf4c78c4f1ae71 Mon Sep 17 00:00:00 2001 From: sunghyun Date: Wed, 19 Aug 2026 16:55:26 +0900 Subject: [PATCH 1/2] =?UTF-8?q?:lipstick:=20=EB=94=94=ED=85=8C=EC=9D=BC=20?= =?UTF-8?q?=ED=99=94=EB=A9=B4=20OPENED=20=EC=83=81=ED=83=9C=20UI=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/idiotfrogs/detail/DetailScreen.kt | 184 ++++++++++-------- 1 file changed, 104 insertions(+), 80 deletions(-) diff --git a/feature/detail/src/main/java/com/idiotfrogs/detail/DetailScreen.kt b/feature/detail/src/main/java/com/idiotfrogs/detail/DetailScreen.kt index d717fbd..12be77b 100644 --- a/feature/detail/src/main/java/com/idiotfrogs/detail/DetailScreen.kt +++ b/feature/detail/src/main/java/com/idiotfrogs/detail/DetailScreen.kt @@ -34,6 +34,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.ColorFilter import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.SpanStyle @@ -304,39 +305,52 @@ fun DetailScreen( Row( modifier = Modifier .fillMaxWidth() - .wavyStroke( - color = MSTheme.color.primaryLight, - fillColor = MSTheme.color.primaryLight, - contentPadding = 16.dp, - ), - horizontalArrangement = Arrangement.SpaceBetween, + .background( + color = MSTheme.color.greyG5, + shape = RoundedCornerShape(12.dp), + ) + .padding(12.dp), verticalAlignment = Alignment.CenterVertically, ) { + Image( + modifier = Modifier.size(16.dp), + painter = painterResource(R.drawable.ic_shovel), + contentDescription = null, + colorFilter = ColorFilter.tint(MSTheme.color.white), + ) + + Spacer(Modifier.width(8.dp)) + MSText( modifier = Modifier.weight(1f), - text = "타임캡슐이 열렸어요!\n함께 쌓인 추억을 보러가요.", + text = "티켓이 오픈되었어요!", fontSize = 14.dp, - color = MSTheme.color.primaryDark, + color = MSTheme.color.white, ) - Spacer(Modifier.width(12.dp)) - - MSButton( - onClick = { onAction(DetailAction.PreviewClicked(capsuleId)) }, - colors = ButtonDefaults.buttonColors( - containerColor = MSTheme.color.greyG5, - ), - contentPadding = PaddingValues(horizontal = 12.dp, vertical = 9.dp), + Row( + modifier = Modifier.noRippleClickable { onAction(DetailAction.PreviewClicked(capsuleId)) }, + verticalAlignment = Alignment.CenterVertically, ) { MSText( text = "보러가기", fontSize = 12.dp, + fontWeight = FontWeight.Medium, color = MSTheme.color.white, ) + + Spacer(Modifier.width(4.dp)) + + Image( + modifier = Modifier.size(16.dp), + painter = painterResource(R.drawable.ic_chevron_right), + contentDescription = null, + colorFilter = ColorFilter.tint(MSTheme.color.white), + ) } } - Spacer(Modifier.height(16.dp)) + Spacer(Modifier.height(24.dp)) } MSText( @@ -481,78 +495,88 @@ fun DetailScreen( ) } - TimeCapsuleStatus.OPENED -> Unit - } - - Spacer(Modifier.height(28.dp)) - - Row( - modifier = Modifier.fillMaxWidth(), - horizontalArrangement = Arrangement.SpaceBetween, - verticalAlignment = Alignment.CenterVertically, - ) { - MSText( - text = "나의 추억 메시지", - color = MSTheme.color.greyG4, - ) - Image( - modifier = Modifier - .size(16.dp) - .noRippleClickable { onAction(DetailAction.MessageSectionClicked(capsuleId)) }, - painter = painterResource(R.drawable.ic_chevron_right), - contentDescription = "추억 메시지 상세 아이콘" - ) + TimeCapsuleStatus.OPENED -> { + Spacer(Modifier.height(28.dp)) + MSDashHorizontalDivider( + thickness = 2.dp, + dashWidth = 8.dp, + gapWidth = 8.dp, + color = MSTheme.color.greyG1, + ) + } } - Spacer(Modifier.height(20.dp)) + if (status != TimeCapsuleStatus.OPENED) { + Spacer(Modifier.height(28.dp)) - Row(horizontalArrangement = Arrangement.spacedBy(8.dp)) { - Column( - modifier = Modifier - .weight(1f) - .wavyStroke( - color = MSTheme.color.primaryLight, - fillColor = MSTheme.color.primaryLight, - contentPadding = 16.dp, - ), - verticalArrangement = Arrangement.Center, + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.CenterVertically, ) { MSText( - text = "메시지", - fontSize = 12.dp, - color = MSTheme.color.primaryDark, + text = "나의 추억 메시지", + color = MSTheme.color.greyG4, ) - Spacer(Modifier.height(4.dp)) - MSText( - text = "${capsule?.myContentCount}개 등록", - fontSize = 12.dp, - fontWeight = FontWeight.Medium, - color = MSTheme.color.primaryDark, + Image( + modifier = Modifier + .size(16.dp) + .noRippleClickable { onAction(DetailAction.MessageSectionClicked(capsuleId)) }, + painter = painterResource(R.drawable.ic_chevron_right), + contentDescription = "추억 메시지 상세 아이콘" ) } - Column( - modifier = Modifier - .weight(1f) - .wavyStroke( - color = MSTheme.color.primaryLight, - fillColor = MSTheme.color.primaryLight, - contentPadding = 16.dp, - ), - verticalArrangement = Arrangement.Center, - ) { - MSText( - text = "사진", - fontSize = 12.dp, - color = MSTheme.color.primaryDark, - ) - Spacer(Modifier.height(4.dp)) - MSText( - text = "${capsule?.myImageCount}개 등록", - fontSize = 12.dp, - fontWeight = FontWeight.Medium, - color = MSTheme.color.primaryDark, - ) + Spacer(Modifier.height(20.dp)) + + Row(horizontalArrangement = Arrangement.spacedBy(8.dp)) { + Column( + modifier = Modifier + .weight(1f) + .wavyStroke( + color = MSTheme.color.primaryLight, + fillColor = MSTheme.color.primaryLight, + contentPadding = 16.dp, + ), + verticalArrangement = Arrangement.Center, + ) { + MSText( + text = "메시지", + fontSize = 12.dp, + color = MSTheme.color.primaryDark, + ) + Spacer(Modifier.height(4.dp)) + MSText( + text = "${capsule?.myContentCount}개 등록", + fontSize = 12.dp, + fontWeight = FontWeight.Medium, + color = MSTheme.color.primaryDark, + ) + } + + Column( + modifier = Modifier + .weight(1f) + .wavyStroke( + color = MSTheme.color.primaryLight, + fillColor = MSTheme.color.primaryLight, + contentPadding = 16.dp, + ), + verticalArrangement = Arrangement.Center, + ) { + MSText( + text = "사진", + fontSize = 12.dp, + color = MSTheme.color.primaryDark, + ) + Spacer(Modifier.height(4.dp)) + MSText( + text = "${capsule?.myImageCount}개 등록", + fontSize = 12.dp, + fontWeight = FontWeight.Medium, + color = MSTheme.color.primaryDark, + ) + } } } From 15ee12967128eb5bfa004bea50269ab86bbbe527 Mon Sep 17 00:00:00 2001 From: sunghyun Date: Wed, 19 Aug 2026 17:06:28 +0900 Subject: [PATCH 2/2] =?UTF-8?q?:recycle:=20MSDashHorizontalDivider=20?= =?UTF-8?q?=EA=B3=B5=ED=86=B5=20=ED=98=B8=EC=B6=9C=20=EC=88=98=EC=A0=95=20?= =?UTF-8?q?=EB=B0=8F=20isBuried=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/idiotfrogs/detail/DetailScreen.kt | 43 +++++-------------- 1 file changed, 10 insertions(+), 33 deletions(-) diff --git a/feature/detail/src/main/java/com/idiotfrogs/detail/DetailScreen.kt b/feature/detail/src/main/java/com/idiotfrogs/detail/DetailScreen.kt index 12be77b..a3778de 100644 --- a/feature/detail/src/main/java/com/idiotfrogs/detail/DetailScreen.kt +++ b/feature/detail/src/main/java/com/idiotfrogs/detail/DetailScreen.kt @@ -137,7 +137,6 @@ fun DetailScreen( val status = capsule?.timeCapsuleStatus ?: TimeCapsuleStatus.BEFOREBURIED val role = capsule?.userRole ?: TimeCapsuleRole.CONTRIBUTOR val isHost = role == TimeCapsuleRole.HOST - val isBuried = status == TimeCapsuleStatus.BURIED var showBuryDialog by remember { mutableStateOf(false) } val defaultOpenAt = remember { @@ -275,7 +274,7 @@ fun DetailScreen( .fillMaxWidth() .padding(horizontal = 20.dp, vertical = 24.dp) ) { - if (isBuried) { + if (status == TimeCapsuleStatus.BURIED) { Row( modifier = Modifier .clip(RoundedCornerShape(12.dp)) @@ -381,16 +380,17 @@ fun DetailScreen( color = MSTheme.color.greyG3, ) + Spacer(Modifier.height(28.dp)) + MSDashHorizontalDivider( + thickness = 2.dp, + dashWidth = 8.dp, + gapWidth = 8.dp, + color = MSTheme.color.greyG1, + ) + when (status) { TimeCapsuleStatus.BEFOREBURIED -> { if (isHost) { - Spacer(Modifier.height(28.dp)) - MSDashHorizontalDivider( - thickness = 2.dp, - dashWidth = 8.dp, - gapWidth = 8.dp, - color = MSTheme.color.greyG1, - ) Spacer(Modifier.height(28.dp)) Row( modifier = Modifier.fillMaxWidth(), @@ -423,25 +423,10 @@ fun DetailScreen( gapWidth = 8.dp, color = MSTheme.color.greyG1, ) - } else { - Spacer(Modifier.height(28.dp)) - MSDashHorizontalDivider( - thickness = 2.dp, - dashWidth = 8.dp, - gapWidth = 8.dp, - color = MSTheme.color.greyG1, - ) } } TimeCapsuleStatus.BURIED -> { - Spacer(Modifier.height(28.dp)) - MSDashHorizontalDivider( - thickness = 2.dp, - dashWidth = 8.dp, - gapWidth = 8.dp, - color = MSTheme.color.greyG1, - ) Spacer(Modifier.height(28.dp)) Box( modifier = Modifier @@ -495,15 +480,7 @@ fun DetailScreen( ) } - TimeCapsuleStatus.OPENED -> { - Spacer(Modifier.height(28.dp)) - MSDashHorizontalDivider( - thickness = 2.dp, - dashWidth = 8.dp, - gapWidth = 8.dp, - color = MSTheme.color.greyG1, - ) - } + TimeCapsuleStatus.OPENED -> Unit } if (status != TimeCapsuleStatus.OPENED) {