Skip to content

Commit 8f9bc05

Browse files
committed
[ui]: 하단 전체 너비를 차지하는 공통 버튼 구현
1 parent 4e6fdc2 commit 8f9bc05

File tree

2 files changed

+54
-19
lines changed

2 files changed

+54
-19
lines changed

app/src/main/java/com/kuit/ourmenu/ui/addmenu/screen/AddMenuSearchScreen.kt

Lines changed: 7 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,8 @@ import androidx.compose.foundation.layout.Column
55
import androidx.compose.foundation.layout.fillMaxSize
66
import androidx.compose.foundation.layout.fillMaxWidth
77
import androidx.compose.foundation.layout.padding
8-
import androidx.compose.foundation.layout.size
98
import androidx.compose.foundation.lazy.LazyColumn
109
import androidx.compose.foundation.lazy.items
11-
import androidx.compose.foundation.shape.RoundedCornerShape
12-
import androidx.compose.material3.Button
13-
import androidx.compose.material3.ButtonDefaults
1410
import androidx.compose.material3.ExperimentalMaterial3Api
1511
import androidx.compose.material3.Icon
1612
import androidx.compose.material3.Scaffold
@@ -21,7 +17,6 @@ import androidx.compose.runtime.mutableStateOf
2117
import androidx.compose.runtime.saveable.rememberSaveable
2218
import androidx.compose.ui.Alignment
2319
import androidx.compose.ui.Modifier
24-
import androidx.compose.ui.draw.shadow
2520
import androidx.compose.ui.graphics.Color
2621
import androidx.compose.ui.res.painterResource
2722
import androidx.compose.ui.text.font.FontWeight
@@ -31,6 +26,7 @@ import androidx.compose.ui.unit.sp
3126
import com.kuit.ourmenu.R
3227
import com.kuit.ourmenu.ui.addmenu.component.AddMenuTopAppBar
3328
import com.kuit.ourmenu.ui.addmenu.component.RestaurantSearchItem
29+
import com.kuit.ourmenu.ui.common.BottomFullWidthButton
3430
import com.kuit.ourmenu.ui.common.SearchBar
3531

3632
@OptIn(ExperimentalMaterial3Api::class)
@@ -64,20 +60,12 @@ fun AddMenuSearchScreen(modifier: Modifier = Modifier) {
6460
horizontalAlignment = Alignment.CenterHorizontally,
6561
verticalArrangement = Arrangement.Center
6662
) {
67-
Button(
68-
onClick = { /*TODO*/ },
69-
modifier = Modifier
70-
.fillMaxWidth()
71-
.size(320.dp, 52.dp)
72-
.shadow(elevation = 4.dp, shape = RoundedCornerShape(12.dp)),
73-
shape = RoundedCornerShape(12.dp),
74-
colors = ButtonDefaults.buttonColors(
75-
containerColor = Color(0xFFF7F7F9),
76-
contentColor = Color(0xFFA4A4A6)
77-
),
78-
) {
79-
Text(text = "가게와 메뉴 직접 추가하기")
80-
}
63+
BottomFullWidthButton(
64+
onClick = { TODO() },
65+
containerColor = Color(0xFFF7F7F9),
66+
contentColor = Color(0xFFA4A4A6),
67+
text = "가게와 메뉴 직접 추가"
68+
)
8169
}
8270
},
8371
content = { paddingValues ->
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package com.kuit.ourmenu.ui.common
2+
3+
import androidx.compose.foundation.layout.Arrangement
4+
import androidx.compose.foundation.layout.Column
5+
import androidx.compose.foundation.layout.Spacer
6+
import androidx.compose.foundation.layout.fillMaxSize
7+
import androidx.compose.foundation.layout.fillMaxWidth
8+
import androidx.compose.foundation.layout.height
9+
import androidx.compose.foundation.layout.size
10+
import androidx.compose.foundation.shape.RoundedCornerShape
11+
import androidx.compose.material3.Button
12+
import androidx.compose.material3.ButtonDefaults
13+
import androidx.compose.material3.Text
14+
import androidx.compose.runtime.Composable
15+
import androidx.compose.ui.Modifier
16+
import androidx.compose.ui.draw.shadow
17+
import androidx.compose.ui.graphics.Color
18+
import androidx.compose.ui.tooling.preview.Preview
19+
import androidx.compose.ui.unit.dp
20+
21+
@Composable
22+
fun BottomFullWidthButton(onClick: () -> Unit, containerColor: Color, contentColor: Color, text: String) {
23+
Button(
24+
onClick = onClick,
25+
modifier = Modifier
26+
.fillMaxWidth()
27+
.size(320.dp, 52.dp)
28+
.shadow(elevation = 4.dp, shape = RoundedCornerShape(12.dp)),
29+
shape = RoundedCornerShape(12.dp),
30+
colors = ButtonDefaults.buttonColors(
31+
containerColor = containerColor,
32+
contentColor = contentColor
33+
),
34+
) {
35+
Text(text = text)
36+
}
37+
}
38+
39+
@Preview(showBackground = true)
40+
@Composable
41+
private fun BottomFullWidthButtonPreview() {
42+
Column(modifier = Modifier.fillMaxSize(), verticalArrangement = Arrangement.Center) {
43+
BottomFullWidthButton({}, Color(0xFFF7F7F9), Color(0xFFA4A4A6), "가게와 메뉴 직접 추가하기")
44+
Spacer(modifier = Modifier.height(16.dp))
45+
BottomFullWidthButton({}, Color(0xFFFF5420), Color.White, "메뉴 추가하기")
46+
}
47+
}

0 commit comments

Comments
 (0)