Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
30b8781
[fix]: SearchBar의 최상단인 Card에 사용할 modifier 파라미터 전달(#22)
casper-jr Jan 24, 2025
91ae7b0
[refactor]: AddMenuScreen의 메인 화면 Box로 변경(#22)
casper-jr Jan 24, 2025
1d0b8b5
[chore]: addmenu/component의 파일들 패키징
casper-jr Jan 24, 2025
0c7ae74
[fix]: 공통 버튼에 modifier 파라미터 추가
casper-jr Jan 24, 2025
4858808
[refactor]: AddMenuSearchScreen을 AddMenuScreen에 합치는 작업 수행
casper-jr Jan 24, 2025
9353252
[refactor]: SearchBar에 interactionSource 파라미터 추가, 기본값 지정
casper-jr Jan 24, 2025
8437bd6
[feat]: SearchBar 상태에 따라 다른 화면 보여주도록 구현(#22)
casper-jr Jan 24, 2025
6164cb2
[feat]: SearchBar의 keyboardOption, keyboardAction 지정(#22)
casper-jr Jan 24, 2025
24575a8
[feat]: BottomSheet의 버튼 색 수정(#22)
casper-jr Jan 24, 2025
4049eb1
[chore]: AddMenuSearchBackground 패키지 경로 변경
casper-jr Jan 26, 2025
57d688a
[feat]: 검색 화면에서 사용할 AddMenuSearchViewModel 작성(#22)
casper-jr Jan 26, 2025
413a643
[doc]: viewModel과 collectAsStateWithLifecycle() 사용을 위한 dependency 추가,…
casper-jr Jan 26, 2025
77f70e2
[refactor]: AddMenuScreen의 dummy data를 viewmodel로 이전
casper-jr Jan 26, 2025
5e45797
[refactor]: AddMenuBottomSheetContent의 dummy data를 viewmodel로 이전
casper-jr Jan 26, 2025
e33a15d
[feat]: bottom sheet의 각 SelectMenuItem.kt에 대한 단일 클릭 처리(#22)
casper-jr Jan 26, 2025
c93ce96
[feat]: 아이템 선택시 버튼 활성화 구현(#22)
casper-jr Jan 27, 2025
760c55b
[fix]: 선택된 아이템 클릭시 다시 미선택 상태로 변경(#22)
casper-jr Jan 27, 2025
496e37a
[fix]: merge conflict 해결
casper-jr Jan 27, 2025
3988416
[fix]: CustomTextField 커서 색상 변경 수정, disabled 디자인 수정(#26)
casper-jr Jan 27, 2025
da4ca99
[feat]: CustomTextField에 isError 파라미터 추가, preview에 예시 작성(#26)
casper-jr Jan 27, 2025
0e20613
[doc]: CustomTextField 주석 업데이트(#26)
casper-jr Jan 27, 2025
02bcdd8
[chore]: BottomFullWidth/HalfWidthButton 줄바꿈 반영
casper-jr Jan 30, 2025
aac533f
[chore]: restaurant -> store로 네이밍 변경
casper-jr Jan 30, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .idea/deploymentTargetSelector.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ plugins {

android {
namespace = "com.kuit.ourmenu"
compileSdk = 34
compileSdk = 35

defaultConfig {
applicationId = "com.kuit.ourmenu"
Expand Down Expand Up @@ -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)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
package com.kuit.ourmenu.ui.addmenu.component

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.StoreSearchItem
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: List<Boolean>, //이후에 타입 변경
searchResults: List<Boolean>, //이후에 타입 변경
onItemClick: () -> Unit
) {
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 ->
StoreSearchItem(
isLastItem = item,
){
onItemClick()
}
}
}
}
} 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 ->
StoreSearchItem(
isLastItem = item,
){
onItemClick()
}
}
}
}
}

}

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_store_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<Boolean> = mutableListOf(true)
AddMenuSearchBackground(
searchActionDone = searchActionDone,
recentSearchResults = recentSearchResults,
searchResults = searchResults,
){
//onItemClick
}
}
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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
Expand All @@ -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
Expand All @@ -32,24 +33,32 @@ 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.AddMenuDummyStoreInfo
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
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

@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun AddMenuBottomSheetContent(scaffoldState: BottomSheetScaffoldState) {
fun AddMenuBottomSheetContent(
scaffoldState: BottomSheetScaffoldState,
storeInfo: AddMenuDummyStoreInfo,
onItemClick: (Int) -> Unit
) {
val coroutineScope = rememberCoroutineScope()
val dummyMenuItemList = listOf(
false, false, true, false, false, false, false, false
)
val enableNextButton = storeInfo.menuList.any { it }

Column(
modifier = Modifier
Expand All @@ -59,7 +68,7 @@ fun AddMenuBottomSheetContent(scaffoldState: BottomSheetScaffoldState) {
Text(
text = "식당 이름",
style = ourMenuTypography().pretendard_700_20
)
)
Row(modifier = Modifier.fillMaxWidth(), verticalAlignment = Alignment.CenterVertically) {
Icon(
painter = painterResource(id = R.drawable.ic_location_info),
Expand Down Expand Up @@ -119,7 +128,7 @@ fun AddMenuBottomSheetContent(scaffoldState: BottomSheetScaffoldState) {
.padding(vertical = 12.dp)
)
BottomFullWidthButton(
containerColor = Neutral400,
containerColor = Primary500Main,
contentColor = NeutralWhite,
text = stringResource(R.string.next)
) {
Expand All @@ -134,8 +143,12 @@ fun AddMenuBottomSheetContent(scaffoldState: BottomSheetScaffoldState) {
.weight(1f)
.padding(top = 12.dp)
) {
items(dummyMenuItemList) { items ->
SelectMenuItem(items)
itemsIndexed(storeInfo.menuList) { index, isSelected ->
// Log.d("AddMenuBottomSheetContent", "Item: $index, $isSelected")
SelectMenuItem(
isSelected = isSelected,
onClick = { onItemClick(index) }
)
}
}

Expand All @@ -145,15 +158,17 @@ fun AddMenuBottomSheetContent(scaffoldState: BottomSheetScaffoldState) {
contentColor = Neutral500,
text = stringResource(R.string.add_menu_by_myself)
) {

//메뉴 추가화면으로 이동하는 로직
}
Spacer(modifier = Modifier.padding(10.dp))
BottomFullWidthButton(
containerColor = Neutral400,
containerColor = if (enableNextButton) Primary500Main else Neutral400,
contentColor = NeutralWhite,
text = stringResource(R.string.next)
) {

if (enableNextButton){
//버튼 활성화 된 경우의 동작
}
}

}
Expand All @@ -166,9 +181,13 @@ fun AddMenuBottomSheetContent(scaffoldState: BottomSheetScaffoldState) {
@Composable
private fun AddMenuBottomSheetContentPreview() {
val scaffoldState = rememberBottomSheetScaffoldState()
val viewModel: AddMenuSearchViewModel = viewModel()
val storeInfo by viewModel.storeInfo.collectAsStateWithLifecycle()
LaunchedEffect(Unit) {
//아래 주석 해제하면 bottom sheet 확장된 상태 확인 가능
// scaffoldState.bottomSheetState.expand()
scaffoldState.bottomSheetState.expand()
}
AddMenuBottomSheetContent(scaffoldState, storeInfo) { index ->
viewModel.updateSelectedMenu(index = index)
}
AddMenuBottomSheetContent(scaffoldState)
}
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -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
)
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -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(),
Expand All @@ -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)
)
}

Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand Down
Loading