UI: app navigation

This commit is contained in:
Han Yin 2025-04-11 14:36:49 -07:00
parent 3f913ce440
commit 32608fb225
1 changed files with 47 additions and 0 deletions

View File

@ -0,0 +1,47 @@
package com.example.llama.revamp.navigation
import androidx.navigation.NavController
/**
* Navigation destinations for the app
*/
object AppDestinations {
const val MODEL_SELECTION_ROUTE = "model_selection"
const val MODE_SELECTION_ROUTE = "mode_selection"
const val CONVERSATION_ROUTE = "conversation"
const val BENCHMARK_ROUTE = "benchmark"
const val SETTINGS_ROUTE = "settings"
}
/**
* Navigation actions to be performed in the app
*/
class NavigationActions(private val navController: NavController) {
fun navigateToModelSelection() {
navController.navigate(AppDestinations.MODEL_SELECTION_ROUTE) {
// Clear back stack to start fresh
popUpTo(AppDestinations.MODEL_SELECTION_ROUTE) { inclusive = true }
}
}
fun navigateToModeSelection() {
navController.navigate(AppDestinations.MODE_SELECTION_ROUTE)
}
fun navigateToConversation() {
navController.navigate(AppDestinations.CONVERSATION_ROUTE)
}
fun navigateToBenchmark() {
navController.navigate(AppDestinations.BENCHMARK_ROUTE)
}
fun navigateToSettings(tab: String = "GENERAL") {
navController.navigate("${AppDestinations.SETTINGS_ROUTE}/$tab")
}
fun navigateUp() {
navController.navigateUp()
}
}