Skip to content
This repository has been archived by the owner on Apr 27, 2023. It is now read-only.

Commit

Permalink
설정화면 navigation 구현
Browse files Browse the repository at this point in the history
  • Loading branch information
l2hyunwoo committed Mar 11, 2023
1 parent 90666e2 commit f583d43
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.unit.dp
import org.sopt.stamp.R
import org.sopt.stamp.designsystem.component.util.noRippleClickable
import org.sopt.stamp.designsystem.style.SoptTheme
import org.sopt.stamp.util.MultiFormFactorPreviews

Expand Down Expand Up @@ -74,7 +75,7 @@ fun Toolbar(
painter = painterResource(id = R.drawable.ic_back),
contentDescription = "Back Button",
modifier = Modifier
.clickable(onClick = onBack)
.noRippleClickable(onClick = onBack)
.align(Alignment.CenterVertically)
.padding(8.dp)
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ import org.sopt.stamp.domain.error.Error
import org.sopt.stamp.domain.model.MissionsFilter
import org.sopt.stamp.feature.destinations.MissionDetailScreenDestination
import org.sopt.stamp.feature.destinations.RankingScreenDestination
import org.sopt.stamp.feature.destinations.SettingScreenDestination
import org.sopt.stamp.feature.mission.MissionsState
import org.sopt.stamp.feature.mission.MissionsViewModel
import org.sopt.stamp.feature.mission.model.MissionListUiModel
Expand Down Expand Up @@ -110,7 +111,8 @@ fun MissionListScreen(
menuTexts = MissionsFilter.getTitleOfMissionsList(),
onMenuClick = { filter -> missionsViewModel.fetchMissions(filter = filter) },
onMissionItemClick = { item -> navigator.navigate(MissionDetailScreenDestination(item)) },
onFloatingButtonClick = { navigator.navigate(RankingScreenDestination) }
onFloatingButtonClick = { navigator.navigate(RankingScreenDestination) },
onSettingButtonClick = { navigator.navigate(SettingScreenDestination) }
)
}
}
Expand All @@ -122,14 +124,16 @@ fun MissionListScreen(
menuTexts: List<String>,
onMenuClick: (String) -> Unit = {},
onMissionItemClick: (item: MissionNavArgs) -> Unit = {},
onFloatingButtonClick: () -> Unit = {}
onFloatingButtonClick: () -> Unit = {},
onSettingButtonClick: () -> Unit = {}
) {
Scaffold(
topBar = {
MissionListHeader(
title = missionListUiModel.title,
menuTexts = menuTexts,
onMenuClick = { onMenuClick(it) }
onMenuClick = { onMenuClick(it) },
onSettingButtonClick = { onSettingButtonClick() }
)
},
floatingActionButton = {
Expand Down Expand Up @@ -207,7 +211,8 @@ fun MissionEmptyScreen(contentText: String) {
fun MissionListHeader(
title: String,
menuTexts: List<String>,
onMenuClick: (String) -> Unit = {}
onMenuClick: (String) -> Unit = {},
onSettingButtonClick: () -> Unit = {}
) {
var currentText by remember { mutableStateOf(title) }
SoptTopAppBar(
Expand All @@ -220,6 +225,13 @@ fun MissionListHeader(
onMenuClick(selectedMenuText)
}
)
},
actions = {
SoptampIconButton(
imageVector = ImageVector.vectorResource(id = R.drawable.setting)
) {
onSettingButtonClick()
}
}
)
}
Expand Down
37 changes: 37 additions & 0 deletions app/src/main/java/org/sopt/stamp/feature/setting/SettingScreen.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package org.sopt.stamp.feature.setting

import androidx.compose.foundation.layout.padding
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import com.ramcosta.composedestinations.annotation.Destination
import com.ramcosta.composedestinations.navigation.DestinationsNavigator
import org.sopt.stamp.config.navigation.SettingNavGraph
import org.sopt.stamp.designsystem.component.layout.SoptColumn
import org.sopt.stamp.designsystem.component.toolbar.Toolbar
import org.sopt.stamp.designsystem.style.SoptTheme

@SettingNavGraph(true)
@Destination("menu")
@Composable
fun SettingScreen(
navigator: DestinationsNavigator
) {
SoptTheme {
SoptColumn {
Toolbar(
modifier = Modifier.padding(bottom = 10.dp),
title = {
Text(
text = "설정",
style = SoptTheme.typography.h2,
modifier = Modifier.padding(start = 4.dp),
color = SoptTheme.colors.onSurface
)
},
onBack = { navigator.popBackStack() },
)
}
}
}

0 comments on commit f583d43

Please sign in to comment.