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
54 changes: 45 additions & 9 deletions app/src/main/java/com/sampoom/android/app/navigation/AppNavHost.kt
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,16 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.navigation.NavHostController
import androidx.navigation.NavType
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import androidx.navigation.compose.currentBackStackEntryAsState
import androidx.navigation.compose.rememberNavController
import androidx.navigation.navArgument
import com.sampoom.android.R
import com.sampoom.android.feature.auth.ui.LoginScreen
import com.sampoom.android.feature.auth.ui.SignUpScreen
import com.sampoom.android.feature.part.ui.PartListScreen
import com.sampoom.android.feature.part.ui.PartScreen

const val ROUTE_LOGIN = "login"
Expand All @@ -34,6 +37,8 @@ const val ROUTE_ORDERS = "orders"

// Detail Screen
const val ROUTE_PARTS = "parts"
const val ROUTE_PART_LIST = "parts/{agencyId}/group/{groupId}"
fun routePartList(agencyId: Long, groupId: Long): String = "parts/$agencyId/group/$groupId"
const val ROUTE_EMPLOYEE = "employee"
const val ROUTE_SETTINGS = "settings"

Expand All @@ -53,18 +58,19 @@ fun AppNavHost() {
val navController = rememberNavController()

// TODO: 임시 로그인 상태 확인 -> AuthRepository에서 확인하도록 변경
val isLoggedIn = false
val isLoggedIn = true

NavHost(
navController = navController,
startDestination = if (isLoggedIn) ROUTE_HOME else ROUTE_LOGIN
) {
composable(ROUTE_LOGIN) {
LoginScreen(onSuccess = {
navController.navigate(ROUTE_HOME) {
popUpTo(ROUTE_LOGIN) { inclusive = true } // 로그인 화면 스택 제거
}
},
LoginScreen(
onSuccess = {
navController.navigate(ROUTE_HOME) {
popUpTo(ROUTE_LOGIN) { inclusive = true } // 로그인 화면 스택 제거
}
},
onNavigateSignUp = {
navController.navigate(ROUTE_SIGNUP)
})
Expand All @@ -82,7 +88,29 @@ fun AppNavHost() {
)
}
composable(ROUTE_HOME) { MainScreen(navController) }
composable(ROUTE_PARTS) { PartScreen() }
composable(ROUTE_PARTS) {
PartScreen(
onNavigateBack = {
navController.navigateUp()
},
onNavigatePartList = { group ->
navController.navigate(routePartList(1, group.id))
}
)
Comment thread
Sangyoon98 marked this conversation as resolved.
}
composable(
ROUTE_PART_LIST,
arguments = listOf(
navArgument("agencyId") { type = NavType.LongType },
navArgument("groupId") { type = NavType.LongType }
)
) {
PartListScreen(
onNavigateBack = {
navController.navigateUp()
}
)
}
}
}

Expand Down Expand Up @@ -122,7 +150,10 @@ fun PartsFab(navController: NavHostController) {
}
}
) {
Icon(painterResource(R.drawable.parts), contentDescription = stringResource(R.string.part_title))
Icon(
painterResource(R.drawable.parts),
contentDescription = stringResource(R.string.part_title)
)
}
}

Expand All @@ -141,7 +172,12 @@ fun BottomNavigationBar(navController: NavHostController) {
val currentDestination = navBackStackEntry?.destination

NavigationBarItem(
icon = { Icon(painterResource(id = item.icon), contentDescription = stringResource(item.title)) },
icon = {
Icon(
painterResource(id = item.icon),
contentDescription = stringResource(item.title)
)
},
label = { Text(stringResource(item.title)) },
selected = currentDestination?.route == item.route,
onClick = {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package com.sampoom.android.core.ui.component

import androidx.compose.foundation.layout.Box
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier

@Composable
fun EmptyContent(
message: String,
modifier: Modifier = Modifier
) {
Box(
modifier = modifier,
contentAlignment = Alignment.Center
) {
Text(message)
}
Comment thread
Sangyoon98 marked this conversation as resolved.
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package com.sampoom.android.core.ui.component

import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.height
import androidx.compose.material3.Button
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import com.sampoom.android.R
import com.sampoom.android.core.ui.theme.FailRed

@Composable
fun ErrorContent(
onRetry: () -> Unit,
modifier: Modifier = Modifier
) {
Column(
modifier = modifier,
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center
) {
Text(
text = stringResource(R.string.common_error),
color = FailRed
)
Spacer(modifier = Modifier.height(16.dp))
Button(onClick = onRetry) {
Text(stringResource(R.string.common_retry))
}
}
Comment thread
Sangyoon98 marked this conversation as resolved.
}
216 changes: 216 additions & 0 deletions app/src/main/java/com/sampoom/android/core/ui/theme/Color.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,222 @@ import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.runtime.Composable
import androidx.compose.ui.graphics.Color

val primaryLight = Color(0xFF4C4AC8)
val onPrimaryLight = Color(0xFFFFFFFF)
val primaryContainerLight = Color(0xFF6565E2)
val onPrimaryContainerLight = Color(0xFFFFFBFF)
val secondaryLight = Color(0xFF5B5D72)
val onSecondaryLight = Color(0xFFFFFFFF)
val secondaryContainerLight = Color(0xFFE6E6FF)
val onSecondaryContainerLight = Color(0xFF65667B)
val tertiaryLight = Color(0xFF5D5F5F)
val onTertiaryLight = Color(0xFFFFFFFF)
val tertiaryContainerLight = Color(0xFFF5F5F5)
val onTertiaryContainerLight = Color(0xFF6F7070)
val errorLight = Color(0xFFAD3035)
val onErrorLight = Color(0xFFFFFFFF)
val errorContainerLight = Color(0xFFFF6C6C)
val onErrorContainerLight = Color(0xFF6E0011)
val backgroundLight = Color(0xFFFCF8FF)
val onBackgroundLight = Color(0xFF1B1B23)
val surfaceLight = Color(0xFFFCF8F8)
val onSurfaceLight = Color(0xFF1C1B1B)
val surfaceVariantLight = Color(0xFFE0E3E3)
val onSurfaceVariantLight = Color(0xFF444748)
val outlineLight = Color(0xFF747878)
val outlineVariantLight = Color(0xFFC4C7C8)
val scrimLight = Color(0xFF000000)
val inverseSurfaceLight = Color(0xFF313030)
val inverseOnSurfaceLight = Color(0xFFF4F0EF)
val inversePrimaryLight = Color(0xFFC2C1FF)
val surfaceDimLight = Color(0xFFDDD9D9)
val surfaceBrightLight = Color(0xFFFCF8F8)
val surfaceContainerLowestLight = Color(0xFFFFFFFF)
val surfaceContainerLowLight = Color(0xFFF6F3F2)
val surfaceContainerLight = Color(0xFFF1EDEC)
val surfaceContainerHighLight = Color(0xFFEBE7E7)
val surfaceContainerHighestLight = Color(0xFFE5E2E1)

val primaryLightMediumContrast = Color(0xFF231AA2)
val onPrimaryLightMediumContrast = Color(0xFFFFFFFF)
val primaryContainerLightMediumContrast = Color(0xFF5E5DDA)
val onPrimaryContainerLightMediumContrast = Color(0xFFFFFFFF)
val secondaryLightMediumContrast = Color(0xFF333548)
val onSecondaryLightMediumContrast = Color(0xFFFFFFFF)
val secondaryContainerLightMediumContrast = Color(0xFF6A6B81)
val onSecondaryContainerLightMediumContrast = Color(0xFFFFFFFF)
val tertiaryLightMediumContrast = Color(0xFF353637)
val onTertiaryLightMediumContrast = Color(0xFFFFFFFF)
val tertiaryContainerLightMediumContrast = Color(0xFF6C6D6D)
val onTertiaryContainerLightMediumContrast = Color(0xFFFFFFFF)
val errorLightMediumContrast = Color(0xFF730012)
val onErrorLightMediumContrast = Color(0xFFFFFFFF)
val errorContainerLightMediumContrast = Color(0xFFC13F42)
val onErrorContainerLightMediumContrast = Color(0xFFFFFFFF)
val backgroundLightMediumContrast = Color(0xFFFCF8FF)
val onBackgroundLightMediumContrast = Color(0xFF1B1B23)
val surfaceLightMediumContrast = Color(0xFFFCF8F8)
val onSurfaceLightMediumContrast = Color(0xFF111111)
val surfaceVariantLightMediumContrast = Color(0xFFE0E3E3)
val onSurfaceVariantLightMediumContrast = Color(0xFF333738)
val outlineLightMediumContrast = Color(0xFF4F5354)
val outlineVariantLightMediumContrast = Color(0xFF6A6E6E)
val scrimLightMediumContrast = Color(0xFF000000)
val inverseSurfaceLightMediumContrast = Color(0xFF313030)
val inverseOnSurfaceLightMediumContrast = Color(0xFFF4F0EF)
val inversePrimaryLightMediumContrast = Color(0xFFC2C1FF)
val surfaceDimLightMediumContrast = Color(0xFFC9C6C5)
val surfaceBrightLightMediumContrast = Color(0xFFFCF8F8)
val surfaceContainerLowestLightMediumContrast = Color(0xFFFFFFFF)
val surfaceContainerLowLightMediumContrast = Color(0xFFF6F3F2)
val surfaceContainerLightMediumContrast = Color(0xFFEBE7E7)
val surfaceContainerHighLightMediumContrast = Color(0xFFDFDCDB)
val surfaceContainerHighestLightMediumContrast = Color(0xFFD4D1D0)

val primaryLightHighContrast = Color(0xFF160299)
val onPrimaryLightHighContrast = Color(0xFFFFFFFF)
val primaryContainerLightHighContrast = Color(0xFF3835B4)
val onPrimaryContainerLightHighContrast = Color(0xFFFFFFFF)
val secondaryLightHighContrast = Color(0xFF292B3D)
val onSecondaryLightHighContrast = Color(0xFFFFFFFF)
val secondaryContainerLightHighContrast = Color(0xFF46485C)
val onSecondaryContainerLightHighContrast = Color(0xFFFFFFFF)
val tertiaryLightHighContrast = Color(0xFF2A2C2D)
val onTertiaryLightHighContrast = Color(0xFFFFFFFF)
val tertiaryContainerLightHighContrast = Color(0xFF48494A)
val onTertiaryContainerLightHighContrast = Color(0xFFFFFFFF)
val errorLightHighContrast = Color(0xFF60000D)
val onErrorLightHighContrast = Color(0xFFFFFFFF)
val errorContainerLightHighContrast = Color(0xFF8F1922)
val onErrorContainerLightHighContrast = Color(0xFFFFFFFF)
val backgroundLightHighContrast = Color(0xFFFCF8FF)
val onBackgroundLightHighContrast = Color(0xFF1B1B23)
val surfaceLightHighContrast = Color(0xFFFCF8F8)
val onSurfaceLightHighContrast = Color(0xFF000000)
val surfaceVariantLightHighContrast = Color(0xFFE0E3E3)
val onSurfaceVariantLightHighContrast = Color(0xFF000000)
val outlineLightHighContrast = Color(0xFF292D2D)
val outlineVariantLightHighContrast = Color(0xFF464A4A)
val scrimLightHighContrast = Color(0xFF000000)
val inverseSurfaceLightHighContrast = Color(0xFF313030)
val inverseOnSurfaceLightHighContrast = Color(0xFFFFFFFF)
val inversePrimaryLightHighContrast = Color(0xFFC2C1FF)
val surfaceDimLightHighContrast = Color(0xFFBBB8B7)
val surfaceBrightLightHighContrast = Color(0xFFFCF8F8)
val surfaceContainerLowestLightHighContrast = Color(0xFFFFFFFF)
val surfaceContainerLowLightHighContrast = Color(0xFFF4F0EF)
val surfaceContainerLightHighContrast = Color(0xFFE5E2E1)
val surfaceContainerHighLightHighContrast = Color(0xFFD7D4D3)
val surfaceContainerHighestLightHighContrast = Color(0xFFC9C6C5)

val primaryDark = Color(0xFFC2C1FF)
val onPrimaryDark = Color(0xFF1B0E9D)
val primaryContainerDark = Color(0xFF8283FF)
val onPrimaryContainerDark = Color(0xFF12008E)
val secondaryDark = Color(0xFFFFFFFF)
val onSecondaryDark = Color(0xFF2D2F42)
val secondaryContainerDark = Color(0xFFE0E0F9)
val onSecondaryContainerDark = Color(0xFF616378)
val tertiaryDark = Color(0xFFFFFFFF)
val onTertiaryDark = Color(0xFF2F3131)
val tertiaryContainerDark = Color(0xFFE2E2E2)
val onTertiaryContainerDark = Color(0xFF636565)
val errorDark = Color(0xFFFFB3B0)
val onErrorDark = Color(0xFF68000F)
val errorContainerDark = Color(0xFFFF6C6C)
val onErrorContainerDark = Color(0xFF6E0011)
val backgroundDark = Color(0xFF13131A)
val onBackgroundDark = Color(0xFFE4E1EC)
val surfaceDark = Color(0xFF141313)
val onSurfaceDark = Color(0xFFE5E2E1)
val surfaceVariantDark = Color(0xFF444748)
val onSurfaceVariantDark = Color(0xFFC4C7C8)
val outlineDark = Color(0xFF8E9192)
val outlineVariantDark = Color(0xFF444748)
val scrimDark = Color(0xFF000000)
val inverseSurfaceDark = Color(0xFFE5E2E1)
val inverseOnSurfaceDark = Color(0xFF313030)
val inversePrimaryDark = Color(0xFF4F4DCA)
val surfaceDimDark = Color(0xFF141313)
val surfaceBrightDark = Color(0xFF3A3939)
val surfaceContainerLowestDark = Color(0xFF0E0E0E)
val surfaceContainerLowDark = Color(0xFF1C1B1B)
val surfaceContainerDark = Color(0xFF201F1F)
val surfaceContainerHighDark = Color(0xFF2A2A2A)
val surfaceContainerHighestDark = Color(0xFF353434)

val primaryDarkMediumContrast = Color(0xFFDBD9FF)
val onPrimaryDarkMediumContrast = Color(0xFF110088)
val primaryContainerDarkMediumContrast = Color(0xFF8283FF)
val onPrimaryContainerDarkMediumContrast = Color(0xFF000000)
val secondaryDarkMediumContrast = Color(0xFFFFFFFF)
val onSecondaryDarkMediumContrast = Color(0xFF2D2F42)
val secondaryContainerDarkMediumContrast = Color(0xFFE0E0F9)
val onSecondaryContainerDarkMediumContrast = Color(0xFF45475A)
val tertiaryDarkMediumContrast = Color(0xFFFFFFFF)
val onTertiaryDarkMediumContrast = Color(0xFF2F3131)
val tertiaryContainerDarkMediumContrast = Color(0xFFE2E2E2)
val onTertiaryContainerDarkMediumContrast = Color(0xFF464848)
val errorDarkMediumContrast = Color(0xFFFFD2CF)
val onErrorDarkMediumContrast = Color(0xFF54000A)
val errorContainerDarkMediumContrast = Color(0xFFFF6C6C)
val onErrorContainerDarkMediumContrast = Color(0xFF250002)
val backgroundDarkMediumContrast = Color(0xFF13131A)
val onBackgroundDarkMediumContrast = Color(0xFFE4E1EC)
val surfaceDarkMediumContrast = Color(0xFF141313)
val onSurfaceDarkMediumContrast = Color(0xFFFFFFFF)
val surfaceVariantDarkMediumContrast = Color(0xFF444748)
val onSurfaceVariantDarkMediumContrast = Color(0xFFDADDDD)
val outlineDarkMediumContrast = Color(0xFFAFB2B3)
val outlineVariantDarkMediumContrast = Color(0xFF8D9191)
val scrimDarkMediumContrast = Color(0xFF000000)
val inverseSurfaceDarkMediumContrast = Color(0xFFE5E2E1)
val inverseOnSurfaceDarkMediumContrast = Color(0xFF2A2A2A)
val inversePrimaryDarkMediumContrast = Color(0xFF3733B3)
val surfaceDimDarkMediumContrast = Color(0xFF141313)
val surfaceBrightDarkMediumContrast = Color(0xFF454444)
val surfaceContainerLowestDarkMediumContrast = Color(0xFF070707)
val surfaceContainerLowDarkMediumContrast = Color(0xFF1E1D1D)
val surfaceContainerDarkMediumContrast = Color(0xFF282828)
val surfaceContainerHighDarkMediumContrast = Color(0xFF333232)
val surfaceContainerHighestDarkMediumContrast = Color(0xFF3E3D3D)

val primaryDarkHighContrast = Color(0xFFF1EEFF)
val onPrimaryDarkHighContrast = Color(0xFF000000)
val primaryContainerDarkHighContrast = Color(0xFFBDBCFF)
val onPrimaryContainerDarkHighContrast = Color(0xFF03003B)
val secondaryDarkHighContrast = Color(0xFFFFFFFF)
val onSecondaryDarkHighContrast = Color(0xFF000000)
val secondaryContainerDarkHighContrast = Color(0xFFE0E0F9)
val onSecondaryContainerDarkHighContrast = Color(0xFF27293B)
val tertiaryDarkHighContrast = Color(0xFFFFFFFF)
val onTertiaryDarkHighContrast = Color(0xFF000000)
val tertiaryContainerDarkHighContrast = Color(0xFFE2E2E2)
val onTertiaryContainerDarkHighContrast = Color(0xFF282A2B)
val errorDarkHighContrast = Color(0xFFFFECEA)
val onErrorDarkHighContrast = Color(0xFF000000)
val errorContainerDarkHighContrast = Color(0xFFFFADAA)
val onErrorContainerDarkHighContrast = Color(0xFF220002)
val backgroundDarkHighContrast = Color(0xFF13131A)
val onBackgroundDarkHighContrast = Color(0xFFE4E1EC)
val surfaceDarkHighContrast = Color(0xFF141313)
val onSurfaceDarkHighContrast = Color(0xFFFFFFFF)
val surfaceVariantDarkHighContrast = Color(0xFF444748)
val onSurfaceVariantDarkHighContrast = Color(0xFFFFFFFF)
val outlineDarkHighContrast = Color(0xFFEEF0F1)
val outlineVariantDarkHighContrast = Color(0xFFC0C3C4)
val scrimDarkHighContrast = Color(0xFF000000)
val inverseSurfaceDarkHighContrast = Color(0xFFE5E2E1)
val inverseOnSurfaceDarkHighContrast = Color(0xFF000000)
val inversePrimaryDarkHighContrast = Color(0xFF3733B3)
val surfaceDimDarkHighContrast = Color(0xFF141313)
val surfaceBrightDarkHighContrast = Color(0xFF51504F)
val surfaceContainerLowestDarkHighContrast = Color(0xFF000000)
val surfaceContainerLowDarkHighContrast = Color(0xFF201F1F)
val surfaceContainerDarkHighContrast = Color(0xFF313030)
val surfaceContainerHighDarkHighContrast = Color(0xFF3C3B3B)
val surfaceContainerHighestDarkHighContrast = Color(0xFF474646)

val White = Color(0xFFFFFFFF)
val Black = Color(0xFF000000)

Expand Down
Loading