PeachNav.kt

1.6 KB · raw

1package com.peachpasswords.ui23/**4 * Every navigation destination in the app. [route] is the concrete route used5 * with `navController.navigate(...)`; parameterized destinations expose a6 * `ROUTE` pattern (with `{arg}` placeholders) for registration in the graph.7 */8sealed class PeachNav(val route: String) {9    data object Onboarding : PeachNav("onboarding")10    data object Lock : PeachNav("lock")11    data object VaultList : PeachNav("vault")1213    data class EntryDetail(val id: String) : PeachNav("entry/$id") {14        companion object {15            const val ROUTE = "entry/{id}"16            fun of(id: String) = "entry/$id"17        }18    }1920    data class NotesMode(val id: String) : PeachNav("notes/$id") {21        companion object {22            const val ROUTE = "notes/{id}"23            fun of(id: String) = "notes/$id"24        }25    }2627    data class EntryEdit(val id: String?) : PeachNav("edit?id=${id ?: ""}") {28        companion object {29            const val ROUTE = "edit?id={id}"30            fun of(id: String?) = "edit?id=${id ?: ""}"31        }32    }3334    data object Settings : PeachNav("settings")35    data object CodexGenerate : PeachNav("codex/generate")36    data object CodexRestore : PeachNav("codex/restore")37    data object ChirpPair : PeachNav("chirp/pair")38    data object Health : PeachNav("health")39    data object Trash : PeachNav("trash")40    data object Import : PeachNav("import")41    data object Export : PeachNav("export")42    data object Panic : PeachNav("panic")43    data object RecoverySetup : PeachNav("recovery/setup")44    data object RecoveryView : PeachNav("recovery/view")45    data object RecoveryEntry : PeachNav("recovery/entry")46}