feat: implement core app screens, viewmodels, and repository layer for link management and navigation

This commit is contained in:
2026-04-22 21:57:17 -04:00
parent 9479986e33
commit 83658cc6c2
15 changed files with 769 additions and 26 deletions
@@ -49,6 +49,9 @@ sealed class Screen(val route: String) {
}
object Reminders : Screen("reminders")
object Todo : Screen("todo")
object TodoDetail : Screen("todoDetail/{linkId}") {
fun createRoute(linkId: Int): String = "todoDetail/$linkId"
}
}
@Composable
@@ -163,6 +166,7 @@ fun AppNavGraph(
},
onNavigateToReminders = { navController.navigate(Screen.Reminders.route) },
onNavigateToTodo = { navController.navigate(Screen.Todo.route) },
onNavigateToTodoDetail = { linkId -> navController.navigate(Screen.TodoDetail.createRoute(linkId)) },
onPlayAudio = onPlayAudio,
initialTagFilter = tag,
initialCollectionId = collectionId
@@ -355,5 +359,20 @@ fun AppNavGraph(
onNavigateBack = { navController.popBackStack() }
)
}
composable(
route = Screen.TodoDetail.route,
arguments = listOf(
navArgument("linkId") {
type = NavType.IntType
}
)
) { backStackEntry ->
val linkId = backStackEntry.arguments?.getInt("linkId") ?: 0
com.shaarit.presentation.todo.TodoDetailScreen(
linkId = linkId,
onNavigateBack = { navController.popBackStack() }
)
}
}
}