From 98167a909ff30b335f14bf836c14e902affcc7ff Mon Sep 17 00:00:00 2001 From: boiledegg Date: Tue, 10 Sep 2024 11:09:19 +0900 Subject: [PATCH 1/7] =?UTF-8?q?[ADD/#201]=20TerningBasicDialog=20=EC=A3=BC?= =?UTF-8?q?=EC=84=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../designsystem/component/dialog/TerningBasicDialog.kt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/core/src/main/java/com/terning/core/designsystem/component/dialog/TerningBasicDialog.kt b/core/src/main/java/com/terning/core/designsystem/component/dialog/TerningBasicDialog.kt index 2adeeaaba..71f988df2 100644 --- a/core/src/main/java/com/terning/core/designsystem/component/dialog/TerningBasicDialog.kt +++ b/core/src/main/java/com/terning/core/designsystem/component/dialog/TerningBasicDialog.kt @@ -21,6 +21,14 @@ import com.terning.core.designsystem.theme.Grey300 import com.terning.core.designsystem.theme.White import com.terning.core.extension.noRippleClickable +/** + * 앱에서 사용하는 다이얼로그의 기본 프레임입니다. + * + * @param onDismissRequest 사용자가 다이얼로그를 닫을 때 호출되는 콜백입니다. + * @param properties 다이얼로그의 속성입니다. + * @param content 다이얼로그의 내용을 구성하는 컴포저블 컨텐츠입니다. + */ + @Composable fun TerningBasicDialog( onDismissRequest: () -> Unit, From 3bc3b9b588b8d793d8f6375a92fffe604fb32f51 Mon Sep 17 00:00:00 2001 From: boiledegg Date: Tue, 10 Sep 2024 11:11:11 +0900 Subject: [PATCH 2/7] =?UTF-8?q?[DEL/#201]=20=EB=AF=B8=EC=82=AC=EC=9A=A9=20?= =?UTF-8?q?=EC=BB=B4=ED=8F=AC=EB=84=8C=ED=8A=B8=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dialog/ScrapCancelDialogContent.kt | 84 -------------- .../component/item/ColorPalette.kt | 106 ------------------ .../intern/component/InternCancelDialog.kt | 20 ---- 3 files changed, 210 deletions(-) delete mode 100644 core/src/main/java/com/terning/core/designsystem/component/dialog/ScrapCancelDialogContent.kt delete mode 100644 core/src/main/java/com/terning/core/designsystem/component/item/ColorPalette.kt delete mode 100644 feature/src/main/java/com/terning/feature/intern/component/InternCancelDialog.kt diff --git a/core/src/main/java/com/terning/core/designsystem/component/dialog/ScrapCancelDialogContent.kt b/core/src/main/java/com/terning/core/designsystem/component/dialog/ScrapCancelDialogContent.kt deleted file mode 100644 index 2eb518859..000000000 --- a/core/src/main/java/com/terning/core/designsystem/component/dialog/ScrapCancelDialogContent.kt +++ /dev/null @@ -1,84 +0,0 @@ -package com.terning.core.designsystem.component.dialog - -import androidx.compose.foundation.Image -import androidx.compose.foundation.background -import androidx.compose.foundation.border -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.aspectRatio -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.wrapContentHeight -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.layout.ContentScale -import androidx.compose.ui.res.painterResource -import androidx.compose.ui.res.stringResource -import androidx.compose.ui.text.style.TextAlign -import androidx.compose.ui.unit.dp -import com.airbnb.lottie.compose.LottieAnimation -import com.airbnb.lottie.compose.LottieCompositionSpec -import com.airbnb.lottie.compose.LottieConstants -import com.airbnb.lottie.compose.rememberLottieComposition -import com.terning.core.R -import com.terning.core.designsystem.component.button.RoundButton -import com.terning.core.designsystem.component.item.TerningLottieAnimation -import com.terning.core.designsystem.theme.Grey200 -import com.terning.core.designsystem.theme.Grey350 -import com.terning.core.designsystem.theme.Grey500 -import com.terning.core.designsystem.theme.TerningMain -import com.terning.core.designsystem.theme.TerningTheme - -@Composable -fun ScrapCancelDialogContent( - onClickScrapCancel: () -> Unit = {}, -) { - Box( - modifier = Modifier - .fillMaxWidth() - .padding(top = 50.dp), - contentAlignment = Alignment.TopCenter - ) { - Column( - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 16.dp), - horizontalAlignment = Alignment.CenterHorizontally - ) { - TerningLottieAnimation( - jsonString = "terning_scrap_cancel.json", - modifier = Modifier - .fillMaxWidth() - .aspectRatio(1f) - ) - - Text( - text = stringResource(id = R.string.dialog_content_scrap_cancel_main_title), - textAlign = TextAlign.Center, - style = TerningTheme.typography.title4, - color = Grey500, - ) - Text( - text = stringResource(id = R.string.dialog_content_scrap_cancel_sub_title), - style = TerningTheme.typography.body5, - color = Grey350, - modifier = Modifier.padding( - top = 5.dp - ) - ) - RoundButton( - style = TerningTheme.typography.button3, - paddingVertical = 12.dp, - cornerRadius = 8.dp, - text = R.string.dialog_scrap_cancel_button, - onButtonClick = onClickScrapCancel, - modifier = Modifier.padding(bottom = 8.dp, top = 40.dp) - ) - } - } -} \ No newline at end of file diff --git a/core/src/main/java/com/terning/core/designsystem/component/item/ColorPalette.kt b/core/src/main/java/com/terning/core/designsystem/component/item/ColorPalette.kt deleted file mode 100644 index 663286fa1..000000000 --- a/core/src/main/java/com/terning/core/designsystem/component/item/ColorPalette.kt +++ /dev/null @@ -1,106 +0,0 @@ -package com.terning.core.designsystem.component.item - -import androidx.compose.foundation.Image -import androidx.compose.foundation.background -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.size -import androidx.compose.foundation.layout.wrapContentSize -import androidx.compose.foundation.shape.CircleShape -import androidx.compose.runtime.Composable -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.graphics.Color -import androidx.compose.ui.res.painterResource -import androidx.compose.ui.tooling.preview.Preview -import androidx.compose.ui.unit.dp -import com.terning.core.R -import com.terning.core.designsystem.theme.CalBlue1 -import com.terning.core.designsystem.theme.CalBlue2 -import com.terning.core.designsystem.theme.CalGreen1 -import com.terning.core.designsystem.theme.CalGreen2 -import com.terning.core.designsystem.theme.CalOrange1 -import com.terning.core.designsystem.theme.CalOrange2 -import com.terning.core.designsystem.theme.CalPink -import com.terning.core.designsystem.theme.CalPurple -import com.terning.core.designsystem.theme.CalRed -import com.terning.core.designsystem.theme.CalYellow -import com.terning.core.extension.noRippleClickable - -@Composable -fun ColorPalette( - initialColor: Color, - onColorSelected: (Color) -> Unit = {}, -) { - val colorList = listOf( - CalRed, - CalOrange2, - CalGreen1, - CalBlue1, - CalPurple, - CalOrange1, - CalYellow, - CalGreen2, - CalBlue2, - CalPink - ) - - var selectedColor by remember { mutableStateOf(initialColor) } - - RadioButtonGroups( - options = colorList, - gridCellCount = 5, - onOptionSelected = { color -> - selectedColor = color - onColorSelected(color) - }, - buttonComposable = { color, isSelected, onOptionSelected -> - ColorButton( - color = color, - isSelected = selectedColor == color, - onColorSelected = onOptionSelected - ) - }, - verticalArrangementSpace = 6.dp, - horizontalArrangementSpace = 0.dp, - ) -} - -@Composable -internal fun ColorButton( - modifier: Modifier = Modifier, - color: Color, - isSelected: Boolean, - onColorSelected: (Color) -> Unit, -) { - Box(modifier = modifier.wrapContentSize()) { - Box( - modifier = Modifier - .size(39.dp) - .background( - shape = CircleShape, - color = color - ) - .noRippleClickable { - onColorSelected(color) - }, - contentAlignment = Alignment.Center - ) { - if (isSelected) { - Image( - painter = painterResource(id = R.drawable.ic_color_check), - contentDescription = "" - ) - } - } - } -} - -@Preview(showBackground = true) -@Composable -fun ColorPalettePreview() { - ColorPalette(initialColor = CalRed) -} diff --git a/feature/src/main/java/com/terning/feature/intern/component/InternCancelDialog.kt b/feature/src/main/java/com/terning/feature/intern/component/InternCancelDialog.kt deleted file mode 100644 index 122a6450e..000000000 --- a/feature/src/main/java/com/terning/feature/intern/component/InternCancelDialog.kt +++ /dev/null @@ -1,20 +0,0 @@ -package com.terning.feature.intern.component - -import androidx.compose.runtime.Composable -import com.terning.core.designsystem.component.dialog.ScrapCancelDialogContent -import com.terning.core.designsystem.component.dialog.TerningBasicDialog - - -@Composable -fun InternCancelDialog( - onDismissRequest: () -> Unit, - onClickScrapCancel: () -> Unit, -) { - TerningBasicDialog( - onDismissRequest = onDismissRequest - ) { - ScrapCancelDialogContent( - onClickScrapCancel = onClickScrapCancel - ) - } -} From 7f5108d188ab6e79dc3f1d66ecb12ac48c7befb7 Mon Sep 17 00:00:00 2001 From: boiledegg Date: Tue, 10 Sep 2024 11:29:18 +0900 Subject: [PATCH 3/7] =?UTF-8?q?[ADD/#201]=20InternItem=20=EC=A3=BC?= =?UTF-8?q?=EC=84=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/designsystem/component/item/InternItem.kt | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/core/src/main/java/com/terning/core/designsystem/component/item/InternItem.kt b/core/src/main/java/com/terning/core/designsystem/component/item/InternItem.kt index ef22f1c5b..9c25a1930 100644 --- a/core/src/main/java/com/terning/core/designsystem/component/item/InternItem.kt +++ b/core/src/main/java/com/terning/core/designsystem/component/item/InternItem.kt @@ -37,6 +37,18 @@ import com.terning.core.designsystem.theme.TerningPointTheme import com.terning.core.designsystem.theme.TerningTheme import com.terning.core.extension.noRippleClickable +/** + * 홈, 달력, 검색 화면에서 공고를 나타낼 때 사용되는 뷰입니다. + * + * @param imageUrl 공고 이미지 URL입니다. + * @param title 공고 제목입니다. + * @param dateDeadline 공고 기한입니다. + * @param workingPeriod 공고 근무 기간입니다. + * @param isScraped 스크랩 여부입니다. + * @param modifier 수정자입니다. + * @param scrapId 공고 아이디입니다. + * @param onScrapButtonClicked 스크랩 버튼 클릭 시 호출되는 콜백입니다. + */ @Composable fun InternItem( From 3cd9f7780b1d1a14c9f15ee82658ceec75004964 Mon Sep 17 00:00:00 2001 From: boiledegg Date: Tue, 10 Sep 2024 11:32:31 +0900 Subject: [PATCH 4/7] =?UTF-8?q?[ADD/#201]=20ScrapBox=20=EC=A3=BC=EC=84=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/designsystem/component/item/ScrapBox.kt | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/com/terning/core/designsystem/component/item/ScrapBox.kt b/core/src/main/java/com/terning/core/designsystem/component/item/ScrapBox.kt index e57aa032a..ff4e69d52 100644 --- a/core/src/main/java/com/terning/core/designsystem/component/item/ScrapBox.kt +++ b/core/src/main/java/com/terning/core/designsystem/component/item/ScrapBox.kt @@ -22,11 +22,15 @@ import com.terning.core.designsystem.theme.TerningPointTheme import com.terning.core.designsystem.theme.White /** - * ScrapBox is made for easy customization of scrap box used in Calendar & Home Screen + * 홈과 달력 화면에서 스크랩된 공고 목록을 표시하기 위해 사용하는 컴포넌트입니다. * - * [modifier] must be assigned for assigning size of the box and padding - * [elevation] must be set greater than zero for shadow effect, mainly used in Calendar - * [borderWidth] must be set greater than zero for border effect, mainly used in Home + * @param cornerRadius 코너 둥근 정도입니다. + * @param scrapColor 좌측 공간의 색상입니다. + * @param modifier 수정자입니다. + * @param elevation 그림자입니다. + * @param borderWidth 테두리 두께입니다. + * @param borderColor 테두리 색상입니다. + * @param content 컴포저블 내용입니다. */ @Composable From c0be098554db3b46d863b409f9b322a5326d927b Mon Sep 17 00:00:00 2001 From: boiledegg Date: Tue, 10 Sep 2024 11:34:03 +0900 Subject: [PATCH 5/7] =?UTF-8?q?[ADD/#201]=20TerningLottieAnimation=20?= =?UTF-8?q?=EC=A3=BC=EC=84=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../designsystem/component/item/TerningLottieAnimation.kt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/core/src/main/java/com/terning/core/designsystem/component/item/TerningLottieAnimation.kt b/core/src/main/java/com/terning/core/designsystem/component/item/TerningLottieAnimation.kt index 1ff5c5df3..1e819a4b5 100644 --- a/core/src/main/java/com/terning/core/designsystem/component/item/TerningLottieAnimation.kt +++ b/core/src/main/java/com/terning/core/designsystem/component/item/TerningLottieAnimation.kt @@ -9,6 +9,14 @@ import com.airbnb.lottie.compose.LottieAnimation import com.airbnb.lottie.compose.LottieCompositionSpec import com.airbnb.lottie.compose.rememberLottieComposition +/** + * 로티애니메이션을 표시하기 위한 컴포넌트입니다. + * + * @param jsonString 로티애니메이션의 JSON 문자열로, assets 폴더에 있는 JSON 파일의 이름입니다. + * @param modifier 수정자입니다. + * @param iterations 반복 횟수입니다. 기본값은 1회입니다. + */ + @Composable fun TerningLottieAnimation( jsonString: String, From 6cf1dfb06004da5a40eb7e87d58ea80ffc94690e Mon Sep 17 00:00:00 2001 From: boiledegg Date: Tue, 10 Sep 2024 11:37:36 +0900 Subject: [PATCH 6/7] =?UTF-8?q?[ADD/#201]=20CalendarTopAppBar=20=EC=A3=BC?= =?UTF-8?q?=EC=84=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../component/topappbar/CalendarTopAppBar.kt | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/com/terning/core/designsystem/component/topappbar/CalendarTopAppBar.kt b/core/src/main/java/com/terning/core/designsystem/component/topappbar/CalendarTopAppBar.kt index 70fdab3eb..30364b680 100644 --- a/core/src/main/java/com/terning/core/designsystem/component/topappbar/CalendarTopAppBar.kt +++ b/core/src/main/java/com/terning/core/designsystem/component/topappbar/CalendarTopAppBar.kt @@ -26,14 +26,25 @@ import com.terning.core.extension.noRippleClickable import java.time.LocalDate import java.time.YearMonth +/** + * 달력의 상단바를 표시하기 위한 컴포넌트입니다. + * + * @param date 현재 표시되는 연월입니다. + * @param isWeekExpanded 주간 달력 뷰가 확장되었는지 여부입니다. + * @param isListExpanded 목록 뷰가 확장되었는지 여부입니다. + * @param onListButtonClicked 목록 버튼을 클릭했을 때 호출되는 콜백입니다. + * @param onMonthNavigationButtonClicked 연월을 변경하는 버튼을 클릭했을 때 호출되는 콜백입니다. + * @param modifier 수정자입니다. + */ + @Composable fun CalendarTopAppBar( - modifier: Modifier = Modifier, date: YearMonth, isWeekExpanded: Boolean, isListExpanded: Boolean, onListButtonClicked: () -> Unit, onMonthNavigationButtonClicked: (Int) -> Unit, + modifier: Modifier = Modifier ) { Box( modifier = modifier From 48e99e05040fc10013f4bc5302f25394e52d199e Mon Sep 17 00:00:00 2001 From: boiledegg Date: Tue, 10 Sep 2024 11:38:14 +0900 Subject: [PATCH 7/7] =?UTF-8?q?[DEL/#201]=20=EB=9D=BC=EC=9D=B4=EB=B8=8C?= =?UTF-8?q?=EB=9F=AC=EB=A6=AC=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/terning/core/designsystem/component/item/InternItem.kt | 2 -- 1 file changed, 2 deletions(-) diff --git a/core/src/main/java/com/terning/core/designsystem/component/item/InternItem.kt b/core/src/main/java/com/terning/core/designsystem/component/item/InternItem.kt index 9c25a1930..88d4dd4ed 100644 --- a/core/src/main/java/com/terning/core/designsystem/component/item/InternItem.kt +++ b/core/src/main/java/com/terning/core/designsystem/component/item/InternItem.kt @@ -1,7 +1,6 @@ package com.terning.core.designsystem.component.item import androidx.compose.foundation.Image -import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.IntrinsicSize @@ -30,7 +29,6 @@ import androidx.compose.ui.unit.dp import coil.compose.AsyncImage import coil.request.ImageRequest import com.terning.core.R -import com.terning.core.designsystem.theme.Grey300 import com.terning.core.designsystem.theme.Grey400 import com.terning.core.designsystem.theme.TerningMain import com.terning.core.designsystem.theme.TerningPointTheme