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
31 changes: 21 additions & 10 deletions app/src/main/java/com/paw/key/presentation/ui/main/MainNavigator.kt
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,13 @@ import com.paw.key.presentation.ui.course.walkrecord.navigation.navigateWalkRevi
import com.paw.key.presentation.ui.dummy.next.navigateDummyNext
import com.paw.key.presentation.ui.home.navigation.navigateHome
import com.paw.key.presentation.ui.login.navigation.navigateLogin
import com.paw.key.presentation.ui.mypage.navigation.navigateArchivedCourse
import com.paw.key.presentation.ui.mypage.navigation.navigateMyPage
import com.paw.key.presentation.ui.mypage.navigation.navigatePetProfile
import com.paw.key.presentation.ui.mypage.navigation.navigateSavedCourse
import com.paw.key.presentation.ui.mypage.navigation.navigateUserProfile
import com.paw.key.presentation.ui.region.navigation.navigateRegional
import com.paw.key.presentation.ui.mypage.navigation.navigateMyPage
import com.paw.key.presentation.ui.owner.navigation.navigateOwner
import com.paw.key.presentation.ui.pet.navigation.navigatePet
//import com.paw.key.presentation.ui.signup.navigation.navigateSignUp
import com.paw.key.presentation.ui.splash.navigation.Splash
import com.paw.key.presentation.ui.splash.navigation.navigateSplash

Expand Down Expand Up @@ -61,21 +63,29 @@ class MainNavigator(
MainTab.MYPAGE -> navController.navigateMyPage(navOptions)
}
}

fun navigateMyPage(navOptions: NavOptions? = null) {
navController.navigateMyPage(navOptions = navOptions)
}

fun navigatePet(navOptions: NavOptions? = null) {
navController.navigatePet(navOptions = navOptions)
fun navigateUserProfile(navOptions: NavOptions? = null) {
navController.navigateUserProfile(navOptions = navOptions)
}

fun navigateOwner(navOptions: NavOptions? = null) {
navController.navigateOwner(navOptions = navOptions)
fun navigatePetProfile(navOptions: NavOptions? = null) {
navController.navigatePetProfile(navOptions = navOptions)
}

fun navigateSavedCourse(navOptions: NavOptions? = null) {
navController.navigateSavedCourse(navOptions = navOptions)
}

fun navigateArchivedCourse(navOptions: NavOptions? = null) {
navController.navigateArchivedCourse(navOptions = navOptions)
}

fun navigateCourse(navOptions: NavOptions? = null) {
navController.navigatePet(navOptions = navOptions)
navController.navigateCourse(navOptions = navOptions)
}

fun navigateWalkCourse(navOptions: NavOptions? = null) {
Expand Down Expand Up @@ -110,11 +120,11 @@ class MainNavigator(
navController.navigateLogin(navOptions = navOptions)
}


fun navigateRegional(navOptions: NavOptions? = null) {
navController.navigateRegional(navOptions = navOptions)
}


@Composable
fun showBottomBar() = MainTab.contains {
currentDestination?.hasRoute(it::class) == true
Expand All @@ -127,3 +137,4 @@ fun rememberMainNavigator(
): MainNavigator = remember(navController) {
MainNavigator(navController)
}

39 changes: 23 additions & 16 deletions app/src/main/java/com/paw/key/presentation/ui/main/PawKeyNavHost.kt
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,13 @@ import com.paw.key.presentation.ui.dummy.navigation.dummyNavGraph
import com.paw.key.presentation.ui.dummy.next.dummyNextNavGraph
import com.paw.key.presentation.ui.home.navigation.homeNavGraph
import com.paw.key.presentation.ui.login.navigation.loginNavGraph
import com.paw.key.presentation.ui.mypage.navigation.archivedCourseNavGraph
import com.paw.key.presentation.ui.mypage.navigation.myPageNavGraph
import com.paw.key.presentation.ui.mypage.navigation.petProfileNavGraph
import com.paw.key.presentation.ui.mypage.navigation.savedCourseNavGraph
import com.paw.key.presentation.ui.mypage.navigation.userProfileNavGraph
import com.paw.key.presentation.ui.region.navigation.regionalNavGraph
import com.paw.key.presentation.ui.mypage.navigation.myPageNavGraph
import com.paw.key.presentation.ui.owner.navigation.ownerNavGraph
import com.paw.key.presentation.ui.pet.navigation.petNavGraph
//import com.paw.key.presentation.ui.signup.navigation.signupNavGraph
import com.paw.key.presentation.ui.splash.navigation.splashNavGraph

@RequiresApi(Build.VERSION_CODES.VANILLA_ICE_CREAM)
Expand Down Expand Up @@ -87,24 +89,37 @@ fun PawKeyNavHost(
myPageNavGraph(
paddingValues = paddingValues,
navigateUp = navigator::navigateUp,
navigateNext = navigator::navigateDummyNext,
navigateUserProfile = navigator::navigateUserProfile,
navigatePetProfile = navigator::navigatePetProfile,
navigateArchivedCourse = navigator::navigateArchivedCourse,
navigateSavedCourse = navigator::navigateSavedCourse,
snackBarHostState = snackbarHostState
)

ownerNavGraph(
savedCourseNavGraph(
paddingValues = paddingValues,
navigateUp = navigator::navigateUp,
navigateNext = navigator::navigateDummyNext,
snackBarHostState = snackbarHostState
)

petNavGraph(
paddingValues = paddingValues,
archivedCourseNavGraph(
navigateUp = navigator::navigateUp,
modifier = modifier
)

userProfileNavGraph(
paddingValues = paddingValues,
navigateUp = navigator::navigateMyPage,
navigateNext = navigator::navigateDummyNext,
snackBarHostState = snackbarHostState
)

petProfileNavGraph(
navigateUp = navigator::navigateUp,
modifier = modifier
)

dummyNavGraph(
paddingValues = paddingValues,
navigateUp = navigator::navigateUp,
Expand Down Expand Up @@ -136,16 +151,8 @@ fun PawKeyNavHost(
paddingValues = paddingValues,
navigateUp = navigator::navigateUp,
navigateNext = navigator::navigateDummyNext,
navigateSignUp = navigator::navigateUp,
navigateSignUp = navigator::navigateMyPage,
snackBarHostState = snackbarHostState
)

/*signupNavGraph(
paddingValues = paddingValues,
navigateUp = navigator::navigateUp,
navigateNext = navigator::navigateDummyNext,
navigateLogin = navigator::navigateLogin,
snackBarHostState = snackbarHostState
)*/
}
}
Original file line number Diff line number Diff line change
@@ -1,27 +1,31 @@
package com.paw.key.presentation.ui.mypage

import androidx.compose.foundation.Image
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.Icon
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.painter.Painter
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.vectorResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import com.paw.key.R
import com.paw.key.core.designsystem.component.CourseCard
import com.paw.key.core.designsystem.theme.PawKeyTheme
import com.paw.key.presentation.ui.mypage.component.TagChip

@Composable
fun ArchivedCourseRoute(
navigateUp: () -> Unit,
modifier: Modifier = Modifier,
) {
ArchivedCourseListScreen(
navigateUp = navigateUp,
modifier = modifier
)
}

@Composable
fun ArchivedCourseListScreen(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.paw.key.presentation.ui.mypage

import androidx.compose.foundation.Image
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.shape.CircleShape
Expand All @@ -20,31 +20,41 @@ import androidx.compose.ui.res.vectorResource
import androidx.compose.ui.unit.dp
import androidx.compose.ui.tooling.preview.Preview
import com.paw.key.R
import com.paw.key.core.designsystem.component.SubChip
import com.paw.key.core.designsystem.theme.PawKeyTheme
import com.paw.key.presentation.ui.mypage.component.TagChip

@Composable
fun MyPageRoute(
paddingValues: PaddingValues,
navigateUp: () -> Unit,
navigateNext: () -> Unit,
navigateUserProfile: () -> Unit,
navigatePetProfile: () -> Unit,
navigateArchivedCourse: () -> Unit,
navigateSavedCourse: () -> Unit,
snackBarHostState: SnackbarHostState,
modifier: Modifier = Modifier,
modifier: Modifier = Modifier
) {
MyPageScreen(
paddingValues = paddingValues,
navigateUp = navigateUp,
navigateNext = navigateNext,
navigateUserProfile = navigateUserProfile,
navigatePetProfile = navigatePetProfile,
navigateArchivedCourse = navigateArchivedCourse,
navigateSavedCourse = navigateSavedCourse,
snackBarHostState = snackBarHostState,
modifier = modifier

)
}

@Composable
fun MyPageScreen(
paddingValues: PaddingValues,
navigateUp: () -> Unit,
navigateNext: () -> Unit,
navigateUserProfile: () -> Unit,
navigatePetProfile: () -> Unit,
navigateArchivedCourse: () -> Unit,
navigateSavedCourse : () -> Unit,
snackBarHostState: SnackbarHostState,
modifier: Modifier = Modifier
) {
Expand All @@ -60,7 +70,7 @@ fun MyPageScreen(
style = PawKeyTheme.typography.head22B,
modifier = Modifier.padding(start = 16.dp, top = 16.dp, bottom = 12.dp)
)
OwnerCard(ownerName = "김도기님", role = "견주")
OwnerCard(ownerName = "김도기님", role = "견주", navigateUserProfile = navigateUserProfile)

Spacer(modifier = Modifier.height(19.dp))

Expand All @@ -70,12 +80,15 @@ fun MyPageScreen(
gender = "여아",
tags = listOf("조금 느긋해요", "#오토바이소리", "#대형견"),
walkCount = "7회",
totalDistance = "14km"
totalDistance = "14km",
navigatePetProfile = navigatePetProfile
)
Spacer(modifier = Modifier.height(12.dp))

WalkRouteList(
routes = listOf("저장한 산책 루트", "내가 기록한 산책 루트")
routes = listOf("저장한 산책 루트", "내가 기록한 산책 루트"),
navigateSavedCourse = navigateSavedCourse,
navigateArchivedCourse = navigateArchivedCourse
)
}
}
Expand All @@ -85,6 +98,7 @@ fun MyPageScreen(
fun OwnerCard(
ownerName: String,
role: String,
navigateUserProfile: () -> Unit,
modifier: Modifier = Modifier
) {
Row(
Expand All @@ -103,6 +117,7 @@ fun OwnerCard(
Spacer(modifier = Modifier.weight(1f))
Icon(
imageVector = ImageVector.vectorResource(id = R.drawable.ic_arrow_right),
modifier = modifier.clickable { navigateUserProfile() },
contentDescription = "견주 프로필 이동"
)
}
Expand All @@ -116,6 +131,7 @@ fun PetCard(
tags: List<String>,
walkCount: String,
totalDistance: String,
navigatePetProfile: () -> Unit,
modifier: Modifier = Modifier
) {
Column(
Expand Down Expand Up @@ -148,6 +164,7 @@ fun PetCard(
Spacer(modifier = Modifier.weight(1f))
Icon(
imageVector = ImageVector.vectorResource(id = R.drawable.ic_arrow_right),
modifier = modifier.clickable { navigatePetProfile() },
contentDescription = "반려견 프로필 이동",
tint = Color.White
)
Expand Down Expand Up @@ -175,7 +192,7 @@ fun PetCard(
horizontalArrangement = Arrangement.spacedBy(4.dp)
) {
tags.forEach {
TagChip(text = it)
SubChip(text = it)
}
}
}
Expand Down Expand Up @@ -222,8 +239,11 @@ fun PetCard(
}

@Composable
fun WalkRouteList(routes: List<String>,
modifier: Modifier = Modifier
fun WalkRouteList(
routes: List<String>,
navigateSavedCourse: () -> Unit,
navigateArchivedCourse: () -> Unit,
modifier: Modifier = Modifier
) {
Column(
modifier = Modifier
Expand Down Expand Up @@ -253,6 +273,9 @@ fun WalkRouteList(routes: List<String>,
)
Icon(
imageVector = ImageVector.vectorResource(id = R.drawable.ic_arrow_right),
modifier = modifier.clickable {
if (index == 0) navigateSavedCourse() else navigateArchivedCourse()
},
contentDescription = "산책루트 메뉴 이동"
)
}
Expand All @@ -267,7 +290,10 @@ private fun MyPageScreenPreview() {
MyPageScreen(
paddingValues = PaddingValues(),
navigateUp = {},
navigateNext = {},
navigateUserProfile = {},
navigatePetProfile = {},
navigateArchivedCourse = {},
navigateSavedCourse = {},
snackBarHostState = SnackbarHostState()
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.material3.Icon
import androidx.compose.material3.SnackbarHostState
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
Expand All @@ -20,27 +19,18 @@ import com.paw.key.core.designsystem.theme.PawKeyTheme

@Composable
fun PetProfileRoute(
paddingValues: PaddingValues,
navigateUp: () -> Unit,
navigateNext: () -> Unit,
snackBarHostState: SnackbarHostState,
navigateUp : () -> Unit,
modifier: Modifier = Modifier,
) {
) {
PetProfileScreen(
paddingValues = paddingValues,
navigateUp = navigateUp,
navigateNext = navigateNext,
snackBarHostState = snackBarHostState,
modifier = modifier
modifier =modifier
)
}

@Composable
fun PetProfileScreen(
paddingValues: PaddingValues,
navigateUp: () -> Unit,
navigateNext: () -> Unit,
snackBarHostState: SnackbarHostState,
name: String = "포비",
gender: String = "남아",
breed: String = "미니어처 슈나우저",
Expand Down Expand Up @@ -149,10 +139,7 @@ fun PetProfileItem(label: String, value: String, modifier: Modifier = Modifier)
fun PetProfileScreenPreview() {
PawKeyTheme {
PetProfileScreen(
paddingValues = PaddingValues(),
navigateUp = {},
navigateNext = {},
snackBarHostState = SnackbarHostState()
)
}
}
Loading