From 3c2ee9086059a2f0914d8f146e2f92e20cc838b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=84=88=EC=9D=98=EC=9D=B4=EB=A6=84?= Date: Fri, 23 Jan 2026 17:10:57 +0900 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20=EC=BB=AC=EB=A0=89=EC=85=98=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1=20=EC=8B=9C=20=EB=B9=88=20=EA=B0=92=20?= =?UTF-8?q?=EC=A0=84=EC=86=A1=20=EB=B0=8F=20=EB=AC=B8=EA=B5=AC=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/collectioncreate/CollectionCreateScreen.kt | 5 +++-- .../collectioncreate/CollectionCreateViewModel.kt | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/flint/presentation/collectioncreate/CollectionCreateScreen.kt b/app/src/main/java/com/flint/presentation/collectioncreate/CollectionCreateScreen.kt index ff186e00..5f320eb4 100644 --- a/app/src/main/java/com/flint/presentation/collectioncreate/CollectionCreateScreen.kt +++ b/app/src/main/java/com/flint/presentation/collectioncreate/CollectionCreateScreen.kt @@ -252,7 +252,7 @@ fun CollectionCreateScreen( verticalAlignment = Alignment.CenterVertically, ) { Text( - text = "최대 10개까지 추가할 수 있어요", + text = "작품을 2개 이상 추가해주세요.", color = FlintTheme.colors.gray200, style = FlintTheme.typography.body2R14, ) @@ -305,7 +305,8 @@ fun CollectionCreateScreen( modifier = Modifier .fillMaxWidth() - .defaultMinSize(minHeight = 80.dp), + .defaultMinSize(minHeight = 80.dp) +// .height(100.dp), ) Spacer(Modifier.height(36.dp)) diff --git a/app/src/main/java/com/flint/presentation/collectioncreate/CollectionCreateViewModel.kt b/app/src/main/java/com/flint/presentation/collectioncreate/CollectionCreateViewModel.kt index 7a6761c4..30fe4795 100644 --- a/app/src/main/java/com/flint/presentation/collectioncreate/CollectionCreateViewModel.kt +++ b/app/src/main/java/com/flint/presentation/collectioncreate/CollectionCreateViewModel.kt @@ -55,15 +55,15 @@ class CollectionCreateViewModel @Inject constructor( viewModelScope.launch { val requestModel = CollectionCreateRequestModel( imageUrl = "", - title = uiState.value.title.ifBlank { "더미 컬렉션 제목" }, - description = uiState.value.description.ifBlank { "더미 설명" }, + title = uiState.value.title.ifBlank { "" }, + description = uiState.value.description.ifBlank { "" }, isPublic = uiState.value.isPublic ?: true, contentList = uiState.value.selectedContents.map { content -> val detail = uiState.value.contentDetailsMap[content.id] ?: ContentDetail() CollectionCreateContentModel( contentId = content.id, isSpoiler = detail.isSpoiler, - reason = detail.reason.ifBlank { "추천합니다" }, + reason = detail.reason.ifBlank { "" }, ) }, ) From 9cabd15ec1e31781e0b47fce7b59841df95b780b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=84=88=EC=9D=98=EC=9D=B4=EB=A6=84?= Date: Fri, 23 Jan 2026 17:43:51 +0900 Subject: [PATCH 2/2] =?UTF-8?q?[Feat]=20=ED=8F=AC=EC=BB=A4=EC=8A=A4=20?= =?UTF-8?q?=ED=95=B4=EC=A0=9C=20=EB=B0=8F=20=ED=82=A4=EB=B3=B4=EB=93=9C=20?= =?UTF-8?q?=EC=88=A8=EA=B9=80=20=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../collectioncreate/AddContentScreen.kt | 7 +-- .../CollectionCreateScreen.kt | 3 +- .../CollectionCreateViewModel.kt | 2 +- .../com/flint/presentation/main/MainScreen.kt | 45 +++++++++++++------ 4 files changed, 37 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/com/flint/presentation/collectioncreate/AddContentScreen.kt b/app/src/main/java/com/flint/presentation/collectioncreate/AddContentScreen.kt index dc833e9d..33418f1e 100644 --- a/app/src/main/java/com/flint/presentation/collectioncreate/AddContentScreen.kt +++ b/app/src/main/java/com/flint/presentation/collectioncreate/AddContentScreen.kt @@ -23,6 +23,7 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalSoftwareKeyboardController import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp @@ -86,6 +87,8 @@ fun AddContentScreen( var contentToDelete by remember { mutableStateOf(null) } val lazyRowState = rememberLazyListState() + val keyboardController = LocalSoftwareKeyboardController.current + LaunchedEffect(selectedContents.size) { if (selectedContents.isNotEmpty()) { lazyRowState.scrollToItem(selectedContents.size - 1) @@ -120,9 +123,7 @@ fun AddContentScreen( onClearAction = {}, keyboardOptions = KeyboardOptions(imeAction = ImeAction.Search), keyboardActions = KeyboardActions( - onSearch = { - // TODO: 검색 진행 - } + onSearch = { keyboardController?.hide() } ), modifier = Modifier .fillMaxWidth() diff --git a/app/src/main/java/com/flint/presentation/collectioncreate/CollectionCreateScreen.kt b/app/src/main/java/com/flint/presentation/collectioncreate/CollectionCreateScreen.kt index 5f320eb4..1ad60bfb 100644 --- a/app/src/main/java/com/flint/presentation/collectioncreate/CollectionCreateScreen.kt +++ b/app/src/main/java/com/flint/presentation/collectioncreate/CollectionCreateScreen.kt @@ -305,14 +305,13 @@ fun CollectionCreateScreen( modifier = Modifier .fillMaxWidth() - .defaultMinSize(minHeight = 80.dp) -// .height(100.dp), ) Spacer(Modifier.height(36.dp)) } } } + FlintLargeButton( text = "완료", state = if (uiState.isFinishButtonEnabled) FlintButtonState.Able else FlintButtonState.Disable, diff --git a/app/src/main/java/com/flint/presentation/collectioncreate/CollectionCreateViewModel.kt b/app/src/main/java/com/flint/presentation/collectioncreate/CollectionCreateViewModel.kt index 30fe4795..ea922fa5 100644 --- a/app/src/main/java/com/flint/presentation/collectioncreate/CollectionCreateViewModel.kt +++ b/app/src/main/java/com/flint/presentation/collectioncreate/CollectionCreateViewModel.kt @@ -55,7 +55,7 @@ class CollectionCreateViewModel @Inject constructor( viewModelScope.launch { val requestModel = CollectionCreateRequestModel( imageUrl = "", - title = uiState.value.title.ifBlank { "" }, + title = uiState.value.title, description = uiState.value.description.ifBlank { "" }, isPublic = uiState.value.isPublic ?: true, contentList = uiState.value.selectedContents.map { content -> diff --git a/app/src/main/java/com/flint/presentation/main/MainScreen.kt b/app/src/main/java/com/flint/presentation/main/MainScreen.kt index 55733863..7485187d 100644 --- a/app/src/main/java/com/flint/presentation/main/MainScreen.kt +++ b/app/src/main/java/com/flint/presentation/main/MainScreen.kt @@ -1,8 +1,14 @@ package com.flint.presentation.main +import androidx.compose.foundation.gestures.detectTapGestures +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.material3.Scaffold import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.input.pointer.pointerInput +import androidx.compose.ui.platform.LocalFocusManager import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.flint.core.designsystem.theme.FlintTheme import com.flint.presentation.main.component.MainBottomBar @@ -12,21 +18,32 @@ import kotlinx.collections.immutable.toImmutableList fun MainScreen(navigator: MainNavigator) { val isBottomBarVisible by navigator.isBottomBarVisible.collectAsStateWithLifecycle() val currentTab by navigator.currentTab.collectAsStateWithLifecycle() + val focusManager = LocalFocusManager.current - Scaffold( - containerColor = FlintTheme.colors.background, - bottomBar = { - MainBottomBar( - visible = isBottomBarVisible, - tabs = MainTab.entries.toImmutableList(), - currentTab = currentTab, - onTabSelected = navigator::navigate, + Box( + modifier = Modifier + .fillMaxSize() + .pointerInput(Unit) { + detectTapGestures(onTap = { + focusManager.clearFocus() + }) + } + ) { + Scaffold( + containerColor = FlintTheme.colors.background, + bottomBar = { + MainBottomBar( + visible = isBottomBarVisible, + tabs = MainTab.entries.toImmutableList(), + currentTab = currentTab, + onTabSelected = navigator::navigate, + ) + }, + ) { paddingValues -> + MainNavHost( + navigator = navigator, + paddingValues = paddingValues, ) - }, - ) { paddingValues -> - MainNavHost( - navigator = navigator, - paddingValues = paddingValues, - ) + } } }