Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
android:usesCleartextTraffic="true"
android:theme="@style/Theme.Kiero">
<activity
android:name="com.kiero.presentation.main.MainActivity"
android:name="com.kiero.presentation.main.activity.MainActivity"
android:exported="true"
android:label="@string/app_name"
android:theme="@style/Theme.Kiero">
Expand Down
3 changes: 0 additions & 3 deletions app/src/main/java/com/kiero/core/navigation/MainTabRoute.kt

This file was deleted.

98 changes: 42 additions & 56 deletions app/src/main/java/com/kiero/presentation/auth/AuthScreen.kt
Original file line number Diff line number Diff line change
@@ -1,48 +1,49 @@
package com.kiero.presentation.auth

import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.items
import androidx.compose.material3.Button
import androidx.compose.material3.SnackbarHostState
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.kiero.core.common.extension.noRippleClickable
import com.kiero.core.model.UiState
import com.kiero.core.designsystem.theme.KieroTheme
import com.kiero.data.auth.model.DummyEntity
import com.kiero.presentation.auth.component.DummyItem
import kotlinx.collections.immutable.PersistentList
import com.kiero.core.model.UiState

@Composable
fun AuthRoute(
paddingValues: PaddingValues,
navigateUp: () -> Unit,
navigateNext: () -> Unit,
state: UiState<PersistentList<DummyEntity>>,
navigateToParent: () -> Unit,
navigateToKid: () -> Unit,
) {
AuthScreen(
paddingValues = paddingValues,
navigateUp = navigateUp,
navigateNext = navigateNext,
state = state,
navigateToParent = navigateToParent,
navigateToKid = navigateToKid,
modifier = Modifier
.fillMaxSize()
)
}

@Composable
fun AuthScreen(
paddingValues: PaddingValues,
navigateUp: () -> Unit,
navigateNext: () -> Unit,
state: UiState<PersistentList<DummyEntity>>,
navigateToParent: () -> Unit,
navigateToKid: () -> Unit,
modifier: Modifier = Modifier,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

마찬가지로 Screen에서 굳이 modifier를 뚫어줄 필요는 없다고 생각하는데 주완님 생각은 어떠신가요? 저스트 궁금

) {
LazyColumn(
Expand All @@ -52,51 +53,36 @@ fun AuthScreen(
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center
) {
when (state) {
is UiState.Loading -> {
item {
Text(
modifier = modifier
.noRippleClickable { navigateUp() },
textAlign = TextAlign.Center,
text = "Dummy",
fontSize = 30.sp
)
}
}
item {
Column(
modifier = Modifier
.fillMaxWidth()
.padding(horizontal = 32.dp),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center
) {
Text(
textAlign = TextAlign.Center,
text = "Kiero App",
fontSize = 30.sp
)

is UiState.Empty -> {
item {
Text(
modifier = modifier
.noRippleClickable { navigateUp() },
textAlign = TextAlign.Center,
text = "Dummy",
fontSize = 30.sp
)
}
}
Spacer(modifier = Modifier.height(40.dp))

is UiState.Failure -> {
item {
Text(
modifier = modifier
.noRippleClickable { navigateUp() },
textAlign = TextAlign.Center,
text = state.message,
)
Button(
onClick = navigateToParent,
modifier = Modifier.fillMaxWidth()
) {
Text(text = "부모 화면으로 이동")
}
}

is UiState.Success -> {
items(state.data) {
DummyItem(
id = it.id,
firstName = it.firstName,
lastName = it.lastName,
profileUrl = it.profile,
navigateNext = navigateNext
)
Spacer(modifier = Modifier.height(16.dp))

Button(
onClick = navigateToKid,
modifier = Modifier.fillMaxWidth()
) {
Text(text = "아이 화면으로 이동")
}
}
}
Expand All @@ -110,8 +96,8 @@ private fun DummyScreenPreview() {
AuthScreen(
paddingValues = PaddingValues(),
navigateUp = {},
navigateNext = {},
state = UiState.Loading
navigateToParent = {},
navigateToKid = {}
)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ fun DummyItem(
firstName: String,
lastName: String,
profileUrl: String,
navigateNext: () -> Unit,
modifier: Modifier = Modifier,
) {
Column(
Expand All @@ -38,7 +37,6 @@ fun DummyItem(
.size(80.dp)
.clip(CircleShape)
.noRippleClickable {
navigateNext()
},
contentScale = ContentScale.Crop
)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package com.kiero.presentation.auth.navigation

import androidx.compose.foundation.layout.PaddingValues
import androidx.navigation.NavController
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavHostController
import androidx.navigation.NavOptions
import androidx.navigation.compose.composable
import androidx.navigation.compose.navigation
import com.kiero.core.navigation.Route
import com.kiero.presentation.auth.AuthRoute
import kotlinx.serialization.Serializable

@Serializable
sealed interface Auth : Route

@Serializable
data object AuthGraph : Route

@Serializable
data object Login : Auth

fun NavController.navigateToAuth(
navOptions: NavOptions? = null,
) {
navigate(Login, navOptions)
}

fun NavGraphBuilder.authNavGraph(
navController: NavHostController,
paddingValues: PaddingValues,
navigateUp: () -> Unit,
navigateToParent: () -> Unit,
navigateToKid: () -> Unit,
) {
navigation<AuthGraph>(
startDestination = Login
) {
composable<Login> {
AuthRoute(
paddingValues = paddingValues,
navigateUp = navigateUp,
navigateToParent = navigateToParent,
navigateToKid = navigateToKid,
)
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package com.kiero.presentation.kid.journey

import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import com.kiero.core.designsystem.theme.KieroTheme

@Composable
fun KidJourneyRoute(
paddingValues: PaddingValues,
navigateUp: () -> Unit,
) {
KidJourneyScreen(
paddingValues = paddingValues,
navigateUp = navigateUp
)
}

@Composable
private fun KidJourneyScreen(
paddingValues: PaddingValues,
navigateUp: () -> Unit,
modifier: Modifier = Modifier,
) {
Column(
modifier = modifier
.fillMaxSize()
.padding(paddingValues),
) {
Text(
text = "오늘의 여정"
)
}
}

@Composable
@Preview
private fun KidJourneyScreenPreview() {
KieroTheme {}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package com.kiero.presentation.kid.journey.navigation

import androidx.compose.foundation.layout.PaddingValues
import androidx.navigation.NavController
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavOptions
import androidx.navigation.compose.composable
import com.kiero.presentation.kid.journey.KidJourneyRoute
import com.kiero.presentation.kid.navigation.Journey

fun NavController.navigateToJourney(
navOptions: NavOptions? = null,
) {
navigate(Journey, navOptions)
}

fun NavGraphBuilder.kidJourneyNavGraph(
paddingValues: PaddingValues,
navigateUp: () -> Unit,
) {
composable<Journey> {
KidJourneyRoute(
paddingValues = paddingValues,
navigateUp = navigateUp,
)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package com.kiero.presentation.kid.mission

import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import com.kiero.core.designsystem.theme.KieroTheme

@Composable
fun KidMissionRoute(
paddingValues: PaddingValues,
navigateUp: () -> Unit,
) {
KidMissionScreen(
paddingValues = paddingValues,
navigateUp = navigateUp
)
}

@Composable
private fun KidMissionScreen(
paddingValues: PaddingValues,
navigateUp: () -> Unit,
modifier: Modifier = Modifier,
) {
Column(
modifier = modifier
.fillMaxSize()
.padding(paddingValues),
) {
Text(
text = "금화 미션"
)
}
}

@Composable
@Preview
private fun KidMissionScreenPreview() {
KieroTheme {}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package com.kiero.presentation.kid.mission.navigation

import androidx.compose.foundation.layout.PaddingValues
import androidx.navigation.NavController
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavOptions
import androidx.navigation.compose.composable
import com.kiero.presentation.kid.mission.KidMissionRoute
import com.kiero.presentation.kid.navigation.Mission

fun NavController.navigateToMission(
navOptions: NavOptions? = null,
) {
navigate(Mission, navOptions)
}

fun NavGraphBuilder.kidMissionNavGraph(
paddingValues: PaddingValues,
navigateUp: () -> Unit,
) {
composable<Mission> {
KidMissionRoute(
paddingValues = paddingValues,
navigateUp = navigateUp,
)
}
}
Loading