From 30b8781bac136a54d0315b65ab4b347a935b32e4 Mon Sep 17 00:00:00 2001 From: casperjr Date: Fri, 24 Jan 2025 18:10:20 +0900 Subject: [PATCH 01/22] =?UTF-8?q?[fix]:=20SearchBar=EC=9D=98=20=EC=B5=9C?= =?UTF-8?q?=EC=83=81=EB=8B=A8=EC=9D=B8=20Card=EC=97=90=20=EC=82=AC?= =?UTF-8?q?=EC=9A=A9=ED=95=A0=20modifier=20=ED=8C=8C=EB=9D=BC=EB=AF=B8?= =?UTF-8?q?=ED=84=B0=20=EC=A0=84=EB=8B=AC(#22)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ourmenu/ui/addmenu/screen/AddMenuScreen.kt | 18 +++++++++++++++--- .../com/kuit/ourmenu/ui/common/SearchBar.kt | 3 ++- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt index 5a3f55cd..e25464f3 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt @@ -3,7 +3,6 @@ package com.kuit.ourmenu.ui.addmenu.screen import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding @@ -78,14 +77,27 @@ fun AddMenuScreen(modifier: Modifier = Modifier) { } ) { //전체 화면 구성, 지도는 추가 예정 - Column(modifier = Modifier.padding(horizontal = 20.dp)) { - Spacer(modifier = Modifier.height(12.dp)) +// Column(modifier = Modifier.padding(horizontal = 20.dp)) { +// Spacer(modifier = Modifier.height(12.dp)) +// SearchBar( +// text = searchText, +// onTextChange = { searchText = it }, +// ){ +// //onSearch 함수 +// } +// } + Box(modifier = Modifier.padding(horizontal = 20.dp)){ + SearchBar( + modifier = Modifier.padding(top = 20.dp), text = searchText, onTextChange = { searchText = it }, ){ //onSearch 함수 } + + Text("asdfasfasdfasdf") + } } } diff --git a/app/src/main/java/com/kuit/ourmenu/ui/common/SearchBar.kt b/app/src/main/java/com/kuit/ourmenu/ui/common/SearchBar.kt index 310a89a3..5ad700ce 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/common/SearchBar.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/common/SearchBar.kt @@ -34,12 +34,13 @@ import com.kuit.ourmenu.ui.theme.ourMenuTypography @Composable fun SearchBar( + modifier : Modifier = Modifier, text: String, onTextChange: (String) -> Unit, onSearch: () -> Unit, ) { Card( - modifier = Modifier + modifier .shadow(elevation = 2.dp, shape = RoundedCornerShape(8.dp)) .fillMaxWidth(), shape = RoundedCornerShape(8.dp) From 91ae7b0584bc374420a3d09eb6e702b1dd2a47f2 Mon Sep 17 00:00:00 2001 From: casperjr Date: Fri, 24 Jan 2025 18:19:57 +0900 Subject: [PATCH 02/22] =?UTF-8?q?[refactor]:=20AddMenuScreen=EC=9D=98=20?= =?UTF-8?q?=EB=A9=94=EC=9D=B8=20=ED=99=94=EB=A9=B4=20Box=EB=A1=9C=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD(#22)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/addmenu/screen/AddMenuScreen.kt | 40 ++++++++++++------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt index e25464f3..7505a5d8 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt @@ -1,8 +1,10 @@ package com.kuit.ourmenu.ui.addmenu.screen import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding @@ -37,7 +39,7 @@ import com.kuit.ourmenu.ui.theme.ourMenuTypography @Composable fun AddMenuScreen(modifier: Modifier = Modifier) { val scaffoldState = rememberBottomSheetScaffoldState() - val showBottomSheet by remember { mutableStateOf(true) } + val showBottomSheet by remember { mutableStateOf(false) } var searchText by rememberSaveable { mutableStateOf("") } BottomSheetScaffold( @@ -76,28 +78,36 @@ fun AddMenuScreen(modifier: Modifier = Modifier) { } } ) { - //전체 화면 구성, 지도는 추가 예정 -// Column(modifier = Modifier.padding(horizontal = 20.dp)) { -// Spacer(modifier = Modifier.height(12.dp)) -// SearchBar( -// text = searchText, -// onTextChange = { searchText = it }, -// ){ -// //onSearch 함수 -// } -// } - Box(modifier = Modifier.padding(horizontal = 20.dp)){ + Box(modifier = Modifier.padding(horizontal = 20.dp)) { + if (showBottomSheet) { + //지도 컴포넌트 + Column( + modifier = Modifier.fillMaxSize(), + verticalArrangement = Arrangement.Center, + horizontalAlignment = Alignment.CenterHorizontally + ) { + Text("지도 컴포넌트") + } + } else { + //검색 컴포넌트 + Column( + modifier = Modifier.fillMaxSize(), + verticalArrangement = Arrangement.Center, + horizontalAlignment = Alignment.CenterHorizontally + ) { + Text("검색 배경 컴포넌트") + } + + } SearchBar( modifier = Modifier.padding(top = 20.dp), text = searchText, onTextChange = { searchText = it }, - ){ + ) { //onSearch 함수 } - Text("asdfasfasdfasdf") - } } } From 1d0b8b51316ca55255656f75cee395a80718d588 Mon Sep 17 00:00:00 2001 From: casperjr Date: Fri, 24 Jan 2025 18:23:25 +0900 Subject: [PATCH 03/22] =?UTF-8?q?[chore]:=20addmenu/component=EC=9D=98=20?= =?UTF-8?q?=ED=8C=8C=EC=9D=BC=EB=93=A4=20=ED=8C=A8=ED=82=A4=EC=A7=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ourmenu/ui/addmenu/component/IconSelectBottomSheet.kt | 1 + .../{ => bottomsheet}/AddMenuBottomSheetContent.kt | 3 ++- .../component/{ => bottomsheet}/TagSelectBottomSheet.kt | 2 +- .../component/{ => item}/AddMenuInfoAddressFieldItem.kt | 2 +- .../component/{ => item}/AddMenuInfoMenuBoardFieldItem.kt | 2 +- .../component/{ => item}/AddMenuInfoTextFieldItem.kt | 2 +- .../ourmenu/ui/addmenu/component/{ => item}/FoodTagItem.kt | 2 +- .../ourmenu/ui/addmenu/component/{ => item}/IconItem.kt | 2 +- .../ui/addmenu/component/{ => item}/RestaurantSearchItem.kt | 2 +- .../ui/addmenu/component/{ => item}/SelectMenuItem.kt | 2 +- .../com/kuit/ourmenu/ui/addmenu/screen/AddMenuInfoScreen.kt | 6 +++--- .../com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt | 2 +- .../kuit/ourmenu/ui/addmenu/screen/AddMenuSearchScreen.kt | 2 +- .../com/kuit/ourmenu/ui/addmenu/screen/AddMenuTagScreen.kt | 2 +- 14 files changed, 17 insertions(+), 15 deletions(-) rename app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/{ => bottomsheet}/AddMenuBottomSheetContent.kt (98%) rename app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/{ => bottomsheet}/TagSelectBottomSheet.kt (97%) rename app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/{ => item}/AddMenuInfoAddressFieldItem.kt (98%) rename app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/{ => item}/AddMenuInfoMenuBoardFieldItem.kt (98%) rename app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/{ => item}/AddMenuInfoTextFieldItem.kt (98%) rename app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/{ => item}/FoodTagItem.kt (97%) rename app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/{ => item}/IconItem.kt (96%) rename app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/{ => item}/RestaurantSearchItem.kt (97%) rename app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/{ => item}/SelectMenuItem.kt (98%) diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/IconSelectBottomSheet.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/IconSelectBottomSheet.kt index 9ebc13aa..c6f35a00 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/IconSelectBottomSheet.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/IconSelectBottomSheet.kt @@ -15,6 +15,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.kuit.ourmenu.R +import com.kuit.ourmenu.ui.addmenu.component.item.IconItem import com.kuit.ourmenu.ui.theme.ourMenuTypography @Composable diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/AddMenuBottomSheetContent.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/bottomsheet/AddMenuBottomSheetContent.kt similarity index 98% rename from app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/AddMenuBottomSheetContent.kt rename to app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/bottomsheet/AddMenuBottomSheetContent.kt index dea5be86..cff06c98 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/AddMenuBottomSheetContent.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/bottomsheet/AddMenuBottomSheetContent.kt @@ -1,4 +1,4 @@ -package com.kuit.ourmenu.ui.addmenu.component +package com.kuit.ourmenu.ui.addmenu.component.bottomsheet import androidx.compose.foundation.Image import androidx.compose.foundation.layout.Arrangement @@ -33,6 +33,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.kuit.ourmenu.R +import com.kuit.ourmenu.ui.addmenu.component.item.SelectMenuItem import com.kuit.ourmenu.ui.common.BottomFullWidthButton import com.kuit.ourmenu.ui.theme.Neutral100 import com.kuit.ourmenu.ui.theme.Neutral300 diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/TagSelectBottomSheet.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/bottomsheet/TagSelectBottomSheet.kt similarity index 97% rename from app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/TagSelectBottomSheet.kt rename to app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/bottomsheet/TagSelectBottomSheet.kt index d5ecd6e5..9e4acf41 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/TagSelectBottomSheet.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/bottomsheet/TagSelectBottomSheet.kt @@ -1,4 +1,4 @@ -package com.kuit.ourmenu.ui.addmenu.component +package com.kuit.ourmenu.ui.addmenu.component.bottomsheet import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/AddMenuInfoAddressFieldItem.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/AddMenuInfoAddressFieldItem.kt similarity index 98% rename from app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/AddMenuInfoAddressFieldItem.kt rename to app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/AddMenuInfoAddressFieldItem.kt index a62bf2cd..3858d080 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/AddMenuInfoAddressFieldItem.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/AddMenuInfoAddressFieldItem.kt @@ -1,4 +1,4 @@ -package com.kuit.ourmenu.ui.addmenu.component +package com.kuit.ourmenu.ui.addmenu.component.item import androidx.compose.foundation.border import androidx.compose.foundation.layout.Arrangement diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/AddMenuInfoMenuBoardFieldItem.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/AddMenuInfoMenuBoardFieldItem.kt similarity index 98% rename from app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/AddMenuInfoMenuBoardFieldItem.kt rename to app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/AddMenuInfoMenuBoardFieldItem.kt index fe4bd783..552d19e6 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/AddMenuInfoMenuBoardFieldItem.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/AddMenuInfoMenuBoardFieldItem.kt @@ -1,4 +1,4 @@ -package com.kuit.ourmenu.ui.addmenu.component +package com.kuit.ourmenu.ui.addmenu.component.item import androidx.compose.foundation.border import androidx.compose.foundation.layout.Arrangement diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/AddMenuInfoTextFieldItem.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/AddMenuInfoTextFieldItem.kt similarity index 98% rename from app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/AddMenuInfoTextFieldItem.kt rename to app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/AddMenuInfoTextFieldItem.kt index e91ecf99..c1a1fc80 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/AddMenuInfoTextFieldItem.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/AddMenuInfoTextFieldItem.kt @@ -1,4 +1,4 @@ -package com.kuit.ourmenu.ui.addmenu.component +package com.kuit.ourmenu.ui.addmenu.component.item import androidx.compose.foundation.border import androidx.compose.foundation.layout.Arrangement diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/FoodTagItem.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/FoodTagItem.kt similarity index 97% rename from app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/FoodTagItem.kt rename to app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/FoodTagItem.kt index ba258f12..8d088695 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/FoodTagItem.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/FoodTagItem.kt @@ -1,4 +1,4 @@ -package com.kuit.ourmenu.ui.addmenu.component +package com.kuit.ourmenu.ui.addmenu.component.item import androidx.compose.material3.AssistChip import androidx.compose.material3.AssistChipDefaults diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/IconItem.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/IconItem.kt similarity index 96% rename from app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/IconItem.kt rename to app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/IconItem.kt index 3c237043..ab3dfbbe 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/IconItem.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/IconItem.kt @@ -1,4 +1,4 @@ -package com.kuit.ourmenu.ui.addmenu.component +package com.kuit.ourmenu.ui.addmenu.component.item import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Box diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/RestaurantSearchItem.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/RestaurantSearchItem.kt similarity index 97% rename from app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/RestaurantSearchItem.kt rename to app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/RestaurantSearchItem.kt index ffc7979b..9ed9aed0 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/RestaurantSearchItem.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/RestaurantSearchItem.kt @@ -1,4 +1,4 @@ -package com.kuit.ourmenu.ui.addmenu.component +package com.kuit.ourmenu.ui.addmenu.component.item import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/SelectMenuItem.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/SelectMenuItem.kt similarity index 98% rename from app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/SelectMenuItem.kt rename to app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/SelectMenuItem.kt index cbec5f27..a760dce4 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/SelectMenuItem.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/SelectMenuItem.kt @@ -1,4 +1,4 @@ -package com.kuit.ourmenu.ui.addmenu.component +package com.kuit.ourmenu.ui.addmenu.component.item import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.layout.Arrangement diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuInfoScreen.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuInfoScreen.kt index cde3e3b6..8c52a548 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuInfoScreen.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuInfoScreen.kt @@ -27,10 +27,10 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.kuit.ourmenu.R -import com.kuit.ourmenu.ui.addmenu.component.AddMenuInfoAddressFieldItem -import com.kuit.ourmenu.ui.addmenu.component.AddMenuInfoMenuBoardFieldItem -import com.kuit.ourmenu.ui.addmenu.component.AddMenuInfoTextFieldItem import com.kuit.ourmenu.ui.addmenu.component.AddMenuTopAppBar +import com.kuit.ourmenu.ui.addmenu.component.item.AddMenuInfoAddressFieldItem +import com.kuit.ourmenu.ui.addmenu.component.item.AddMenuInfoMenuBoardFieldItem +import com.kuit.ourmenu.ui.addmenu.component.item.AddMenuInfoTextFieldItem import com.kuit.ourmenu.ui.common.BottomFullWidthButton import com.kuit.ourmenu.ui.theme.Neutral300 import com.kuit.ourmenu.ui.theme.Neutral400 diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt index 7505a5d8..1c6bb408 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt @@ -28,8 +28,8 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.kuit.ourmenu.R -import com.kuit.ourmenu.ui.addmenu.component.AddMenuBottomSheetContent import com.kuit.ourmenu.ui.addmenu.component.AddMenuTopAppBar +import com.kuit.ourmenu.ui.addmenu.component.bottomsheet.AddMenuBottomSheetContent import com.kuit.ourmenu.ui.common.SearchBar import com.kuit.ourmenu.ui.theme.Neutral300 import com.kuit.ourmenu.ui.theme.Primary500Main diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuSearchScreen.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuSearchScreen.kt index 8b0c93c7..3e6e6c9b 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuSearchScreen.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuSearchScreen.kt @@ -24,7 +24,7 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.kuit.ourmenu.R import com.kuit.ourmenu.ui.addmenu.component.AddMenuTopAppBar -import com.kuit.ourmenu.ui.addmenu.component.RestaurantSearchItem +import com.kuit.ourmenu.ui.addmenu.component.item.RestaurantSearchItem import com.kuit.ourmenu.ui.common.BottomFullWidthButton import com.kuit.ourmenu.ui.common.SearchBar import com.kuit.ourmenu.ui.theme.Neutral100 diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuTagScreen.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuTagScreen.kt index 33ce5558..4e0cf6be 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuTagScreen.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuTagScreen.kt @@ -41,7 +41,7 @@ import androidx.compose.ui.unit.dp import com.kuit.ourmenu.R import com.kuit.ourmenu.ui.addmenu.component.AddMenuTopAppBar import com.kuit.ourmenu.ui.addmenu.component.IconSelectBottomSheet -import com.kuit.ourmenu.ui.addmenu.component.TagSelectBottomSheet +import com.kuit.ourmenu.ui.addmenu.component.bottomsheet.TagSelectBottomSheet import com.kuit.ourmenu.ui.common.CustomTextField import com.kuit.ourmenu.ui.theme.Neutral100 import com.kuit.ourmenu.ui.theme.Neutral300 From 0c7ae74894bd5571eb069dc4cb884b3da065eec4 Mon Sep 17 00:00:00 2001 From: casperjr Date: Fri, 24 Jan 2025 21:36:20 +0900 Subject: [PATCH 04/22] =?UTF-8?q?[fix]:=20=EA=B3=B5=ED=86=B5=20=EB=B2=84?= =?UTF-8?q?=ED=8A=BC=EC=97=90=20modifier=20=ED=8C=8C=EB=9D=BC=EB=AF=B8?= =?UTF-8?q?=ED=84=B0=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/kuit/ourmenu/ui/common/BottomFullWidthButton.kt | 7 ++++--- .../com/kuit/ourmenu/ui/common/BottomHalfWidthButton.kt | 5 +++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/kuit/ourmenu/ui/common/BottomFullWidthButton.kt b/app/src/main/java/com/kuit/ourmenu/ui/common/BottomFullWidthButton.kt index db99999e..d4b04da7 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/common/BottomFullWidthButton.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/common/BottomFullWidthButton.kt @@ -27,6 +27,7 @@ import com.kuit.ourmenu.ui.theme.ourMenuTypography @Composable fun BottomFullWidthButton( + modifier : Modifier = Modifier, containerColor: Color, contentColor: Color, text: String, @@ -34,7 +35,7 @@ fun BottomFullWidthButton( ) { Button( onClick = onClick, - modifier = Modifier + modifier = modifier .fillMaxWidth() .size(320.dp, 52.dp) .shadow(elevation = 4.dp, shape = RoundedCornerShape(12.dp)), @@ -55,11 +56,11 @@ fun BottomFullWidthButton( @Composable private fun BottomFullWidthButtonPreview() { Column(modifier = Modifier.fillMaxSize(), verticalArrangement = Arrangement.Center) { - BottomFullWidthButton(Neutral100, Neutral500, stringResource(R.string.add_restaurant_and_menu_by_myself)){ + BottomFullWidthButton(containerColor = Neutral100, contentColor = Neutral500, text = stringResource(R.string.add_restaurant_and_menu_by_myself)){ //onClick 작성 } Spacer(modifier = Modifier.height(16.dp)) - BottomFullWidthButton(Primary500Main, NeutralWhite, stringResource(R.string.add_menu)){ + BottomFullWidthButton(containerColor = Primary500Main, contentColor = NeutralWhite, text = stringResource(R.string.add_menu)){ //onClick 작성 } } diff --git a/app/src/main/java/com/kuit/ourmenu/ui/common/BottomHalfWidthButton.kt b/app/src/main/java/com/kuit/ourmenu/ui/common/BottomHalfWidthButton.kt index 898b12b7..8812bb05 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/common/BottomHalfWidthButton.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/common/BottomHalfWidthButton.kt @@ -27,6 +27,7 @@ import com.kuit.ourmenu.ui.theme.ourMenuTypography @Composable fun BottomHalfWidthButton( + modifier: Modifier = Modifier, containerColor: Color, contentColor: Color, text: String, @@ -62,10 +63,10 @@ private fun BottomHalfWidthButtonPreview() { horizontalAlignment = Alignment.CenterHorizontally ) { Row(modifier = Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween) { - BottomHalfWidthButton(Neutral400, NeutralWhite, stringResource(R.string.cancel)) { + BottomHalfWidthButton(containerColor = Neutral400, contentColor = NeutralWhite, text = stringResource(R.string.cancel)) { } - BottomHalfWidthButton(Primary500Main, NeutralWhite, stringResource(R.string.apply)) { + BottomHalfWidthButton(containerColor = Primary500Main, contentColor = NeutralWhite, text = stringResource(R.string.apply)) { } } From 4858808538a1998e8d83eb70aa16190b2dbf7cbc Mon Sep 17 00:00:00 2001 From: casperjr Date: Fri, 24 Jan 2025 22:11:34 +0900 Subject: [PATCH 05/22] =?UTF-8?q?[refactor]:=20AddMenuSearchScreen?= =?UTF-8?q?=EC=9D=84=20AddMenuScreen=EC=97=90=20=ED=95=A9=EC=B9=98?= =?UTF-8?q?=EB=8A=94=20=EC=9E=91=EC=97=85=20=EC=88=98=ED=96=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IconSelectBottomSheet.kt | 2 +- .../ui/addmenu/screen/AddMenuScreen.kt | 34 +-- .../addmenu/screen/AddMenuSearchBackground.kt | 205 ++++++++++++++++++ .../ui/addmenu/screen/AddMenuSearchScreen.kt | 153 ------------- .../ui/addmenu/screen/AddMenuTagScreen.kt | 2 +- .../ui/common/BottomHalfWidthButton.kt | 2 +- 6 files changed, 229 insertions(+), 169 deletions(-) rename app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/{ => bottomsheet}/IconSelectBottomSheet.kt (96%) create mode 100644 app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuSearchBackground.kt delete mode 100644 app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuSearchScreen.kt diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/IconSelectBottomSheet.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/bottomsheet/IconSelectBottomSheet.kt similarity index 96% rename from app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/IconSelectBottomSheet.kt rename to app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/bottomsheet/IconSelectBottomSheet.kt index c6f35a00..325aba25 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/IconSelectBottomSheet.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/bottomsheet/IconSelectBottomSheet.kt @@ -1,4 +1,4 @@ -package com.kuit.ourmenu.ui.addmenu.component +package com.kuit.ourmenu.ui.addmenu.component.bottomsheet import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt index 1c6bb408..1e738ae2 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt @@ -17,7 +17,6 @@ import androidx.compose.material3.rememberBottomSheetScaffoldState import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment @@ -38,9 +37,19 @@ import com.kuit.ourmenu.ui.theme.ourMenuTypography @OptIn(ExperimentalMaterial3Api::class) @Composable fun AddMenuScreen(modifier: Modifier = Modifier) { - val scaffoldState = rememberBottomSheetScaffoldState() - val showBottomSheet by remember { mutableStateOf(false) } + var scaffoldState = rememberBottomSheetScaffoldState() + var showBottomSheet by rememberSaveable { mutableStateOf(true) } var searchText by rememberSaveable { mutableStateOf("") } + var searchActionDone by rememberSaveable { mutableStateOf(false) } + var dummyRecentSearchResults = mutableListOf( + false, + false, + false, + false, + true, + ) + val dummySearchResults : MutableList = mutableListOf( + ) BottomSheetScaffold( scaffoldState = scaffoldState, @@ -78,7 +87,7 @@ fun AddMenuScreen(modifier: Modifier = Modifier) { } } ) { - Box(modifier = Modifier.padding(horizontal = 20.dp)) { + Box(modifier = Modifier.fillMaxWidth()) { if (showBottomSheet) { //지도 컴포넌트 Column( @@ -90,22 +99,21 @@ fun AddMenuScreen(modifier: Modifier = Modifier) { } } else { //검색 컴포넌트 - Column( - modifier = Modifier.fillMaxSize(), - verticalArrangement = Arrangement.Center, - horizontalAlignment = Alignment.CenterHorizontally - ) { - Text("검색 배경 컴포넌트") - } - + AddMenuSearchBackground( + searchActionDone = searchActionDone, + recentSearchResults = dummyRecentSearchResults, + searchResults = dummySearchResults + ) } SearchBar( - modifier = Modifier.padding(top = 20.dp), + modifier = Modifier.padding(top = 12.dp, start = 20.dp, end = 20.dp), text = searchText, onTextChange = { searchText = it }, ) { //onSearch 함수 +// searchActionDone = true + showBottomSheet = true } } diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuSearchBackground.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuSearchBackground.kt new file mode 100644 index 00000000..9fa19c1c --- /dev/null +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuSearchBackground.kt @@ -0,0 +1,205 @@ +package com.kuit.ourmenu.ui.addmenu.screen + +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items +import androidx.compose.material3.Icon +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.saveable.rememberSaveable +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.res.stringResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.kuit.ourmenu.R +import com.kuit.ourmenu.ui.addmenu.component.item.RestaurantSearchItem +import com.kuit.ourmenu.ui.common.BottomFullWidthButton +import com.kuit.ourmenu.ui.theme.Neutral100 +import com.kuit.ourmenu.ui.theme.Neutral500 +import com.kuit.ourmenu.ui.theme.Neutral700 +import com.kuit.ourmenu.ui.theme.ourMenuTypography + +@Composable +fun AddMenuSearchBackground( + modifier: Modifier = Modifier, + searchActionDone: Boolean, + recentSearchResults: MutableList, //이후에 타입 변경 + searchResults: MutableList //이후에 타입 변경 +) { + +// Scaffold(modifier = Modifier.fillMaxSize(), topBar = { +// }, +// bottomBar = { +// //Button +// Column( +// modifier = Modifier +// .fillMaxWidth() +// .padding(bottom = 20.dp), +// horizontalAlignment = Alignment.CenterHorizontally, +// verticalArrangement = Arrangement.Center +// ) { +// BottomFullWidthButton( +// onClick = { TODO() }, +// containerColor = Neutral100, +// contentColor = Neutral500, +// text = stringResource(R.string.add_restaurant_and_menu_by_myself) +// ) +// } +// }, +// content = { +// Column( +// modifier = Modifier +// .padding(paddingValues) +// .fillMaxWidth(), +// horizontalAlignment = Alignment.CenterHorizontally +// ) { +// Column(modifier = Modifier.fillMaxSize()) { +// if (searchActionDone) { +// //검색을 한 경우 +// if (searchResults.isEmpty()) { +// Column( +// modifier = Modifier +// .fillMaxWidth() +// .padding(top = 116.dp), +// horizontalAlignment = Alignment.CenterHorizontally +// ) { +// Icon( +// painter = painterResource(R.drawable.ic_addmenu_noresult), +// contentDescription = "no result", +// tint = Color.Unspecified +// ) +// Text( +// text = stringResource(R.string.no_result), +// style = ourMenuTypography().pretendard_600_14, +// color = Neutral500, +// modifier = Modifier.padding(top = 8.dp) +// ) +// } +// } else { +// LazyColumn { +// items(searchResults) { item -> +// RestaurantSearchItem(item) +// } +// } +// } +// } else { +// //검색을 하지 않은 경우 +// Text( +// text = stringResource(R.string.recent_search), +// style = ourMenuTypography().pretendard_600_14, +// color = Neutral700, +// modifier = Modifier.padding(start = 28.dp, top = 12.dp) +// ) +// if (recentSearchResults.isEmpty()) { +// Column(modifier = Modifier.fillMaxSize()) { /*empty view*/ } +// } else { +// LazyColumn { +// items(recentSearchResults) { item -> +// RestaurantSearchItem(item) +// } +// } +// } +// } +// +// } +// } +// } +// ) + + Box( + modifier = Modifier + .fillMaxSize(), + ) { + Column( + modifier = Modifier + .fillMaxSize() + .padding(bottom = 52.dp) + ) { + if (searchActionDone) { + //검색을 한 경우 + if (searchResults.isEmpty()) { + Column( + modifier = Modifier + .fillMaxWidth() + .padding(top = 116.dp), + horizontalAlignment = Alignment.CenterHorizontally + ) { + Icon( + painter = painterResource(R.drawable.ic_addmenu_noresult), + contentDescription = "no result", + tint = Color.Unspecified + ) + Text( + text = stringResource(R.string.no_result), + style = ourMenuTypography().pretendard_600_14, + color = Neutral500, + modifier = Modifier.padding(top = 8.dp) + ) + } + } else { + LazyColumn(modifier = Modifier.padding(top = 68.dp)) { + items(searchResults) { item -> + RestaurantSearchItem(item) + } + } + } + } else { + //검색을 하지 않은 경우 + Text( + text = stringResource(R.string.recent_search), + style = ourMenuTypography().pretendard_600_14, + color = Neutral700, + modifier = Modifier.padding(start = 28.dp, top = 68.dp) + ) + if (recentSearchResults.isEmpty()) { + Column(modifier = Modifier.fillMaxSize()) { /*empty view*/ } + } else { + LazyColumn() { + items(recentSearchResults) { item -> + RestaurantSearchItem(item) + } + } + } + } + + } + + BottomFullWidthButton( + modifier = Modifier + .align(Alignment.BottomCenter) + .padding(start = 20.dp, end = 20.dp, bottom = 20.dp), + onClick = { TODO() }, + containerColor = Neutral100, + contentColor = Neutral500, + text = stringResource(R.string.add_restaurant_and_menu_by_myself) + ) + } +} + +@Preview(showBackground = true) +@Composable +private fun AddMenuSearchBackgroundPreview() { + val searchActionDone by rememberSaveable { mutableStateOf(false) } + val recentSearchResults = mutableListOf( + false, + false, + false, + false, + true, + ) + val searchResults: MutableList = mutableListOf(true) + AddMenuSearchBackground( + searchActionDone = searchActionDone, + recentSearchResults = recentSearchResults, + searchResults = searchResults + ) +} \ No newline at end of file diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuSearchScreen.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuSearchScreen.kt deleted file mode 100644 index 3e6e6c9b..00000000 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuSearchScreen.kt +++ /dev/null @@ -1,153 +0,0 @@ -package com.kuit.ourmenu.ui.addmenu.screen - -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.lazy.LazyColumn -import androidx.compose.foundation.lazy.items -import androidx.compose.material3.Icon -import androidx.compose.material3.Scaffold -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.saveable.rememberSaveable -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.res.stringResource -import androidx.compose.ui.tooling.preview.Preview -import androidx.compose.ui.unit.dp -import com.kuit.ourmenu.R -import com.kuit.ourmenu.ui.addmenu.component.AddMenuTopAppBar -import com.kuit.ourmenu.ui.addmenu.component.item.RestaurantSearchItem -import com.kuit.ourmenu.ui.common.BottomFullWidthButton -import com.kuit.ourmenu.ui.common.SearchBar -import com.kuit.ourmenu.ui.theme.Neutral100 -import com.kuit.ourmenu.ui.theme.Neutral500 -import com.kuit.ourmenu.ui.theme.Neutral700 -import com.kuit.ourmenu.ui.theme.Primary500Main -import com.kuit.ourmenu.ui.theme.ourMenuTypography - -@Composable -fun AddMenuSearchScreen(modifier: Modifier = Modifier) { - var searchText by rememberSaveable { mutableStateOf("") } - val searchActionDone by rememberSaveable { mutableStateOf(true) } - val dummyRecentSearchList = mutableListOf( - false, - false, - false, - false, - true, - ) - val dummySearchResultList: MutableList = mutableListOf() - - Scaffold(modifier = Modifier.fillMaxSize(), - topBar = { - AddMenuTopAppBar { - Text( - text = stringResource(R.string.ourmenu), - color = Primary500Main, - style = ourMenuTypography().pretendard_600_18 - ) - } - }, - bottomBar = { - Column( - modifier = Modifier - .fillMaxWidth() - .padding(start = 20.dp, end = 20.dp, bottom = 20.dp), - horizontalAlignment = Alignment.CenterHorizontally, - verticalArrangement = Arrangement.Center - ) { - BottomFullWidthButton( - onClick = { TODO() }, - containerColor = Neutral100, - contentColor = Neutral500, - text = stringResource(R.string.add_restaurant_and_menu_by_myself) - ) - } - }, - content = { paddingValues -> - Column( - modifier = Modifier - .padding(paddingValues) - .fillMaxWidth(), - horizontalAlignment = Alignment.CenterHorizontally - ) { - Column( - modifier = Modifier - .fillMaxWidth() - .padding(vertical = 12.dp, horizontal = 20.dp) - ) { - SearchBar( - text = searchText, - onTextChange = { searchText = it } - ) { - //onSearch 함수 - } - } - Column(modifier = Modifier.fillMaxSize()) { - if (searchActionDone) { - //검색을 한 경우 - if (dummySearchResultList.isEmpty()) { - Column( - modifier = Modifier - .fillMaxWidth() - .padding(top = 64.dp), - horizontalAlignment = Alignment.CenterHorizontally - ) { - Icon( - painter = painterResource(R.drawable.ic_addmenu_noresult), - contentDescription = "no result", - tint = Color.Unspecified - ) - Text( - text = stringResource(R.string.no_result), - style = ourMenuTypography().pretendard_600_14, - color = Neutral500, - modifier = Modifier.padding(top = 8.dp) - ) - } - } else { - LazyColumn { - items(dummySearchResultList) { item -> - RestaurantSearchItem(item) - } - } - } - } else { - //검색을 하지 않은 경우 - Text( - text = stringResource(R.string.recent_search), - style = ourMenuTypography().pretendard_600_14, - color = Neutral700, - modifier = Modifier.padding(start = 28.dp) - ) - if (dummyRecentSearchList.isEmpty()) { - Column(modifier = Modifier.fillMaxSize()) { /*empty view*/ } - } else { - LazyColumn { - items(dummyRecentSearchList) { item -> - RestaurantSearchItem(item) - } - } - } - } - - } - } - } - ) - -} - -@Preview(showBackground = true) -@Composable -private fun AddMenuSearchScreenPreview() { - AddMenuSearchScreen() -} \ No newline at end of file diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuTagScreen.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuTagScreen.kt index 4e0cf6be..ce72b313 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuTagScreen.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuTagScreen.kt @@ -40,7 +40,7 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.kuit.ourmenu.R import com.kuit.ourmenu.ui.addmenu.component.AddMenuTopAppBar -import com.kuit.ourmenu.ui.addmenu.component.IconSelectBottomSheet +import com.kuit.ourmenu.ui.addmenu.component.bottomsheet.IconSelectBottomSheet import com.kuit.ourmenu.ui.addmenu.component.bottomsheet.TagSelectBottomSheet import com.kuit.ourmenu.ui.common.CustomTextField import com.kuit.ourmenu.ui.theme.Neutral100 diff --git a/app/src/main/java/com/kuit/ourmenu/ui/common/BottomHalfWidthButton.kt b/app/src/main/java/com/kuit/ourmenu/ui/common/BottomHalfWidthButton.kt index 8812bb05..595c7198 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/common/BottomHalfWidthButton.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/common/BottomHalfWidthButton.kt @@ -34,7 +34,7 @@ fun BottomHalfWidthButton( onClick: () -> Unit ) { Button( - modifier = Modifier + modifier = modifier .size(154.dp, 52.dp) .shadow(elevation = 4.dp, shape = RoundedCornerShape(12.dp)), shape = RoundedCornerShape(12.dp), From 9353252223d3d0a2e6c641129076192c064072dd Mon Sep 17 00:00:00 2001 From: casperjr Date: Sat, 25 Jan 2025 00:04:58 +0900 Subject: [PATCH 06/22] =?UTF-8?q?[refactor]:=20SearchBar=EC=97=90=20intera?= =?UTF-8?q?ctionSource=20=ED=8C=8C=EB=9D=BC=EB=AF=B8=ED=84=B0=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80,=20=EA=B8=B0=EB=B3=B8=EA=B0=92=20=EC=A7=80=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../component/item/RestaurantSearchItem.kt | 9 +- .../ui/addmenu/screen/AddMenuScreen.kt | 18 +++- .../addmenu/screen/AddMenuSearchBackground.kt | 101 +++--------------- .../com/kuit/ourmenu/ui/common/SearchBar.kt | 6 +- 4 files changed, 41 insertions(+), 93 deletions(-) diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/RestaurantSearchItem.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/RestaurantSearchItem.kt index 9ed9aed0..89240c66 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/RestaurantSearchItem.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/RestaurantSearchItem.kt @@ -1,5 +1,6 @@ package com.kuit.ourmenu.ui.addmenu.component.item +import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row @@ -23,11 +24,15 @@ import com.kuit.ourmenu.ui.theme.Neutral700 import com.kuit.ourmenu.ui.theme.ourMenuTypography @Composable -fun RestaurantSearchItem(isLastItem: Boolean = false) { +fun RestaurantSearchItem( + isLastItem: Boolean = false, + onClick: () -> Unit = {} +) { Row( modifier = Modifier .fillMaxWidth() - .padding(vertical = 20.dp, horizontal = 20.dp), + .padding(vertical = 20.dp, horizontal = 20.dp) + .clickable(onClick = onClick), verticalAlignment = Alignment.CenterVertically ) { Icon( diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt index 1e738ae2..b48c6810 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt @@ -1,6 +1,8 @@ package com.kuit.ourmenu.ui.addmenu.screen import androidx.compose.foundation.background +import androidx.compose.foundation.interaction.MutableInteractionSource +import androidx.compose.foundation.interaction.collectIsFocusedAsState import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column @@ -17,6 +19,7 @@ import androidx.compose.material3.rememberBottomSheetScaffoldState import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment @@ -38,9 +41,12 @@ import com.kuit.ourmenu.ui.theme.ourMenuTypography @Composable fun AddMenuScreen(modifier: Modifier = Modifier) { var scaffoldState = rememberBottomSheetScaffoldState() - var showBottomSheet by rememberSaveable { mutableStateOf(true) } + var showBottomSheet by rememberSaveable { mutableStateOf(false) } + var showSearchBackground by rememberSaveable { mutableStateOf(false) } var searchText by rememberSaveable { mutableStateOf("") } var searchActionDone by rememberSaveable { mutableStateOf(false) } + val interactionSource = remember { MutableInteractionSource() } + val searchBarFocused by interactionSource.collectIsFocusedAsState() var dummyRecentSearchResults = mutableListOf( false, false, @@ -88,7 +94,7 @@ fun AddMenuScreen(modifier: Modifier = Modifier) { } ) { Box(modifier = Modifier.fillMaxWidth()) { - if (showBottomSheet) { + if (!showSearchBackground) { //지도 컴포넌트 Column( modifier = Modifier.fillMaxSize(), @@ -103,7 +109,10 @@ fun AddMenuScreen(modifier: Modifier = Modifier) { searchActionDone = searchActionDone, recentSearchResults = dummyRecentSearchResults, searchResults = dummySearchResults - ) + ){ + //검색된 아이템 클릭시 작동할 함수 + showBottomSheet = true + } } SearchBar( @@ -112,8 +121,7 @@ fun AddMenuScreen(modifier: Modifier = Modifier) { onTextChange = { searchText = it }, ) { //onSearch 함수 -// searchActionDone = true - showBottomSheet = true + searchActionDone = true } } diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuSearchBackground.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuSearchBackground.kt index 9fa19c1c..d70796ab 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuSearchBackground.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuSearchBackground.kt @@ -33,88 +33,9 @@ fun AddMenuSearchBackground( modifier: Modifier = Modifier, searchActionDone: Boolean, recentSearchResults: MutableList, //이후에 타입 변경 - searchResults: MutableList //이후에 타입 변경 + searchResults: MutableList, //이후에 타입 변경 + onItemClick: () -> Unit ) { - -// Scaffold(modifier = Modifier.fillMaxSize(), topBar = { -// }, -// bottomBar = { -// //Button -// Column( -// modifier = Modifier -// .fillMaxWidth() -// .padding(bottom = 20.dp), -// horizontalAlignment = Alignment.CenterHorizontally, -// verticalArrangement = Arrangement.Center -// ) { -// BottomFullWidthButton( -// onClick = { TODO() }, -// containerColor = Neutral100, -// contentColor = Neutral500, -// text = stringResource(R.string.add_restaurant_and_menu_by_myself) -// ) -// } -// }, -// content = { -// Column( -// modifier = Modifier -// .padding(paddingValues) -// .fillMaxWidth(), -// horizontalAlignment = Alignment.CenterHorizontally -// ) { -// Column(modifier = Modifier.fillMaxSize()) { -// if (searchActionDone) { -// //검색을 한 경우 -// if (searchResults.isEmpty()) { -// Column( -// modifier = Modifier -// .fillMaxWidth() -// .padding(top = 116.dp), -// horizontalAlignment = Alignment.CenterHorizontally -// ) { -// Icon( -// painter = painterResource(R.drawable.ic_addmenu_noresult), -// contentDescription = "no result", -// tint = Color.Unspecified -// ) -// Text( -// text = stringResource(R.string.no_result), -// style = ourMenuTypography().pretendard_600_14, -// color = Neutral500, -// modifier = Modifier.padding(top = 8.dp) -// ) -// } -// } else { -// LazyColumn { -// items(searchResults) { item -> -// RestaurantSearchItem(item) -// } -// } -// } -// } else { -// //검색을 하지 않은 경우 -// Text( -// text = stringResource(R.string.recent_search), -// style = ourMenuTypography().pretendard_600_14, -// color = Neutral700, -// modifier = Modifier.padding(start = 28.dp, top = 12.dp) -// ) -// if (recentSearchResults.isEmpty()) { -// Column(modifier = Modifier.fillMaxSize()) { /*empty view*/ } -// } else { -// LazyColumn { -// items(recentSearchResults) { item -> -// RestaurantSearchItem(item) -// } -// } -// } -// } -// -// } -// } -// } -// ) - Box( modifier = Modifier .fillMaxSize(), @@ -148,7 +69,11 @@ fun AddMenuSearchBackground( } else { LazyColumn(modifier = Modifier.padding(top = 68.dp)) { items(searchResults) { item -> - RestaurantSearchItem(item) + RestaurantSearchItem( + isLastItem = item, + ){ + onItemClick() + } } } } @@ -165,7 +90,11 @@ fun AddMenuSearchBackground( } else { LazyColumn() { items(recentSearchResults) { item -> - RestaurantSearchItem(item) + RestaurantSearchItem( + isLastItem = item, + ){ + onItemClick() + } } } } @@ -200,6 +129,8 @@ private fun AddMenuSearchBackgroundPreview() { AddMenuSearchBackground( searchActionDone = searchActionDone, recentSearchResults = recentSearchResults, - searchResults = searchResults - ) + searchResults = searchResults, + ){ + //onItemClick + } } \ No newline at end of file diff --git a/app/src/main/java/com/kuit/ourmenu/ui/common/SearchBar.kt b/app/src/main/java/com/kuit/ourmenu/ui/common/SearchBar.kt index 5ad700ce..c60a7066 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/common/SearchBar.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/common/SearchBar.kt @@ -2,6 +2,7 @@ package com.kuit.ourmenu.ui.common import androidx.compose.foundation.border import androidx.compose.foundation.clickable +import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.PaddingValues @@ -16,6 +17,7 @@ import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier @@ -36,6 +38,7 @@ import com.kuit.ourmenu.ui.theme.ourMenuTypography fun SearchBar( modifier : Modifier = Modifier, text: String, + interactionSource: MutableInteractionSource = remember { MutableInteractionSource() }, onTextChange: (String) -> Unit, onSearch: () -> Unit, ) { @@ -70,7 +73,8 @@ fun SearchBar( ) }, paddingValues = PaddingValues(start = 28.dp, top = 0.dp, bottom = 0.dp), - cursorColor = Primary500Main + cursorColor = Primary500Main, + interactionSource = interactionSource ) } From 8437bd6f69a618f5255d0d03e1db3afec088e9a8 Mon Sep 17 00:00:00 2001 From: casperjr Date: Sat, 25 Jan 2025 02:21:53 +0900 Subject: [PATCH 07/22] =?UTF-8?q?[feat]:=20SearchBar=20=EC=83=81=ED=83=9C?= =?UTF-8?q?=EC=97=90=20=EB=94=B0=EB=9D=BC=20=EB=8B=A4=EB=A5=B8=20=ED=99=94?= =?UTF-8?q?=EB=A9=B4=20=EB=B3=B4=EC=97=AC=EC=A3=BC=EB=8F=84=EB=A1=9D=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84(#22)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/addmenu/screen/AddMenuScreen.kt | 34 +++++++++++++++++-- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt index b48c6810..abd6cfdc 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt @@ -1,5 +1,6 @@ package com.kuit.ourmenu.ui.addmenu.screen +import androidx.activity.compose.BackHandler import androidx.compose.foundation.background import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.interaction.collectIsFocusedAsState @@ -17,6 +18,7 @@ import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Text import androidx.compose.material3.rememberBottomSheetScaffoldState import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember @@ -26,6 +28,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.platform.LocalFocusManager import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp @@ -47,6 +50,8 @@ fun AddMenuScreen(modifier: Modifier = Modifier) { var searchActionDone by rememberSaveable { mutableStateOf(false) } val interactionSource = remember { MutableInteractionSource() } val searchBarFocused by interactionSource.collectIsFocusedAsState() + val focusManager = LocalFocusManager.current + var dummyRecentSearchResults = mutableListOf( false, false, @@ -54,9 +59,22 @@ fun AddMenuScreen(modifier: Modifier = Modifier) { false, true, ) - val dummySearchResults : MutableList = mutableListOf( + val dummySearchResults: MutableList = mutableListOf( ) + LaunchedEffect(searchBarFocused){ + if(searchBarFocused){ + showSearchBackground = true + showBottomSheet = false + } + } + + BackHandler(enabled = showSearchBackground) { + if(searchBarFocused) focusManager.clearFocus() + showSearchBackground = false + searchText = "" + } + BottomSheetScaffold( scaffoldState = scaffoldState, topBar = { @@ -109,19 +127,29 @@ fun AddMenuScreen(modifier: Modifier = Modifier) { searchActionDone = searchActionDone, recentSearchResults = dummyRecentSearchResults, searchResults = dummySearchResults - ){ + ) { //검색된 아이템 클릭시 작동할 함수 + if(searchBarFocused) focusManager.clearFocus() + showSearchBackground = false showBottomSheet = true + searchText = "" } } SearchBar( modifier = Modifier.padding(top = 12.dp, start = 20.dp, end = 20.dp), text = searchText, - onTextChange = { searchText = it }, + onTextChange = { + searchText = it + showSearchBackground = true + showBottomSheet = false + }, + interactionSource = interactionSource ) { //onSearch 함수 + if(searchBarFocused) focusManager.clearFocus() searchActionDone = true + } } From 6164cb27a8e3c60bf63d77ba3ebb9c8a39cccc0d Mon Sep 17 00:00:00 2001 From: casperjr Date: Sat, 25 Jan 2025 02:29:24 +0900 Subject: [PATCH 08/22] =?UTF-8?q?[feat]:=20SearchBar=EC=9D=98=20keyboardOp?= =?UTF-8?q?tion,=20keyboardAction=20=EC=A7=80=EC=A0=95(#22)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt | 1 + .../main/java/com/kuit/ourmenu/ui/common/SearchBar.kt | 9 +++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt index abd6cfdc..7707ee92 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt @@ -71,6 +71,7 @@ fun AddMenuScreen(modifier: Modifier = Modifier) { BackHandler(enabled = showSearchBackground) { if(searchBarFocused) focusManager.clearFocus() + searchActionDone = false showSearchBackground = false searchText = "" } diff --git a/app/src/main/java/com/kuit/ourmenu/ui/common/SearchBar.kt b/app/src/main/java/com/kuit/ourmenu/ui/common/SearchBar.kt index c60a7066..9deb51b9 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/common/SearchBar.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/common/SearchBar.kt @@ -11,6 +11,8 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.text.KeyboardActions +import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.material3.Card import androidx.compose.material3.Icon import androidx.compose.material3.Text @@ -26,6 +28,7 @@ import androidx.compose.ui.draw.shadow import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.kuit.ourmenu.R @@ -36,7 +39,7 @@ import com.kuit.ourmenu.ui.theme.ourMenuTypography @Composable fun SearchBar( - modifier : Modifier = Modifier, + modifier: Modifier = Modifier, text: String, interactionSource: MutableInteractionSource = remember { MutableInteractionSource() }, onTextChange: (String) -> Unit, @@ -74,7 +77,9 @@ fun SearchBar( }, paddingValues = PaddingValues(start = 28.dp, top = 0.dp, bottom = 0.dp), cursorColor = Primary500Main, - interactionSource = interactionSource + interactionSource = interactionSource, + keyboardOptions = KeyboardOptions(imeAction = ImeAction.Search), + keyboardActions = KeyboardActions(onSearch = { onSearch() }) ) } From 24575a86111415c000e9389fec07c8b3dddff447 Mon Sep 17 00:00:00 2001 From: casperjr Date: Sat, 25 Jan 2025 02:32:10 +0900 Subject: [PATCH 09/22] =?UTF-8?q?[feat]:=20BottomSheet=EC=9D=98=20?= =?UTF-8?q?=EB=B2=84=ED=8A=BC=20=EC=83=89=20=EC=88=98=EC=A0=95(#22)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../addmenu/component/bottomsheet/AddMenuBottomSheetContent.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/bottomsheet/AddMenuBottomSheetContent.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/bottomsheet/AddMenuBottomSheetContent.kt index cff06c98..acbdeea1 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/bottomsheet/AddMenuBottomSheetContent.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/bottomsheet/AddMenuBottomSheetContent.kt @@ -41,6 +41,7 @@ import com.kuit.ourmenu.ui.theme.Neutral400 import com.kuit.ourmenu.ui.theme.Neutral500 import com.kuit.ourmenu.ui.theme.Neutral700 import com.kuit.ourmenu.ui.theme.NeutralWhite +import com.kuit.ourmenu.ui.theme.Primary500Main import com.kuit.ourmenu.ui.theme.ourMenuTypography import kotlinx.coroutines.launch @@ -120,7 +121,7 @@ fun AddMenuBottomSheetContent(scaffoldState: BottomSheetScaffoldState) { .padding(vertical = 12.dp) ) BottomFullWidthButton( - containerColor = Neutral400, + containerColor = Primary500Main, contentColor = NeutralWhite, text = stringResource(R.string.next) ) { From 4049eb11a14adf75465341669d1f22c45b7be56e Mon Sep 17 00:00:00 2001 From: casperjr Date: Mon, 27 Jan 2025 00:24:41 +0900 Subject: [PATCH 10/22] =?UTF-8?q?[chore]:=20AddMenuSearchBackground=20?= =?UTF-8?q?=ED=8C=A8=ED=82=A4=EC=A7=80=20=EA=B2=BD=EB=A1=9C=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/deploymentTargetSelector.xml | 3 +++ .../addmenu/{screen => component}/AddMenuSearchBackground.kt | 2 +- .../java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) rename app/src/main/java/com/kuit/ourmenu/ui/addmenu/{screen => component}/AddMenuSearchBackground.kt (99%) diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml index 1f58bdfc..808487e1 100644 --- a/.idea/deploymentTargetSelector.xml +++ b/.idea/deploymentTargetSelector.xml @@ -13,6 +13,9 @@ + + \ No newline at end of file diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuSearchBackground.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/AddMenuSearchBackground.kt similarity index 99% rename from app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuSearchBackground.kt rename to app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/AddMenuSearchBackground.kt index d70796ab..5a3374e1 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuSearchBackground.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/AddMenuSearchBackground.kt @@ -1,4 +1,4 @@ -package com.kuit.ourmenu.ui.addmenu.screen +package com.kuit.ourmenu.ui.addmenu.component import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt index 7707ee92..25110bc9 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt @@ -33,6 +33,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.kuit.ourmenu.R +import com.kuit.ourmenu.ui.addmenu.component.AddMenuSearchBackground import com.kuit.ourmenu.ui.addmenu.component.AddMenuTopAppBar import com.kuit.ourmenu.ui.addmenu.component.bottomsheet.AddMenuBottomSheetContent import com.kuit.ourmenu.ui.common.SearchBar From 57d688aaad64d2631a3488e9b8c2b3c39a088e88 Mon Sep 17 00:00:00 2001 From: casperjr Date: Mon, 27 Jan 2025 01:21:51 +0900 Subject: [PATCH 11/22] =?UTF-8?q?[feat]:=20=EA=B2=80=EC=83=89=20=ED=99=94?= =?UTF-8?q?=EB=A9=B4=EC=97=90=EC=84=9C=20=EC=82=AC=EC=9A=A9=ED=95=A0=20Add?= =?UTF-8?q?MenuSearchViewModel=20=EC=9E=91=EC=84=B1(#22)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../viewmodel/AddMenuSearchViewModel.kt | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 app/src/main/java/com/kuit/ourmenu/ui/addmenu/viewmodel/AddMenuSearchViewModel.kt diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/viewmodel/AddMenuSearchViewModel.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/viewmodel/AddMenuSearchViewModel.kt new file mode 100644 index 00000000..63c8dd3a --- /dev/null +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/viewmodel/AddMenuSearchViewModel.kt @@ -0,0 +1,29 @@ +package com.kuit.ourmenu.ui.addmenu.viewmodel + +import androidx.lifecycle.ViewModel +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow + +class AddMenuSearchViewModel : ViewModel() { + // 최근 검색 결과를 저장하는 StateFlow + private val _recentSearchResults = MutableStateFlow>(emptyList()) + val recentSearchResults: StateFlow> = _recentSearchResults + //실제 검색 결과를 저장하는 StateFlow + private val _searchResulst = MutableStateFlow>(emptyList()) + val searchResults: StateFlow> = _searchResulst + + init { + getRecentSearchResults() + //확인용, 이후에는 제거 + getSearchResults() + } + + fun getRecentSearchResults() { + _recentSearchResults.value = listOf(false, false, false, false, true) + + } + + fun getSearchResults(){ + _searchResulst.value = listOf() + } +} \ No newline at end of file From 413a64331e135c18ba0f55034eb76274b09f8c44 Mon Sep 17 00:00:00 2001 From: casperjr Date: Mon, 27 Jan 2025 01:58:51 +0900 Subject: [PATCH 12/22] =?UTF-8?q?[doc]:=20viewModel=EA=B3=BC=20collectAsSt?= =?UTF-8?q?ateWithLifecycle()=20=EC=82=AC=EC=9A=A9=EC=9D=84=20=EC=9C=84?= =?UTF-8?q?=ED=95=9C=20dependency=20=EC=B6=94=EA=B0=80,=20compileSdk=20?= =?UTF-8?q?=EC=97=85=EA=B7=B8=EB=A0=88=EC=9D=B4=EB=93=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle.kts | 4 +++- .../com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt | 6 ++++++ gradle/libs.versions.toml | 6 ++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 41d41492..56ff8c58 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -6,7 +6,7 @@ plugins { android { namespace = "com.kuit.ourmenu" - compileSdk = 34 + compileSdk = 35 defaultConfig { applicationId = "com.kuit.ourmenu" @@ -49,6 +49,8 @@ dependencies { implementation(libs.androidx.ui.graphics) implementation(libs.androidx.ui.tooling.preview) implementation(libs.androidx.material3) + implementation(libs.androidx.lifecycle.viewmodel.compose) + implementation(libs.androidx.lifecycle.runtime.compose.android) testImplementation(libs.junit) androidTestImplementation(libs.androidx.junit) androidTestImplementation(libs.androidx.espresso.core) diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt index 25110bc9..2ed638fc 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt @@ -32,10 +32,13 @@ import androidx.compose.ui.platform.LocalFocusManager import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp +import androidx.lifecycle.compose.collectAsStateWithLifecycle +import androidx.lifecycle.viewmodel.compose.viewModel import com.kuit.ourmenu.R import com.kuit.ourmenu.ui.addmenu.component.AddMenuSearchBackground import com.kuit.ourmenu.ui.addmenu.component.AddMenuTopAppBar import com.kuit.ourmenu.ui.addmenu.component.bottomsheet.AddMenuBottomSheetContent +import com.kuit.ourmenu.ui.addmenu.viewmodel.AddMenuSearchViewModel import com.kuit.ourmenu.ui.common.SearchBar import com.kuit.ourmenu.ui.theme.Neutral300 import com.kuit.ourmenu.ui.theme.Primary500Main @@ -53,6 +56,9 @@ fun AddMenuScreen(modifier: Modifier = Modifier) { val searchBarFocused by interactionSource.collectIsFocusedAsState() val focusManager = LocalFocusManager.current + val viewModel : AddMenuSearchViewModel = viewModel() + val recentSearchList by viewModel.recentSearchResults.collectAsStateWithLifecycle() + var dummyRecentSearchResults = mutableListOf( false, false, diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 60cfe30c..fff6a216 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -8,6 +8,9 @@ espressoCore = "3.5.1" lifecycleRuntimeKtx = "2.6.1" activityCompose = "1.8.0" composeBom = "2024.04.01" +lifecycleViewmodel = "2.9.0-alpha08" +lifecycleViewmodelCompose = "2.9.0-alpha08" +lifecycleRuntimeComposeAndroid = "2.8.7" [libraries] androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" } @@ -24,6 +27,9 @@ androidx-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-toolin androidx-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest" } androidx-ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-test-junit4" } androidx-material3 = { group = "androidx.compose.material3", name = "material3" } +androidx-lifecycle-viewmodel = { group = "androidx.lifecycle", name = "lifecycle-viewmodel", version.ref = "lifecycleViewmodel" } +androidx-lifecycle-viewmodel-compose = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-compose", version.ref = "lifecycleViewmodelCompose" } +androidx-lifecycle-runtime-compose-android = { group = "androidx.lifecycle", name = "lifecycle-runtime-compose-android", version.ref = "lifecycleRuntimeComposeAndroid" } [plugins] android-application = { id = "com.android.application", version.ref = "agp" } From 77f70e2b5339c863bc7a50daf5fbe26f5119aee4 Mon Sep 17 00:00:00 2001 From: casperjr Date: Mon, 27 Jan 2025 02:05:04 +0900 Subject: [PATCH 13/22] =?UTF-8?q?[refactor]:=20AddMenuScreen=EC=9D=98=20du?= =?UTF-8?q?mmy=20data=EB=A5=BC=20viewmodel=EB=A1=9C=20=EC=9D=B4=EC=A0=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../component/AddMenuSearchBackground.kt | 4 ++-- .../ourmenu/ui/addmenu/screen/AddMenuScreen.kt | 17 ++++------------- 2 files changed, 6 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/AddMenuSearchBackground.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/AddMenuSearchBackground.kt index 5a3374e1..1316aa8a 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/AddMenuSearchBackground.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/AddMenuSearchBackground.kt @@ -32,8 +32,8 @@ import com.kuit.ourmenu.ui.theme.ourMenuTypography fun AddMenuSearchBackground( modifier: Modifier = Modifier, searchActionDone: Boolean, - recentSearchResults: MutableList, //이후에 타입 변경 - searchResults: MutableList, //이후에 타입 변경 + recentSearchResults: List, //이후에 타입 변경 + searchResults: List, //이후에 타입 변경 onItemClick: () -> Unit ) { Box( diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt index 2ed638fc..086b4981 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt @@ -57,17 +57,8 @@ fun AddMenuScreen(modifier: Modifier = Modifier) { val focusManager = LocalFocusManager.current val viewModel : AddMenuSearchViewModel = viewModel() - val recentSearchList by viewModel.recentSearchResults.collectAsStateWithLifecycle() - - var dummyRecentSearchResults = mutableListOf( - false, - false, - false, - false, - true, - ) - val dummySearchResults: MutableList = mutableListOf( - ) + val recentSearchResults by viewModel.recentSearchResults.collectAsStateWithLifecycle() + val searchResults by viewModel.searchResults.collectAsStateWithLifecycle() LaunchedEffect(searchBarFocused){ if(searchBarFocused){ @@ -133,8 +124,8 @@ fun AddMenuScreen(modifier: Modifier = Modifier) { //검색 컴포넌트 AddMenuSearchBackground( searchActionDone = searchActionDone, - recentSearchResults = dummyRecentSearchResults, - searchResults = dummySearchResults + recentSearchResults = recentSearchResults, + searchResults = searchResults ) { //검색된 아이템 클릭시 작동할 함수 if(searchBarFocused) focusManager.clearFocus() From 5e457971e8621cc135d30f25cac7f64e5b0298c2 Mon Sep 17 00:00:00 2001 From: casperjr Date: Mon, 27 Jan 2025 02:43:42 +0900 Subject: [PATCH 14/22] =?UTF-8?q?[refactor]:=20AddMenuBottomSheetContent?= =?UTF-8?q?=EC=9D=98=20dummy=20data=EB=A5=BC=20viewmodel=EB=A1=9C=20?= =?UTF-8?q?=EC=9D=B4=EC=A0=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bottomsheet/AddMenuBottomSheetContent.kt | 17 +++++--- .../ui/addmenu/screen/AddMenuScreen.kt | 3 +- .../viewmodel/AddMenuSearchViewModel.kt | 41 +++++++++++++++++-- 3 files changed, 50 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/bottomsheet/AddMenuBottomSheetContent.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/bottomsheet/AddMenuBottomSheetContent.kt index acbdeea1..de600568 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/bottomsheet/AddMenuBottomSheetContent.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/bottomsheet/AddMenuBottomSheetContent.kt @@ -22,6 +22,7 @@ import androidx.compose.material3.Text import androidx.compose.material3.rememberBottomSheetScaffoldState import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.getValue import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -32,8 +33,12 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp +import androidx.lifecycle.compose.collectAsStateWithLifecycle +import androidx.lifecycle.viewmodel.compose.viewModel import com.kuit.ourmenu.R import com.kuit.ourmenu.ui.addmenu.component.item.SelectMenuItem +import com.kuit.ourmenu.ui.addmenu.viewmodel.AddMenuDummyRestaurantInfo +import com.kuit.ourmenu.ui.addmenu.viewmodel.AddMenuSearchViewModel import com.kuit.ourmenu.ui.common.BottomFullWidthButton import com.kuit.ourmenu.ui.theme.Neutral100 import com.kuit.ourmenu.ui.theme.Neutral300 @@ -47,11 +52,9 @@ import kotlinx.coroutines.launch @OptIn(ExperimentalMaterial3Api::class) @Composable -fun AddMenuBottomSheetContent(scaffoldState: BottomSheetScaffoldState) { +fun AddMenuBottomSheetContent(scaffoldState: BottomSheetScaffoldState, restaurantInfo: AddMenuDummyRestaurantInfo) { val coroutineScope = rememberCoroutineScope() - val dummyMenuItemList = listOf( - false, false, true, false, false, false, false, false - ) + val dummyMenuItemList = restaurantInfo.menuList Column( modifier = Modifier @@ -168,9 +171,11 @@ fun AddMenuBottomSheetContent(scaffoldState: BottomSheetScaffoldState) { @Composable private fun AddMenuBottomSheetContentPreview() { val scaffoldState = rememberBottomSheetScaffoldState() + val viewModel : AddMenuSearchViewModel = viewModel() + val restaurantInfo by viewModel.restaurantInfo.collectAsStateWithLifecycle() LaunchedEffect(Unit) { //아래 주석 해제하면 bottom sheet 확장된 상태 확인 가능 -// scaffoldState.bottomSheetState.expand() + scaffoldState.bottomSheetState.expand() } - AddMenuBottomSheetContent(scaffoldState) + AddMenuBottomSheetContent(scaffoldState, restaurantInfo) } \ No newline at end of file diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt index 086b4981..6bf5d832 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt @@ -59,6 +59,7 @@ fun AddMenuScreen(modifier: Modifier = Modifier) { val viewModel : AddMenuSearchViewModel = viewModel() val recentSearchResults by viewModel.recentSearchResults.collectAsStateWithLifecycle() val searchResults by viewModel.searchResults.collectAsStateWithLifecycle() + val restaurantInfo by viewModel.restaurantInfo.collectAsStateWithLifecycle() LaunchedEffect(searchBarFocused){ if(searchBarFocused){ @@ -88,7 +89,7 @@ fun AddMenuScreen(modifier: Modifier = Modifier) { sheetContainerColor = Color.White, sheetContent = { //bottom sheet 구성 - AddMenuBottomSheetContent(scaffoldState) + AddMenuBottomSheetContent(scaffoldState = scaffoldState, restaurantInfo = restaurantInfo) }, //조건 만족하면 bottom sheet 보여주고, 아니면 화면에 안보이도록 처리 sheetPeekHeight = if (showBottomSheet) 254.dp else 0.dp, diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/viewmodel/AddMenuSearchViewModel.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/viewmodel/AddMenuSearchViewModel.kt index 63c8dd3a..ca0f8710 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/viewmodel/AddMenuSearchViewModel.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/viewmodel/AddMenuSearchViewModel.kt @@ -1,8 +1,11 @@ package com.kuit.ourmenu.ui.addmenu.viewmodel import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import com.kuit.ourmenu.R import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.launch class AddMenuSearchViewModel : ViewModel() { // 최근 검색 결과를 저장하는 StateFlow @@ -11,19 +14,49 @@ class AddMenuSearchViewModel : ViewModel() { //실제 검색 결과를 저장하는 StateFlow private val _searchResulst = MutableStateFlow>(emptyList()) val searchResults: StateFlow> = _searchResulst + //식당 정보들 + private val _restaurantInfo = MutableStateFlow(AddMenuDummyRestaurantInfo()) + val restaurantInfo: StateFlow = _restaurantInfo init { getRecentSearchResults() //확인용, 이후에는 제거 getSearchResults() + getRestaurantInfo() } fun getRecentSearchResults() { - _recentSearchResults.value = listOf(false, false, false, false, true) - + viewModelScope.launch { + _recentSearchResults.value = listOf(false, false, false, false, true) + } } fun getSearchResults(){ - _searchResulst.value = listOf() + viewModelScope.launch { + _searchResulst.value = listOf() + } + } + + fun getRestaurantInfo(){ + viewModelScope.launch { + _restaurantInfo.value = AddMenuDummyRestaurantInfo( + imgList = listOf( + R.drawable.img_dummy_pizza, + R.drawable.img_dummy_pizza, + R.drawable.img_dummy_pizza, + ), + name = R.string.our_ddeokbokki.toString(), + address = R.string.resaturant_address.toString(), + menuList = listOf(false, false, true, false, false, false, false, false) + ) + } } -} \ No newline at end of file +} + +//이후에 dto 반영시 삭제 예정 +data class AddMenuDummyRestaurantInfo( + val imgList : List = emptyList(), + val name : String = "", + val address : String = "", + val menuList : List = emptyList(), +) \ No newline at end of file From e33a15dbdbaa911abe065fb45fd60587ddc25d15 Mon Sep 17 00:00:00 2001 From: casperjr Date: Mon, 27 Jan 2025 04:10:12 +0900 Subject: [PATCH 15/22] =?UTF-8?q?[feat]:=20bottom=20sheet=EC=9D=98=20?= =?UTF-8?q?=EA=B0=81=20SelectMenuItem.kt=EC=97=90=20=EB=8C=80=ED=95=9C=20?= =?UTF-8?q?=EB=8B=A8=EC=9D=BC=20=ED=81=B4=EB=A6=AD=20=EC=B2=98=EB=A6=AC(#2?= =?UTF-8?q?2)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/deploymentTargetSelector.xml | 3 ++ .../bottomsheet/AddMenuBottomSheetContent.kt | 31 ++++++++++++------- .../addmenu/component/item/SelectMenuItem.kt | 10 +++--- .../ui/addmenu/screen/AddMenuScreen.kt | 17 +++++----- .../viewmodel/AddMenuSearchViewModel.kt | 31 ++++++++++++++----- 5 files changed, 61 insertions(+), 31 deletions(-) diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml index 808487e1..92045ed8 100644 --- a/.idea/deploymentTargetSelector.xml +++ b/.idea/deploymentTargetSelector.xml @@ -16,6 +16,9 @@ + + \ No newline at end of file diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/bottomsheet/AddMenuBottomSheetContent.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/bottomsheet/AddMenuBottomSheetContent.kt index de600568..64e72cd8 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/bottomsheet/AddMenuBottomSheetContent.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/bottomsheet/AddMenuBottomSheetContent.kt @@ -11,7 +11,7 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width import androidx.compose.foundation.lazy.LazyColumn -import androidx.compose.foundation.lazy.items +import androidx.compose.foundation.lazy.itemsIndexed import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material3.BottomSheetScaffoldState import androidx.compose.material3.ExperimentalMaterial3Api @@ -52,9 +52,12 @@ import kotlinx.coroutines.launch @OptIn(ExperimentalMaterial3Api::class) @Composable -fun AddMenuBottomSheetContent(scaffoldState: BottomSheetScaffoldState, restaurantInfo: AddMenuDummyRestaurantInfo) { +fun AddMenuBottomSheetContent( + scaffoldState: BottomSheetScaffoldState, + restaurantInfo: AddMenuDummyRestaurantInfo, + onItemClick: (Int) -> Unit +) { val coroutineScope = rememberCoroutineScope() - val dummyMenuItemList = restaurantInfo.menuList Column( modifier = Modifier @@ -64,7 +67,7 @@ fun AddMenuBottomSheetContent(scaffoldState: BottomSheetScaffoldState, restauran Text( text = "식당 이름", style = ourMenuTypography().pretendard_700_20 - ) + ) Row(modifier = Modifier.fillMaxWidth(), verticalAlignment = Alignment.CenterVertically) { Icon( painter = painterResource(id = R.drawable.ic_location_info), @@ -139,8 +142,12 @@ fun AddMenuBottomSheetContent(scaffoldState: BottomSheetScaffoldState, restauran .weight(1f) .padding(top = 12.dp) ) { - items(dummyMenuItemList) { items -> - SelectMenuItem(items) + itemsIndexed(restaurantInfo.menuList) { index, isSelected -> +// Log.d("AddMenuBottomSheetContent", "Item: $index, $isSelected") + SelectMenuItem( + isSelected = isSelected, + onClick = { onItemClick(index) } + ) } } @@ -150,7 +157,7 @@ fun AddMenuBottomSheetContent(scaffoldState: BottomSheetScaffoldState, restauran contentColor = Neutral500, text = stringResource(R.string.add_menu_by_myself) ) { - + //메뉴 추가화면으로 이동하는 로직 } Spacer(modifier = Modifier.padding(10.dp)) BottomFullWidthButton( @@ -158,7 +165,7 @@ fun AddMenuBottomSheetContent(scaffoldState: BottomSheetScaffoldState, restauran contentColor = NeutralWhite, text = stringResource(R.string.next) ) { - + //정보 자동 입력된 메뉴 추가 화면 } } @@ -171,11 +178,13 @@ fun AddMenuBottomSheetContent(scaffoldState: BottomSheetScaffoldState, restauran @Composable private fun AddMenuBottomSheetContentPreview() { val scaffoldState = rememberBottomSheetScaffoldState() - val viewModel : AddMenuSearchViewModel = viewModel() + val viewModel: AddMenuSearchViewModel = viewModel() val restaurantInfo by viewModel.restaurantInfo.collectAsStateWithLifecycle() LaunchedEffect(Unit) { //아래 주석 해제하면 bottom sheet 확장된 상태 확인 가능 - scaffoldState.bottomSheetState.expand() + scaffoldState.bottomSheetState.expand() + } + AddMenuBottomSheetContent(scaffoldState, restaurantInfo) { index -> + viewModel.updateSelectedMenu(index = index) } - AddMenuBottomSheetContent(scaffoldState, restaurantInfo) } \ No newline at end of file diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/SelectMenuItem.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/SelectMenuItem.kt index a760dce4..5576be66 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/SelectMenuItem.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/SelectMenuItem.kt @@ -29,7 +29,7 @@ import com.kuit.ourmenu.ui.theme.Primary500Main import com.kuit.ourmenu.ui.theme.ourMenuTypography @Composable -fun SelectMenuItem(isSelected: Boolean = false) { +fun SelectMenuItem(isSelected: Boolean = false, onClick: () -> Unit) { HorizontalDivider( thickness = 1.dp, color = Neutral300, @@ -55,7 +55,7 @@ fun SelectMenuItem(isSelected: Boolean = false) { } if (isSelected) { Button( - onClick = {}, + onClick = onClick, shape = RoundedCornerShape(16.dp), colors = ButtonDefaults.buttonColors( containerColor = Primary500Main @@ -70,7 +70,7 @@ fun SelectMenuItem(isSelected: Boolean = false) { } } else { Button( - onClick = {}, + onClick = onClick, shape = RoundedCornerShape(16.dp), border = BorderStroke(1.dp, Primary500Main), colors = ButtonDefaults.buttonColors( @@ -93,7 +93,7 @@ fun SelectMenuItem(isSelected: Boolean = false) { @Composable private fun SelectedMenuItemPreview() { Column(modifier = Modifier.fillMaxSize(), verticalArrangement = Arrangement.Center) { - SelectMenuItem(false) - SelectMenuItem(true) + SelectMenuItem(false, onClick = {}) + SelectMenuItem(true, onClick = {}) } } \ No newline at end of file diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt index 6bf5d832..ca795d8c 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt @@ -56,20 +56,20 @@ fun AddMenuScreen(modifier: Modifier = Modifier) { val searchBarFocused by interactionSource.collectIsFocusedAsState() val focusManager = LocalFocusManager.current - val viewModel : AddMenuSearchViewModel = viewModel() + val viewModel: AddMenuSearchViewModel = viewModel() val recentSearchResults by viewModel.recentSearchResults.collectAsStateWithLifecycle() val searchResults by viewModel.searchResults.collectAsStateWithLifecycle() val restaurantInfo by viewModel.restaurantInfo.collectAsStateWithLifecycle() - LaunchedEffect(searchBarFocused){ - if(searchBarFocused){ + LaunchedEffect(searchBarFocused) { + if (searchBarFocused) { showSearchBackground = true showBottomSheet = false } } BackHandler(enabled = showSearchBackground) { - if(searchBarFocused) focusManager.clearFocus() + if (searchBarFocused) focusManager.clearFocus() searchActionDone = false showSearchBackground = false searchText = "" @@ -89,7 +89,10 @@ fun AddMenuScreen(modifier: Modifier = Modifier) { sheetContainerColor = Color.White, sheetContent = { //bottom sheet 구성 - AddMenuBottomSheetContent(scaffoldState = scaffoldState, restaurantInfo = restaurantInfo) + AddMenuBottomSheetContent( + scaffoldState = scaffoldState, + restaurantInfo = restaurantInfo, + onItemClick = { index -> viewModel.updateSelectedMenu(index) }) }, //조건 만족하면 bottom sheet 보여주고, 아니면 화면에 안보이도록 처리 sheetPeekHeight = if (showBottomSheet) 254.dp else 0.dp, @@ -129,7 +132,7 @@ fun AddMenuScreen(modifier: Modifier = Modifier) { searchResults = searchResults ) { //검색된 아이템 클릭시 작동할 함수 - if(searchBarFocused) focusManager.clearFocus() + if (searchBarFocused) focusManager.clearFocus() showSearchBackground = false showBottomSheet = true searchText = "" @@ -147,7 +150,7 @@ fun AddMenuScreen(modifier: Modifier = Modifier) { interactionSource = interactionSource ) { //onSearch 함수 - if(searchBarFocused) focusManager.clearFocus() + if (searchBarFocused) focusManager.clearFocus() searchActionDone = true } diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/viewmodel/AddMenuSearchViewModel.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/viewmodel/AddMenuSearchViewModel.kt index ca0f8710..f427a7cf 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/viewmodel/AddMenuSearchViewModel.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/viewmodel/AddMenuSearchViewModel.kt @@ -1,5 +1,6 @@ package com.kuit.ourmenu.ui.addmenu.viewmodel +import android.util.Log import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.kuit.ourmenu.R @@ -11,9 +12,11 @@ class AddMenuSearchViewModel : ViewModel() { // 최근 검색 결과를 저장하는 StateFlow private val _recentSearchResults = MutableStateFlow>(emptyList()) val recentSearchResults: StateFlow> = _recentSearchResults + //실제 검색 결과를 저장하는 StateFlow private val _searchResulst = MutableStateFlow>(emptyList()) val searchResults: StateFlow> = _searchResulst + //식당 정보들 private val _restaurantInfo = MutableStateFlow(AddMenuDummyRestaurantInfo()) val restaurantInfo: StateFlow = _restaurantInfo @@ -31,15 +34,15 @@ class AddMenuSearchViewModel : ViewModel() { } } - fun getSearchResults(){ + fun getSearchResults() { viewModelScope.launch { _searchResulst.value = listOf() } } - fun getRestaurantInfo(){ + fun getRestaurantInfo() { viewModelScope.launch { - _restaurantInfo.value = AddMenuDummyRestaurantInfo( + _restaurantInfo.value = AddMenuDummyRestaurantInfo( imgList = listOf( R.drawable.img_dummy_pizza, R.drawable.img_dummy_pizza, @@ -47,16 +50,28 @@ class AddMenuSearchViewModel : ViewModel() { ), name = R.string.our_ddeokbokki.toString(), address = R.string.resaturant_address.toString(), - menuList = listOf(false, false, true, false, false, false, false, false) + menuList = listOf(false, false, false, false, false, false, false, false) ) } } + + fun updateSelectedMenu(index: Int) { + Log.d("AddMenuViewModel", "index: $index") + viewModelScope.launch { + val updatedMenuList = _restaurantInfo.value.menuList.mapIndexed { i, _ -> + //클릭된 인덱스만 true, 나머지는 false + i == index + } +// Log.d("AddMenuViewModel", "updatedMenuList: $updatedMenuList") + _restaurantInfo.value = _restaurantInfo.value.copy(menuList = updatedMenuList) + } + } } //이후에 dto 반영시 삭제 예정 data class AddMenuDummyRestaurantInfo( - val imgList : List = emptyList(), - val name : String = "", - val address : String = "", - val menuList : List = emptyList(), + val imgList: List = emptyList(), + val name: String = "", + val address: String = "", + val menuList: List = emptyList(), ) \ No newline at end of file From c93ce96b6a809f8d2f91a794b6202dacd9ff06a5 Mon Sep 17 00:00:00 2001 From: casperjr Date: Mon, 27 Jan 2025 14:30:04 +0900 Subject: [PATCH 16/22] =?UTF-8?q?[feat]:=20=EC=95=84=EC=9D=B4=ED=85=9C=20?= =?UTF-8?q?=EC=84=A0=ED=83=9D=EC=8B=9C=20=EB=B2=84=ED=8A=BC=20=ED=99=9C?= =?UTF-8?q?=EC=84=B1=ED=99=94=20=EA=B5=AC=ED=98=84(#22)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../component/bottomsheet/AddMenuBottomSheetContent.kt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/bottomsheet/AddMenuBottomSheetContent.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/bottomsheet/AddMenuBottomSheetContent.kt index 64e72cd8..ecf1c48f 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/bottomsheet/AddMenuBottomSheetContent.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/bottomsheet/AddMenuBottomSheetContent.kt @@ -58,6 +58,7 @@ fun AddMenuBottomSheetContent( onItemClick: (Int) -> Unit ) { val coroutineScope = rememberCoroutineScope() + val enableNextButton = restaurantInfo.menuList.any { it } Column( modifier = Modifier @@ -161,11 +162,13 @@ fun AddMenuBottomSheetContent( } Spacer(modifier = Modifier.padding(10.dp)) BottomFullWidthButton( - containerColor = Neutral400, + containerColor = if (enableNextButton) Primary500Main else Neutral400, contentColor = NeutralWhite, text = stringResource(R.string.next) ) { - //정보 자동 입력된 메뉴 추가 화면 + if (enableNextButton){ + //버튼 활성화 된 경우의 동작 + } } } From 760c55b2096d7cc349d35dd2c339c83a51bf9cfb Mon Sep 17 00:00:00 2001 From: casperjr Date: Mon, 27 Jan 2025 14:38:07 +0900 Subject: [PATCH 17/22] =?UTF-8?q?[fix]:=20=EC=84=A0=ED=83=9D=EB=90=9C=20?= =?UTF-8?q?=EC=95=84=EC=9D=B4=ED=85=9C=20=ED=81=B4=EB=A6=AD=EC=8B=9C=20?= =?UTF-8?q?=EB=8B=A4=EC=8B=9C=20=EB=AF=B8=EC=84=A0=ED=83=9D=20=EC=83=81?= =?UTF-8?q?=ED=83=9C=EB=A1=9C=20=EB=B3=80=EA=B2=BD(#22)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../addmenu/viewmodel/AddMenuSearchViewModel.kt | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/viewmodel/AddMenuSearchViewModel.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/viewmodel/AddMenuSearchViewModel.kt index f427a7cf..9f02b65f 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/viewmodel/AddMenuSearchViewModel.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/viewmodel/AddMenuSearchViewModel.kt @@ -58,9 +58,18 @@ class AddMenuSearchViewModel : ViewModel() { fun updateSelectedMenu(index: Int) { Log.d("AddMenuViewModel", "index: $index") viewModelScope.launch { - val updatedMenuList = _restaurantInfo.value.menuList.mapIndexed { i, _ -> - //클릭된 인덱스만 true, 나머지는 false - i == index + val currentState = _restaurantInfo.value.menuList[index] + val updatedMenuList = + if (currentState){ + //선택된 아이템 클릭시 false로 다시 변경 + _restaurantInfo.value.menuList.map { + false + } + }else{ + //클릭된 인덱스만 true, 나머지는 false + _restaurantInfo.value.menuList.mapIndexed { i, _ -> + i == index + } } // Log.d("AddMenuViewModel", "updatedMenuList: $updatedMenuList") _restaurantInfo.value = _restaurantInfo.value.copy(menuList = updatedMenuList) From 3988416ef9f79c294b7e119a639e990b88eee329 Mon Sep 17 00:00:00 2001 From: casperjr Date: Tue, 28 Jan 2025 01:56:08 +0900 Subject: [PATCH 18/22] =?UTF-8?q?[fix]:=20CustomTextField=20=EC=BB=A4?= =?UTF-8?q?=EC=84=9C=20=EC=83=89=EC=83=81=20=EB=B3=80=EA=B2=BD=20=EC=88=98?= =?UTF-8?q?=EC=A0=95,=20disabled=20=EB=94=94=EC=9E=90=EC=9D=B8=20=EC=88=98?= =?UTF-8?q?=EC=A0=95(#26)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/kuit/ourmenu/ui/common/CustomTextField.kt | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/kuit/ourmenu/ui/common/CustomTextField.kt b/app/src/main/java/com/kuit/ourmenu/ui/common/CustomTextField.kt index f16a78af..5cfe825c 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/common/CustomTextField.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/common/CustomTextField.kt @@ -29,6 +29,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Shape +import androidx.compose.ui.graphics.SolidColor import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.input.VisualTransformation @@ -123,7 +124,8 @@ fun CustomTextField( singleLine = singleLine, textStyle = textStyle, keyboardOptions = keyboardOptions, - keyboardActions = keyboardActions + keyboardActions = keyboardActions, + cursorBrush = SolidColor(cursorColor) ) { innerTextField -> TextFieldDefaults.DecorationBox( @@ -146,7 +148,8 @@ fun CustomTextField( unfocusedContainerColor = containerColor, focusedIndicatorColor = Color.Transparent, unfocusedIndicatorColor = Color.Transparent, - cursorColor = cursorColor + disabledContainerColor = containerColor, + disabledIndicatorColor = containerColor, ) ) @@ -168,9 +171,10 @@ private fun CustomTextFieldPreview() { CustomTextField( modifier = Modifier .fillMaxWidth() - .border(0.8.dp, Color.Black), + .border(0.8.dp, Color.Black, RoundedCornerShape(8.dp)), text = textForSimple, - onTextChange = { textForSimple = it } + onTextChange = { textForSimple = it }, + enabled = false ) Spacer(modifier = Modifier.height(20.dp)) //추가 기능이 있는 버전 @@ -194,7 +198,8 @@ private fun CustomTextFieldPreview() { contentDescription = "SearchIcon" ) }, - paddingValues = PaddingValues(20.dp, 0.dp) + paddingValues = PaddingValues(20.dp, 0.dp), + cursorColor = Color.Red, ) } } From da4ca990931c5a6634eb1f171a3e7eabcc29d856 Mon Sep 17 00:00:00 2001 From: casperjr Date: Tue, 28 Jan 2025 02:04:32 +0900 Subject: [PATCH 19/22] =?UTF-8?q?[feat]:=20CustomTextField=EC=97=90=20isEr?= =?UTF-8?q?ror=20=ED=8C=8C=EB=9D=BC=EB=AF=B8=ED=84=B0=20=EC=B6=94=EA=B0=80?= =?UTF-8?q?,=20preview=EC=97=90=20=EC=98=88=EC=8B=9C=20=EC=9E=91=EC=84=B1(?= =?UTF-8?q?#26)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/kuit/ourmenu/ui/common/CustomTextField.kt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/kuit/ourmenu/ui/common/CustomTextField.kt b/app/src/main/java/com/kuit/ourmenu/ui/common/CustomTextField.kt index 5cfe825c..354e079f 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/common/CustomTextField.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/common/CustomTextField.kt @@ -88,6 +88,9 @@ import com.kuit.ourmenu.ui.theme.ourMenuTypography * @param cursorColor 커서에 대한 색상을 Color 객체를 통해 지정한다 * 기본 값으로는 Color.Black으로 지정 * + * @param isError 에러 처리에 필요한 조건문에 사용할 변수, 기본값은 false로 초기화되어 있다 + * ex) 비밀번호 오류시 container 색상 변경 등 + * * @param keyboardOptions 키보드에 대한 설정을 KeyboardOptions를 통해 지정한다 * * @param keyboardActions 키보드에서 특정 버튼을 눌렀을 때의 작업을 keyboardActions를 통해 지정한다 @@ -110,6 +113,7 @@ fun CustomTextField( paddingValues: PaddingValues = PaddingValues(0.dp), containerColor: Color = Color.White, cursorColor: Color = Color.Black, + isError: Boolean = false, keyboardOptions: KeyboardOptions = KeyboardOptions.Default, keyboardActions: KeyboardActions = KeyboardActions.Default ) { @@ -144,7 +148,7 @@ fun CustomTextField( /* * 이곳에서 enabled 여부, focus 여부 등에 따른 색상, indicator(밑줄)의 색상 등을 따로 지정할 수 있다. * */ - focusedContainerColor = containerColor, + focusedContainerColor = if(isError) Color.Red else containerColor, unfocusedContainerColor = containerColor, focusedIndicatorColor = Color.Transparent, unfocusedIndicatorColor = Color.Transparent, @@ -172,9 +176,10 @@ private fun CustomTextFieldPreview() { modifier = Modifier .fillMaxWidth() .border(0.8.dp, Color.Black, RoundedCornerShape(8.dp)), + shape = RoundedCornerShape(8.dp), text = textForSimple, onTextChange = { textForSimple = it }, - enabled = false + isError = true ) Spacer(modifier = Modifier.height(20.dp)) //추가 기능이 있는 버전 From 0e2061395ac98e27aebb6ceda81f629ce93b7546 Mon Sep 17 00:00:00 2001 From: casperjr Date: Tue, 28 Jan 2025 02:06:35 +0900 Subject: [PATCH 20/22] =?UTF-8?q?[doc]:=20CustomTextField=20=EC=A3=BC?= =?UTF-8?q?=EC=84=9D=20=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8(#26)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/com/kuit/ourmenu/ui/common/CustomTextField.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/kuit/ourmenu/ui/common/CustomTextField.kt b/app/src/main/java/com/kuit/ourmenu/ui/common/CustomTextField.kt index 354e079f..bde64ff9 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/common/CustomTextField.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/common/CustomTextField.kt @@ -69,7 +69,7 @@ import com.kuit.ourmenu.ui.theme.ourMenuTypography * * @param singleLine 입력된 텍스트를 한 줄로만 표시할지의 여부를 나타낸다. 기본값은 true * - * @param shape 배경, 내부영역을 포함한 컴포넌트의 전체적인 모양 처리 + * @param shape 컴포넌트의 내부 영역의 모양 처리, modifier에 RoundedCornerShape를 적용하면 여기에도 적용해야 동일해진다 * ex) RoundedCornerShape(8.dp) 등 * * @param trailingIcon 컴포넌트의 우측 끝에 위치하게 할 Icon 객체를 lambda를 통해 넘겨준다 From 02bcdd89bc47f3bde1f2efde5b0c7faafc4604d9 Mon Sep 17 00:00:00 2001 From: casperjr Date: Thu, 30 Jan 2025 20:33:10 +0900 Subject: [PATCH 21/22] =?UTF-8?q?[chore]:=20BottomFullWidth/HalfWidthButto?= =?UTF-8?q?n=20=EC=A4=84=EB=B0=94=EA=BF=88=20=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ourmenu/ui/common/BottomFullWidthButton.kt | 17 +++++++++++++---- .../ourmenu/ui/common/BottomHalfWidthButton.kt | 12 ++++++++++-- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/kuit/ourmenu/ui/common/BottomFullWidthButton.kt b/app/src/main/java/com/kuit/ourmenu/ui/common/BottomFullWidthButton.kt index 02d10a56..6c297bd1 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/common/BottomFullWidthButton.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/common/BottomFullWidthButton.kt @@ -27,7 +27,7 @@ import com.kuit.ourmenu.ui.theme.ourMenuTypography @Composable fun BottomFullWidthButton( - modifier : Modifier = Modifier, + modifier: Modifier = Modifier, containerColor: Color, contentColor: Color, text: String, @@ -45,7 +45,8 @@ fun BottomFullWidthButton( contentColor = contentColor ), ) { - Text(text = text, + Text( + text = text, style = ourMenuTypography().pretendard_700_16, color = contentColor ) @@ -56,11 +57,19 @@ fun BottomFullWidthButton( @Composable private fun BottomFullWidthButtonPreview() { Column(modifier = Modifier.fillMaxSize(), verticalArrangement = Arrangement.Center) { - BottomFullWidthButton(containerColor = Neutral100, contentColor = Neutral500, text = stringResource(R.string.add_restaurant_and_menu_by_myself)){ + BottomFullWidthButton( + containerColor = Neutral100, + contentColor = Neutral500, + text = stringResource(R.string.add_restaurant_and_menu_by_myself) + ) { //onClick 작성 } Spacer(modifier = Modifier.height(16.dp)) - BottomFullWidthButton(containerColor = Primary500Main, contentColor = NeutralWhite, text = stringResource(R.string.add_menu)){ + BottomFullWidthButton( + containerColor = Primary500Main, + contentColor = NeutralWhite, + text = stringResource(R.string.add_menu) + ) { //onClick 작성 } } diff --git a/app/src/main/java/com/kuit/ourmenu/ui/common/BottomHalfWidthButton.kt b/app/src/main/java/com/kuit/ourmenu/ui/common/BottomHalfWidthButton.kt index 595c7198..68411a51 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/common/BottomHalfWidthButton.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/common/BottomHalfWidthButton.kt @@ -63,10 +63,18 @@ private fun BottomHalfWidthButtonPreview() { horizontalAlignment = Alignment.CenterHorizontally ) { Row(modifier = Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween) { - BottomHalfWidthButton(containerColor = Neutral400, contentColor = NeutralWhite, text = stringResource(R.string.cancel)) { + BottomHalfWidthButton( + containerColor = Neutral400, + contentColor = NeutralWhite, + text = stringResource(R.string.cancel) + ) { } - BottomHalfWidthButton(containerColor = Primary500Main, contentColor = NeutralWhite, text = stringResource(R.string.apply)) { + BottomHalfWidthButton( + containerColor = Primary500Main, + contentColor = NeutralWhite, + text = stringResource(R.string.apply) + ) { } } From aac533faafccd83dfaf7425819dcbfdd17e1c52c Mon Sep 17 00:00:00 2001 From: casperjr Date: Thu, 30 Jan 2025 20:40:48 +0900 Subject: [PATCH 22/22] =?UTF-8?q?[chore]:=20restaurant=20->=20store?= =?UTF-8?q?=EB=A1=9C=20=EB=84=A4=EC=9D=B4=EB=B0=8D=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../component/AddMenuSearchBackground.kt | 8 +++---- .../bottomsheet/AddMenuBottomSheetContent.kt | 12 +++++----- .../item/AddMenuInfoAddressFieldItem.kt | 2 +- .../item/AddMenuInfoTextFieldItem.kt | 10 ++++----- ...aurantSearchItem.kt => StoreSearchItem.kt} | 8 +++---- .../ui/addmenu/screen/AddMenuInfoScreen.kt | 12 +++++----- .../ui/addmenu/screen/AddMenuScreen.kt | 6 ++--- .../viewmodel/AddMenuSearchViewModel.kt | 22 +++++++++---------- .../ui/common/BottomFullWidthButton.kt | 2 +- app/src/main/res/values/strings.xml | 8 +++---- 10 files changed, 45 insertions(+), 45 deletions(-) rename app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/{RestaurantSearchItem.kt => StoreSearchItem.kt} (95%) diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/AddMenuSearchBackground.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/AddMenuSearchBackground.kt index 1316aa8a..e1711326 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/AddMenuSearchBackground.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/AddMenuSearchBackground.kt @@ -21,7 +21,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.kuit.ourmenu.R -import com.kuit.ourmenu.ui.addmenu.component.item.RestaurantSearchItem +import com.kuit.ourmenu.ui.addmenu.component.item.StoreSearchItem import com.kuit.ourmenu.ui.common.BottomFullWidthButton import com.kuit.ourmenu.ui.theme.Neutral100 import com.kuit.ourmenu.ui.theme.Neutral500 @@ -69,7 +69,7 @@ fun AddMenuSearchBackground( } else { LazyColumn(modifier = Modifier.padding(top = 68.dp)) { items(searchResults) { item -> - RestaurantSearchItem( + StoreSearchItem( isLastItem = item, ){ onItemClick() @@ -90,7 +90,7 @@ fun AddMenuSearchBackground( } else { LazyColumn() { items(recentSearchResults) { item -> - RestaurantSearchItem( + StoreSearchItem( isLastItem = item, ){ onItemClick() @@ -109,7 +109,7 @@ fun AddMenuSearchBackground( onClick = { TODO() }, containerColor = Neutral100, contentColor = Neutral500, - text = stringResource(R.string.add_restaurant_and_menu_by_myself) + text = stringResource(R.string.add_store_and_menu_by_myself) ) } } diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/bottomsheet/AddMenuBottomSheetContent.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/bottomsheet/AddMenuBottomSheetContent.kt index ecf1c48f..eb4046e0 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/bottomsheet/AddMenuBottomSheetContent.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/bottomsheet/AddMenuBottomSheetContent.kt @@ -37,7 +37,7 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel import com.kuit.ourmenu.R import com.kuit.ourmenu.ui.addmenu.component.item.SelectMenuItem -import com.kuit.ourmenu.ui.addmenu.viewmodel.AddMenuDummyRestaurantInfo +import com.kuit.ourmenu.ui.addmenu.viewmodel.AddMenuDummyStoreInfo import com.kuit.ourmenu.ui.addmenu.viewmodel.AddMenuSearchViewModel import com.kuit.ourmenu.ui.common.BottomFullWidthButton import com.kuit.ourmenu.ui.theme.Neutral100 @@ -54,11 +54,11 @@ import kotlinx.coroutines.launch @Composable fun AddMenuBottomSheetContent( scaffoldState: BottomSheetScaffoldState, - restaurantInfo: AddMenuDummyRestaurantInfo, + storeInfo: AddMenuDummyStoreInfo, onItemClick: (Int) -> Unit ) { val coroutineScope = rememberCoroutineScope() - val enableNextButton = restaurantInfo.menuList.any { it } + val enableNextButton = storeInfo.menuList.any { it } Column( modifier = Modifier @@ -143,7 +143,7 @@ fun AddMenuBottomSheetContent( .weight(1f) .padding(top = 12.dp) ) { - itemsIndexed(restaurantInfo.menuList) { index, isSelected -> + itemsIndexed(storeInfo.menuList) { index, isSelected -> // Log.d("AddMenuBottomSheetContent", "Item: $index, $isSelected") SelectMenuItem( isSelected = isSelected, @@ -182,12 +182,12 @@ fun AddMenuBottomSheetContent( private fun AddMenuBottomSheetContentPreview() { val scaffoldState = rememberBottomSheetScaffoldState() val viewModel: AddMenuSearchViewModel = viewModel() - val restaurantInfo by viewModel.restaurantInfo.collectAsStateWithLifecycle() + val storeInfo by viewModel.storeInfo.collectAsStateWithLifecycle() LaunchedEffect(Unit) { //아래 주석 해제하면 bottom sheet 확장된 상태 확인 가능 scaffoldState.bottomSheetState.expand() } - AddMenuBottomSheetContent(scaffoldState, restaurantInfo) { index -> + AddMenuBottomSheetContent(scaffoldState, storeInfo) { index -> viewModel.updateSelectedMenu(index = index) } } \ No newline at end of file diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/AddMenuInfoAddressFieldItem.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/AddMenuInfoAddressFieldItem.kt index 3858d080..1e43a96c 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/AddMenuInfoAddressFieldItem.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/AddMenuInfoAddressFieldItem.kt @@ -69,7 +69,7 @@ fun AddMenuInfoAddressFieldItem( containerColor = Neutral100, placeHolder = { Text( - text = stringResource(R.string.type_restaurant_address), + text = stringResource(R.string.type_store_address), style = ourMenuTypography().pretendard_500_14, color = Neutral500 ) diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/AddMenuInfoTextFieldItem.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/AddMenuInfoTextFieldItem.kt index c1a1fc80..100cadfa 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/AddMenuInfoTextFieldItem.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/AddMenuInfoTextFieldItem.kt @@ -95,7 +95,7 @@ fun AddMenuInfoTextFieldItem( @Composable private fun AddMenuInfoTextFieldItemPreview() { var priceText by rememberSaveable { mutableStateOf("") } - var restaurantNameText by rememberSaveable { mutableStateOf("") } + var storeNameText by rememberSaveable { mutableStateOf("") } Column( modifier = Modifier.fillMaxSize(), @@ -110,10 +110,10 @@ private fun AddMenuInfoTextFieldItemPreview() { isPriceInfo = true ) AddMenuInfoTextFieldItem( - fieldName = stringResource(R.string.restaurant_name), - text = restaurantNameText, - onTextChange = { restaurantNameText = it }, - placeholder = stringResource(R.string.type_restaurant_name) + fieldName = stringResource(R.string.store_name), + text = storeNameText, + onTextChange = { storeNameText = it }, + placeholder = stringResource(R.string.type_store_name) ) } diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/RestaurantSearchItem.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/StoreSearchItem.kt similarity index 95% rename from app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/RestaurantSearchItem.kt rename to app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/StoreSearchItem.kt index 89240c66..e59e88c8 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/RestaurantSearchItem.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/component/item/StoreSearchItem.kt @@ -24,7 +24,7 @@ import com.kuit.ourmenu.ui.theme.Neutral700 import com.kuit.ourmenu.ui.theme.ourMenuTypography @Composable -fun RestaurantSearchItem( +fun StoreSearchItem( isLastItem: Boolean = false, onClick: () -> Unit = {} ) { @@ -68,8 +68,8 @@ fun RestaurantSearchItem( @Composable private fun RestaurantSearchItemPreview() { Column(modifier = Modifier.fillMaxSize(), verticalArrangement = Arrangement.Center) { - RestaurantSearchItem() - RestaurantSearchItem() - RestaurantSearchItem(true) + StoreSearchItem() + StoreSearchItem() + StoreSearchItem(true) } } \ No newline at end of file diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuInfoScreen.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuInfoScreen.kt index 2aaaa27e..728cea57 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuInfoScreen.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuInfoScreen.kt @@ -30,8 +30,8 @@ import com.kuit.ourmenu.R import com.kuit.ourmenu.ui.addmenu.component.item.AddMenuInfoAddressFieldItem import com.kuit.ourmenu.ui.addmenu.component.item.AddMenuInfoMenuBoardFieldItem import com.kuit.ourmenu.ui.addmenu.component.item.AddMenuInfoTextFieldItem -import com.kuit.ourmenu.ui.common.topappbar.OurMenuBackButtonTopAppBar import com.kuit.ourmenu.ui.common.BottomFullWidthButton +import com.kuit.ourmenu.ui.common.topappbar.OurMenuBackButtonTopAppBar import com.kuit.ourmenu.ui.theme.Neutral300 import com.kuit.ourmenu.ui.theme.Neutral400 import com.kuit.ourmenu.ui.theme.Neutral500 @@ -44,7 +44,7 @@ fun AddMenuInfoScreen(autoInput: Boolean = true) { var menuBoardText by rememberSaveable { mutableStateOf("") } var menuNameText by rememberSaveable { mutableStateOf("") } var priceText by rememberSaveable { mutableStateOf("") } - var restaurantNameText by rememberSaveable { mutableStateOf("") } + var storeNameText by rememberSaveable { mutableStateOf("") } var mainAddressText by rememberSaveable { mutableStateOf("") } var detailedAddressText by rememberSaveable { mutableStateOf("") } @@ -134,10 +134,10 @@ fun AddMenuInfoScreen(autoInput: Boolean = true) { isPriceInfo = true ) AddMenuInfoTextFieldItem( - fieldName = stringResource(R.string.restaurant_name), - text = restaurantNameText, - onTextChange = { restaurantNameText = it }, - placeholder = stringResource(R.string.type_restaurant_name) + fieldName = stringResource(R.string.store_name), + text = storeNameText, + onTextChange = { storeNameText = it }, + placeholder = stringResource(R.string.type_store_name) ) AddMenuInfoAddressFieldItem( diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt index 08e4b8e0..f3bbec0d 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuScreen.kt @@ -38,8 +38,8 @@ import com.kuit.ourmenu.R import com.kuit.ourmenu.ui.addmenu.component.AddMenuSearchBackground import com.kuit.ourmenu.ui.addmenu.component.bottomsheet.AddMenuBottomSheetContent import com.kuit.ourmenu.ui.addmenu.viewmodel.AddMenuSearchViewModel -import com.kuit.ourmenu.ui.common.topappbar.OurMenuBackButtonTopAppBar import com.kuit.ourmenu.ui.common.SearchBar +import com.kuit.ourmenu.ui.common.topappbar.OurMenuBackButtonTopAppBar import com.kuit.ourmenu.ui.theme.Neutral300 import com.kuit.ourmenu.ui.theme.Primary500Main import com.kuit.ourmenu.ui.theme.ourMenuTypography @@ -59,7 +59,7 @@ fun AddMenuScreen(modifier: Modifier = Modifier) { val viewModel: AddMenuSearchViewModel = viewModel() val recentSearchResults by viewModel.recentSearchResults.collectAsStateWithLifecycle() val searchResults by viewModel.searchResults.collectAsStateWithLifecycle() - val restaurantInfo by viewModel.restaurantInfo.collectAsStateWithLifecycle() + val storeInfo by viewModel.storeInfo.collectAsStateWithLifecycle() LaunchedEffect(searchBarFocused) { if (searchBarFocused) { @@ -91,7 +91,7 @@ fun AddMenuScreen(modifier: Modifier = Modifier) { //bottom sheet 구성 AddMenuBottomSheetContent( scaffoldState = scaffoldState, - restaurantInfo = restaurantInfo, + storeInfo = storeInfo, onItemClick = { index -> viewModel.updateSelectedMenu(index) }) }, //조건 만족하면 bottom sheet 보여주고, 아니면 화면에 안보이도록 처리 diff --git a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/viewmodel/AddMenuSearchViewModel.kt b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/viewmodel/AddMenuSearchViewModel.kt index 9f02b65f..dfed7b06 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/addmenu/viewmodel/AddMenuSearchViewModel.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/addmenu/viewmodel/AddMenuSearchViewModel.kt @@ -9,17 +9,17 @@ import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.launch class AddMenuSearchViewModel : ViewModel() { - // 최근 검색 결과를 저장하는 StateFlow + // 최근 검색 결과를 저장 private val _recentSearchResults = MutableStateFlow>(emptyList()) val recentSearchResults: StateFlow> = _recentSearchResults - //실제 검색 결과를 저장하는 StateFlow + //실제 검색 결과를 저장 private val _searchResulst = MutableStateFlow>(emptyList()) val searchResults: StateFlow> = _searchResulst - //식당 정보들 - private val _restaurantInfo = MutableStateFlow(AddMenuDummyRestaurantInfo()) - val restaurantInfo: StateFlow = _restaurantInfo + //식당 정보 + private val _storeInfo = MutableStateFlow(AddMenuDummyStoreInfo()) + val storeInfo: StateFlow = _storeInfo init { getRecentSearchResults() @@ -42,7 +42,7 @@ class AddMenuSearchViewModel : ViewModel() { fun getRestaurantInfo() { viewModelScope.launch { - _restaurantInfo.value = AddMenuDummyRestaurantInfo( + _storeInfo.value = AddMenuDummyStoreInfo( imgList = listOf( R.drawable.img_dummy_pizza, R.drawable.img_dummy_pizza, @@ -58,27 +58,27 @@ class AddMenuSearchViewModel : ViewModel() { fun updateSelectedMenu(index: Int) { Log.d("AddMenuViewModel", "index: $index") viewModelScope.launch { - val currentState = _restaurantInfo.value.menuList[index] + val currentState = _storeInfo.value.menuList[index] val updatedMenuList = if (currentState){ //선택된 아이템 클릭시 false로 다시 변경 - _restaurantInfo.value.menuList.map { + _storeInfo.value.menuList.map { false } }else{ //클릭된 인덱스만 true, 나머지는 false - _restaurantInfo.value.menuList.mapIndexed { i, _ -> + _storeInfo.value.menuList.mapIndexed { i, _ -> i == index } } // Log.d("AddMenuViewModel", "updatedMenuList: $updatedMenuList") - _restaurantInfo.value = _restaurantInfo.value.copy(menuList = updatedMenuList) + _storeInfo.value = _storeInfo.value.copy(menuList = updatedMenuList) } } } //이후에 dto 반영시 삭제 예정 -data class AddMenuDummyRestaurantInfo( +data class AddMenuDummyStoreInfo( val imgList: List = emptyList(), val name: String = "", val address: String = "", diff --git a/app/src/main/java/com/kuit/ourmenu/ui/common/BottomFullWidthButton.kt b/app/src/main/java/com/kuit/ourmenu/ui/common/BottomFullWidthButton.kt index 6c297bd1..9ba5e708 100644 --- a/app/src/main/java/com/kuit/ourmenu/ui/common/BottomFullWidthButton.kt +++ b/app/src/main/java/com/kuit/ourmenu/ui/common/BottomFullWidthButton.kt @@ -60,7 +60,7 @@ private fun BottomFullWidthButtonPreview() { BottomFullWidthButton( containerColor = Neutral100, contentColor = Neutral500, - text = stringResource(R.string.add_restaurant_and_menu_by_myself) + text = stringResource(R.string.add_store_and_menu_by_myself) ) { //onClick 작성 } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 29ae3ee5..f32826c2 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -12,13 +12,13 @@ 메뉴 이름을 입력해주세요 메뉴 가격 직접 가격을 입력해주세요 - 가게 이름 - 가게 이름을 입력해주세요 + 가게 이름 + 가게 이름을 입력해주세요 가게 주소 - 가게 주소를 입력해주세요. + 가게 주소를 입력해주세요. 상세 주소를 입력해주세요. OURMENU - 가게와 메뉴 직접 추가 + 가게와 메뉴 직접 추가 검색 결과가 없어요! 최근 검색 취소