From 1f59b10451f0f14a81bc5e128a1802ee04cb42de Mon Sep 17 00:00:00 2001 From: JoGyuBin <128724038+rbqks529@users.noreply.github.com> Date: Thu, 3 Jul 2025 16:09:47 +0900 Subject: [PATCH 01/21] =?UTF-8?q?[ui]:=20=EB=82=B4=20=EB=AA=A8=EC=9E=84?= =?UTF-8?q?=EB=B0=A9=20Pager=20=EB=94=94=EC=9E=90=EC=9D=B8=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20=EC=99=84=EB=A3=8C=20(#35)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/deploymentTargetSelector.xml | 21 ------------------- .idea/misc.xml | 2 ++ .../ui/group/myroom/component/GenreChipRow.kt | 14 +++++++------ .../component/GroupDeadlineRoomSection.kt | 20 +++++++++++------- .../group/myroom/component/GroupMainCard.kt | 2 +- .../ui/group/myroom/component/GroupPager.kt | 12 +++++++---- 6 files changed, 32 insertions(+), 39 deletions(-) delete mode 100644 .idea/deploymentTargetSelector.xml diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml deleted file mode 100644 index 00e85ee2..00000000 --- a/.idea/deploymentTargetSelector.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 1e536c6c..38860e7c 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,6 +1,8 @@ + + \ No newline at end of file diff --git a/app/src/main/java/com/texthip/thip/ui/group/myroom/component/GenreChipRow.kt b/app/src/main/java/com/texthip/thip/ui/group/myroom/component/GenreChipRow.kt index ae3fa69a..37d41cee 100644 --- a/app/src/main/java/com/texthip/thip/ui/group/myroom/component/GenreChipRow.kt +++ b/app/src/main/java/com/texthip/thip/ui/group/myroom/component/GenreChipRow.kt @@ -1,11 +1,10 @@ package com.texthip.thip.ui.group.myroom.component -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.* import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp import com.texthip.thip.ui.common.buttons.OptionChipButton @Composable @@ -15,8 +14,8 @@ fun GenreChipRow( onSelect: (Int) -> Unit ) { Row( - Modifier.fillMaxWidth(), - horizontalArrangement = Arrangement.SpaceEvenly + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.Center ) { genres.forEachIndexed { idx, genre -> OptionChipButton( @@ -25,6 +24,9 @@ fun GenreChipRow( isSelected = selectedIndex == idx, onClick = { onSelect(idx) } ) + if (idx < genres.size - 1) { + Spacer(modifier = Modifier.width(4.dp)) + } } } } @@ -37,4 +39,4 @@ fun PreviewGenreChipRow() { selectedIndex = 0, onSelect = {} ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/texthip/thip/ui/group/myroom/component/GroupDeadlineRoomSection.kt b/app/src/main/java/com/texthip/thip/ui/group/myroom/component/GroupDeadlineRoomSection.kt index c7e3f7a8..565bd1ef 100644 --- a/app/src/main/java/com/texthip/thip/ui/group/myroom/component/GroupDeadlineRoomSection.kt +++ b/app/src/main/java/com/texthip/thip/ui/group/myroom/component/GroupDeadlineRoomSection.kt @@ -6,12 +6,14 @@ import androidx.compose.foundation.layout.* import androidx.compose.foundation.pager.HorizontalPager import androidx.compose.foundation.pager.rememberPagerState import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.OutlinedTextFieldDefaults.contentPadding import androidx.compose.material3.Text import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Brush import androidx.compose.ui.graphics.graphicsLayer +import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp @@ -29,8 +31,7 @@ fun GroupRoomDeadlineSection( roomSections: List, onRoomClick: (GroupCardItemRoomData) -> Unit ) { - val cardWidth = 320.dp - val pageSpacing = 12.dp + val sideMargin = 30.dp val pagerState = rememberPagerState( initialPage = 0, @@ -48,16 +49,21 @@ fun GroupRoomDeadlineSection( .height(588.dp), contentAlignment = Alignment.Center ) { - val horizontalPadding = ((maxWidth - cardWidth) / 2).coerceAtLeast(0.dp) + val horizontalPadding = sideMargin + val cardWidth = maxWidth - (horizontalPadding * 2) + val scale = 0.9f + val desiredGap = 12.dp // TODO: 이 부분을 10dp로 하면 양 옆의 카드에 살짝 다음 내용이 보여서 12정도가 어떤지 + + val pageSpacing = (-(cardWidth - (cardWidth * scale)) / 2) + desiredGap HorizontalPager( state = pagerState, - contentPadding = PaddingValues(horizontal = horizontalPadding), + contentPadding = PaddingValues(horizontal = 30.dp), pageSpacing = pageSpacing, modifier = Modifier.fillMaxWidth() ) { page -> val section = roomSections[page] - var selectedGenre by remember { mutableStateOf(0) } + var selectedGenre by remember { mutableIntStateOf(0) } val isCurrent = pagerState.currentPage == page val scale = if (isCurrent) 1f else 0.9f @@ -79,7 +85,7 @@ fun GroupRoomDeadlineSection( ), shape = RoundedCornerShape(14.dp) ) - .padding(vertical = 20.dp, horizontal = 12.dp) + .padding(vertical = 20.dp, horizontal = 20.dp) ) { Column( horizontalAlignment = Alignment.CenterHorizontally @@ -259,4 +265,4 @@ fun PreviewGroupRoomPagerSection() { onRoomClick = {} ) } -} +} \ No newline at end of file diff --git a/app/src/main/java/com/texthip/thip/ui/group/myroom/component/GroupMainCard.kt b/app/src/main/java/com/texthip/thip/ui/group/myroom/component/GroupMainCard.kt index 98ac640b..9b5a2d6b 100644 --- a/app/src/main/java/com/texthip/thip/ui/group/myroom/component/GroupMainCard.kt +++ b/app/src/main/java/com/texthip/thip/ui/group/myroom/component/GroupMainCard.kt @@ -57,7 +57,7 @@ fun GroupMainCard( Card( modifier = Modifier - .width(320.dp) + .fillMaxWidth() .height(176.dp) .clickable { onClick() }, shape = RoundedCornerShape(18.dp), diff --git a/app/src/main/java/com/texthip/thip/ui/group/myroom/component/GroupPager.kt b/app/src/main/java/com/texthip/thip/ui/group/myroom/component/GroupPager.kt index 69147a66..3b2ab2a2 100644 --- a/app/src/main/java/com/texthip/thip/ui/group/myroom/component/GroupPager.kt +++ b/app/src/main/java/com/texthip/thip/ui/group/myroom/component/GroupPager.kt @@ -21,16 +21,20 @@ fun GroupPager( groupCards: List, onCardClick: (GroupCardData) -> Unit ) { - val cardWidth = 320.dp - val pageSpacing = 6.dp + val scale = 0.86f + val desiredGap = 10.dp BoxWithConstraints( modifier = Modifier .fillMaxWidth() .height(192.dp) ) { - val screenWidth = maxWidth - val horizontalPadding = ((screenWidth - cardWidth) / 2).coerceAtLeast(0.dp) + val horizontalPadding = 30.dp + val cardWidth = maxWidth - (horizontalPadding * 2) + + val pageSpacing = with(this) { + (-(cardWidth - (cardWidth * scale)) / 2f) + desiredGap + } val pagerState = rememberPagerState( initialPage = 0, From 8f9846479cd0c1e1de6f88a1a0f597c1526cfe5f Mon Sep 17 00:00:00 2001 From: JoGyuBin <128724038+rbqks529@users.noreply.github.com> Date: Sat, 5 Jul 2025 00:21:46 +0900 Subject: [PATCH 02/21] =?UTF-8?q?[ui]:=20GroupMakeRoomScreen=20=EC=B1=85?= =?UTF-8?q?=20=EC=84=A0=ED=83=9D=20=EA=B5=AC=ED=98=84(=20(#35)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/misc.xml | 1 - .../thip/ui/common/cards/CardBookSearch.kt | 10 -- .../ui/common/forms/SearchBookTextField.kt | 105 ++++++++++++++++++ .../component/BookListWithScrollbar.kt | 72 ++++++++++++ .../component/BookSearchBottomSheet.kt | 98 ++++++++++++++++ .../makeroom/component/GroupSelectBook.kt | 83 ++++++++++++++ .../ui/group/makeroom/mock/GroupBookData.kt | 17 +++ .../makeroom/screen/GroupMakeRoomScreen.kt | 79 +++++++++++++ .../main/res/drawable/ic_x_circle_grey.xml | 16 +++ app/src/main/res/values/strings.xml | 3 + 10 files changed, 473 insertions(+), 11 deletions(-) create mode 100644 app/src/main/java/com/texthip/thip/ui/common/forms/SearchBookTextField.kt create mode 100644 app/src/main/java/com/texthip/thip/ui/group/makeroom/component/BookListWithScrollbar.kt create mode 100644 app/src/main/java/com/texthip/thip/ui/group/makeroom/component/BookSearchBottomSheet.kt create mode 100644 app/src/main/java/com/texthip/thip/ui/group/makeroom/component/GroupSelectBook.kt create mode 100644 app/src/main/java/com/texthip/thip/ui/group/makeroom/mock/GroupBookData.kt create mode 100644 app/src/main/java/com/texthip/thip/ui/group/makeroom/screen/GroupMakeRoomScreen.kt create mode 100644 app/src/main/res/drawable/ic_x_circle_grey.xml diff --git a/.idea/misc.xml b/.idea/misc.xml index 38860e7c..62464c5c 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,3 @@ -