diff --git a/feature/src/main/java/com/terning/feature/dialog/detail/ScrapDialog.kt b/feature/src/main/java/com/terning/feature/dialog/detail/ScrapDialog.kt index 7d6df6fe3..0928b1cc8 100644 --- a/feature/src/main/java/com/terning/feature/dialog/detail/ScrapDialog.kt +++ b/feature/src/main/java/com/terning/feature/dialog/detail/ScrapDialog.kt @@ -51,7 +51,7 @@ import com.terning.core.type.ColorType import com.terning.feature.R import com.terning.feature.dialog.detail.component.ColorPalette import com.terning.feature.dialog.detail.component.ScrapColorChangeButton -import com.terning.feature.intern.component.InternInfoRow +import com.terning.feature.dialog.detail.component.ScrapInfoRow @Composable @@ -86,7 +86,11 @@ fun ScrapDialog( onDismissRequest() } - is ScrapDialogSideEffect.PatchedScrap -> onClickChangeColor() + is ScrapDialogSideEffect.PatchedScrap -> { + onClickChangeColor() + onDismissRequest() + } + is ScrapDialogSideEffect.NavigateToDetail -> onClickNavigateButton( internshipAnnouncementId ) @@ -116,7 +120,6 @@ fun ScrapDialog( companyImage = companyImage, selectedColorType = uiState.selectedColorType, isColorChanged = uiState.isColorChanged, - isColorChangedOnce = uiState.isColorChangedOnce, onClickColorButton = viewModel::changeSelectedColor, onClickColorChangeButton = { if (uiState.isColorChanged) @@ -144,7 +147,6 @@ private fun ScrapDialogScreen( companyImage: String, selectedColorType: ColorType, isColorChanged: Boolean, - isColorChangedOnce: Boolean, onClickColorButton: (ColorType) -> Unit, onClickNavigateButton: () -> Unit, onClickColorChangeButton: () -> Unit, @@ -158,7 +160,7 @@ private fun ScrapDialogScreen( ) { Column( modifier = Modifier - .padding(horizontal = 11.dp), + .padding(horizontal = 16.dp), horizontalAlignment = Alignment.CenterHorizontally ) { AsyncImage( @@ -221,43 +223,40 @@ private fun ScrapDialogScreen( Spacer(modifier = Modifier.height(8.dp)) - Box( - modifier = Modifier.fillMaxWidth(), - contentAlignment = Alignment.Center - ) { - ColorPalette( - selectedColor = selectedColorType, - onColorSelected = onClickColorButton - ) - } - HorizontalDivider( - thickness = 1.dp, - color = Grey200, - modifier = Modifier.padding(vertical = 8.dp) + ColorPalette( + selectedColor = selectedColorType, + onColorSelected = onClickColorButton ) + } + HorizontalDivider( + thickness = 1.dp, + color = Grey200, + modifier = Modifier.padding(vertical = 8.dp) + ) - Column( - modifier = Modifier.padding(vertical = 4.dp), - verticalArrangement = Arrangement.spacedBy( - 5.dp, - Alignment.CenterVertically - ), - horizontalAlignment = Alignment.Start, - ) { - InternInfoRow( - title = stringResource(id = R.string.intern_info_d_day), - value = deadline - ) - InternInfoRow( - title = stringResource(id = R.string.intern_info_working), - value = workingPeriod - ) - InternInfoRow( - title = stringResource(id = R.string.intern_info_start_date), - value = startYearMonth - ) - } + Column( + modifier = Modifier + .padding(vertical = 4.dp, horizontal = 13.dp) + .fillMaxWidth(), + verticalArrangement = Arrangement.spacedBy( + 5.dp, + Alignment.CenterVertically + ), + horizontalAlignment = Alignment.Start, + ) { + ScrapInfoRow( + title = stringResource(id = R.string.intern_info_d_day), + value = deadline + ) + ScrapInfoRow( + title = stringResource(id = R.string.intern_info_working), + value = workingPeriod + ) + ScrapInfoRow( + title = stringResource(id = R.string.intern_info_start_date), + value = startYearMonth + ) } Spacer(modifier = Modifier.height(8.dp)) @@ -265,10 +264,8 @@ private fun ScrapDialogScreen( if (isScrapped) { DetailScrapButton( isColorChanged = isColorChanged, - isColorChangedOnce = isColorChangedOnce, onClickNavigateButton = onClickNavigateButton, onClickColorChangeButton = onClickColorChangeButton - ) } else { NewScrapButton(onClickScrapButton = onClickScrapButton) @@ -295,7 +292,6 @@ private fun NewScrapButton( @Composable private fun DetailScrapButton( isColorChanged: Boolean, - isColorChangedOnce: Boolean, onClickNavigateButton: () -> Unit, onClickColorChangeButton: () -> Unit, modifier: Modifier = Modifier @@ -305,7 +301,6 @@ private fun DetailScrapButton( ) { ScrapColorChangeButton( isColorChanged = isColorChanged, - isColorChangedOnce = isColorChangedOnce, paddingVertical = 12.dp, cornerRadius = 8.dp, onButtonClick = onClickColorChangeButton, @@ -339,7 +334,6 @@ private fun ScrapDialogPreview() { onClickScrapButton = {}, onClickColorButton = {}, isColorChanged = false, - isColorChangedOnce = true, selectedColorType = ColorType.RED ) } @@ -363,7 +357,6 @@ private fun DetailScrapButtonPreview() { onClickNavigateButton = {}, onClickColorChangeButton = {}, isColorChanged = false, - isColorChangedOnce = false ) } } \ No newline at end of file diff --git a/feature/src/main/java/com/terning/feature/dialog/detail/ScrapDialogViewModel.kt b/feature/src/main/java/com/terning/feature/dialog/detail/ScrapDialogViewModel.kt index 6a72a30f7..d850699a8 100644 --- a/feature/src/main/java/com/terning/feature/dialog/detail/ScrapDialogViewModel.kt +++ b/feature/src/main/java/com/terning/feature/dialog/detail/ScrapDialogViewModel.kt @@ -30,7 +30,6 @@ class ScrapDialogViewModel @Inject constructor( _uiState.update { currentState -> currentState.copy( isColorChanged = false, - isColorChangedOnce = false ) } } @@ -48,7 +47,7 @@ class ScrapDialogViewModel @Inject constructor( _uiState.update { currentState -> currentState.copy( selectedColorType = colorType, - isColorChanged = colorType != _uiState.value.initialColorType + isColorChanged = true ) } } @@ -86,7 +85,6 @@ class ScrapDialogViewModel @Inject constructor( currentState.copy( initialColorType = color, isColorChanged = false, - isColorChangedOnce = true, ) } }.onFailure { diff --git a/feature/src/main/java/com/terning/feature/dialog/detail/component/ColorPalette.kt b/feature/src/main/java/com/terning/feature/dialog/detail/component/ColorPalette.kt index f752e464c..b4cfa6ddf 100644 --- a/feature/src/main/java/com/terning/feature/dialog/detail/component/ColorPalette.kt +++ b/feature/src/main/java/com/terning/feature/dialog/detail/component/ColorPalette.kt @@ -37,7 +37,7 @@ fun ColorPalette( onColorSelected = onOptionSelected ) }, - verticalArrangementSpace = 6.dp, + verticalArrangementSpace = 0.dp, horizontalArrangementSpace = 0.dp, modifier = modifier.wrapContentSize() ) diff --git a/feature/src/main/java/com/terning/feature/dialog/detail/component/ScrapColorChangeButton.kt b/feature/src/main/java/com/terning/feature/dialog/detail/component/ScrapColorChangeButton.kt index 59fe57c74..5e3221985 100644 --- a/feature/src/main/java/com/terning/feature/dialog/detail/component/ScrapColorChangeButton.kt +++ b/feature/src/main/java/com/terning/feature/dialog/detail/component/ScrapColorChangeButton.kt @@ -21,9 +21,9 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import com.terning.core.designsystem.theme.Grey150 +import com.terning.core.designsystem.theme.Grey375 import com.terning.core.designsystem.theme.Grey400 import com.terning.core.designsystem.theme.TerningMain -import com.terning.core.designsystem.theme.TerningSub4 import com.terning.core.designsystem.theme.TerningSub5 import com.terning.core.designsystem.theme.TerningTheme import com.terning.core.designsystem.theme.White @@ -33,7 +33,6 @@ import com.terning.feature.R @Composable fun ScrapColorChangeButton( isColorChanged: Boolean, - isColorChangedOnce: Boolean, cornerRadius: Dp, paddingVertical: Dp, onButtonClick: () -> Unit, @@ -43,22 +42,17 @@ fun ScrapColorChangeButton( val isPressed by interactionSource.collectIsPressedAsState() val backgroundColor = when { - isColorChangedOnce && !isColorChanged -> TerningSub4 isColorChanged && !isPressed -> White isColorChanged && isPressed -> TerningSub5 else -> White } val textColor = when { - !isColorChangedOnce && !isColorChanged -> Grey400 - else -> TerningMain + isColorChanged -> TerningMain + else -> Grey375 } val borderColor = when { - !isColorChangedOnce && !isColorChanged -> Grey150 - else -> TerningMain - } - val text = when { - isColorChangedOnce && !isColorChanged -> R.string.dialog_content_calendar_color_change_complete - else -> R.string.dialog_content_calendar_color_change + isColorChanged -> TerningMain + else -> Grey150 } CompositionLocalProvider(LocalRippleTheme provides NoRippleTheme) { @@ -80,7 +74,7 @@ fun ScrapColorChangeButton( onClick = onButtonClick ) { Text( - text = stringResource(id = text), + text = stringResource(id = R.string.dialog_content_calendar_color_change), style = TerningTheme.typography.button3, textAlign = TextAlign.Center, ) diff --git a/feature/src/main/java/com/terning/feature/dialog/detail/component/ScrapInfoRow.kt b/feature/src/main/java/com/terning/feature/dialog/detail/component/ScrapInfoRow.kt new file mode 100644 index 000000000..389b858c3 --- /dev/null +++ b/feature/src/main/java/com/terning/feature/dialog/detail/component/ScrapInfoRow.kt @@ -0,0 +1,30 @@ +package com.terning.feature.dialog.detail.component + +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Row +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.unit.dp +import com.terning.core.designsystem.theme.Grey375 +import com.terning.core.designsystem.theme.Grey400 +import com.terning.core.designsystem.theme.TerningTheme + +@Composable +fun ScrapInfoRow(title: String, value: String) { + Row( + horizontalArrangement = Arrangement.spacedBy(23.dp, Alignment.Start), + verticalAlignment = Alignment.Top, + ) { + Text( + text = title, + style = TerningTheme.typography.body2, + color = Grey400, + ) + Text( + text = value, + style = TerningTheme.typography.body3, + color = Grey375, + ) + } +} \ No newline at end of file diff --git a/feature/src/main/java/com/terning/feature/dialog/detail/state/ScrapDialogUiState.kt b/feature/src/main/java/com/terning/feature/dialog/detail/state/ScrapDialogUiState.kt index c78c94576..1e2daac66 100644 --- a/feature/src/main/java/com/terning/feature/dialog/detail/state/ScrapDialogUiState.kt +++ b/feature/src/main/java/com/terning/feature/dialog/detail/state/ScrapDialogUiState.kt @@ -6,5 +6,4 @@ data class ScrapDialogUiState( val initialColorType: ColorType = ColorType.RED, val selectedColorType: ColorType = ColorType.RED, val isColorChanged: Boolean = false, - val isColorChangedOnce: Boolean = false, ) \ No newline at end of file