Skip to content

Commit 25593cc

Browse files
author
eshc123
committed
FEAT: 홈 화면 앱바 구현
1 parent 477e160 commit 25593cc

File tree

8 files changed

+81
-28
lines changed

8 files changed

+81
-28
lines changed

core/designsystem/build.gradle.kts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,13 @@
11
plugins {
22
alias(libs.plugins.tuk.android.library)
3+
alias(libs.plugins.tuk.android.library.compose)
34
}
45

56
android {
67
namespace = "com.plottwist.core.designsystem"
78
}
89

910
dependencies {
10-
11-
implementation(libs.core.ktx)
12-
implementation(libs.appcompat)
13-
implementation(libs.material)
1411
testImplementation(libs.junit)
1512
androidTestImplementation(libs.androidx.test.ext.junit)
1613
androidTestImplementation(libs.espresso.core)

core/designsystem/src/main/java/com/plottwist/core/designsystem/.gitkeep

Whitespace-only changes.
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package com.plottwist.core.designsystem.component
2+
3+
import androidx.compose.foundation.layout.Row
4+
import androidx.compose.foundation.layout.RowScope
5+
import androidx.compose.foundation.layout.Spacer
6+
import androidx.compose.foundation.layout.fillMaxWidth
7+
import androidx.compose.foundation.layout.height
8+
import androidx.compose.foundation.layout.padding
9+
import androidx.compose.runtime.Composable
10+
import androidx.compose.ui.Alignment
11+
import androidx.compose.ui.Modifier
12+
import androidx.compose.ui.unit.dp
13+
14+
@Composable
15+
fun TukTopAppBar(
16+
modifier: Modifier = Modifier,
17+
actionButtons: (@Composable RowScope.() -> Unit)? = null,
18+
) {
19+
Row(
20+
modifier = modifier
21+
.height(64.dp)
22+
.fillMaxWidth()
23+
.padding(end = if(actionButtons == null) 20.dp else 12.dp),
24+
verticalAlignment = Alignment.CenterVertically
25+
) {
26+
Spacer(modifier = Modifier.weight(1f))
27+
actionButtons?.invoke(this)
28+
}
29+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
2+
android:width="32dp"
3+
android:height="32dp"
4+
android:viewportWidth="32"
5+
android:viewportHeight="32">
6+
<path
7+
android:pathData="M15.599,13.667C20.347,13.667 24.197,17.517 24.197,22.265V25.533H22.997V22.265C22.997,18.179 19.685,14.867 15.599,14.867C11.512,14.867 8.199,18.179 8.199,22.265V25.533H7V22.265C7,17.516 10.85,13.667 15.599,13.667ZM16.199,10.866H15V7H16.199V10.866Z"
8+
android:fillColor="#1F1F1F"/>
9+
</vector>

core/designsystem/src/main/res/drawable/ic_user.xml

Lines changed: 0 additions & 16 deletions
This file was deleted.
897 KB
Loading

feature/home/src/main/java/com/plottwist/feature/home/HomeScreen.kt

Lines changed: 39 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
package com.plottwist.feature.home
22

3-
import androidx.compose.foundation.clickable
3+
import androidx.compose.foundation.layout.Box
44
import androidx.compose.foundation.layout.Column
55
import androidx.compose.foundation.layout.fillMaxSize
6+
import androidx.compose.material3.IconButton
67
import androidx.compose.runtime.Composable
78
import androidx.compose.runtime.getValue
8-
import androidx.compose.ui.Alignment
99
import androidx.compose.ui.Modifier
10+
import androidx.compose.ui.tooling.preview.Preview
1011
import androidx.hilt.navigation.compose.hiltViewModel
1112
import com.plottwist.core.designsystem.R
13+
import com.plottwist.core.designsystem.component.TukTopAppBar
1214
import com.plottwist.core.ui.StableImage
1315
import org.orbitmvi.orbit.compose.collectAsState
1416
import org.orbitmvi.orbit.compose.collectSideEffect
@@ -44,14 +46,44 @@ private fun HomeScreen(
4446
onMyPageClicked: () -> Unit,
4547
modifier: Modifier = Modifier
4648
) {
47-
Column(
49+
Box(
4850
modifier = modifier
51+
) {
52+
Column (
53+
modifier = Modifier.fillMaxSize()
54+
) {
55+
TukTopAppBar(
56+
actionButtons = {
57+
TopAppBarMyPageButton(
58+
onMyPageClicked = onMyPageClicked
59+
)
60+
}
61+
)
62+
}
63+
}
64+
}
65+
66+
@Composable
67+
fun TopAppBarMyPageButton(
68+
onMyPageClicked: () -> Unit,
69+
modifier: Modifier = Modifier
70+
) {
71+
IconButton(
72+
modifier = modifier,
73+
onClick = onMyPageClicked
4974
) {
5075
StableImage(
51-
modifier = Modifier
52-
.align(Alignment.End)
53-
.clickable { onMyPageClicked() },
54-
drawableResId = R.drawable.ic_user
76+
drawableResId = R.drawable.ic_mypage
5577
)
5678
}
5779
}
80+
81+
@Preview
82+
@Composable
83+
fun HomeScreenPreview(modifier: Modifier = Modifier) {
84+
HomeScreen(
85+
modifier = Modifier.fillMaxSize(),
86+
isLoggedIn = false,
87+
onMyPageClicked = {}
88+
)
89+
}

feature/main/src/main/java/com/plottwist/feature/main/TukApp.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,16 @@ import androidx.compose.foundation.layout.padding
55
import androidx.compose.material3.Scaffold
66
import androidx.compose.runtime.Composable
77
import androidx.compose.ui.Modifier
8+
import androidx.compose.ui.graphics.Color
89
import com.plottwist.feature.main.ui.component.TukNavHost
910

1011
@Composable
1112
fun TukApp(
1213
modifier: Modifier = Modifier
1314
) {
1415
Scaffold(
15-
modifier = modifier.fillMaxSize()
16+
modifier = modifier.fillMaxSize(),
17+
containerColor = Color.White
1618
) { innerPadding ->
1719
TukNavHost(
1820
modifier = Modifier.padding(innerPadding)

0 commit comments

Comments
 (0)