PeachNav.kt

2.1 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    /** The notes surface itself — [NotesMode]'s table of contents, with no note14     * open yet. Reached from the entry-deck chrome's "Notes" action. */15    data object Notes : PeachNav("notes")1617    data class EntryDetail(val id: String) : PeachNav("entry/$id") {18        companion object {19            const val ROUTE = "entry/{id}"20            fun of(id: String) = "entry/$id"21        }22    }2324    data class NotesMode(val id: String) : PeachNav("notes/$id") {25        companion object {26            const val ROUTE = "notes/{id}"27            fun of(id: String) = "notes/$id"28        }29    }3031    data class EntryEdit(val id: String?) : PeachNav("edit?id=${id ?: ""}") {32        companion object {33            const val ROUTE = "edit?id={id}"34            fun of(id: String?) = "edit?id=${id ?: ""}"35        }36    }3738    data object Settings : PeachNav("settings")39    data object CodexGenerate : PeachNav("codex/generate")40    data object CodexRestore : PeachNav("codex/restore")41    data object CodePair : PeachNav("pair/code")42    data object Health : PeachNav("health")43    data object Trash : PeachNav("trash")44    data object Import : PeachNav("import")45    data object Export : PeachNav("export")46    data object Panic : PeachNav("panic")47    data object RecoverySetup : PeachNav("recovery/setup")48    data object RecoveryView : PeachNav("recovery/view")49    data object RecoveryEntry : PeachNav("recovery/entry")5051    /** Check / download / install a newer release from Kepr. */52    data object Update : PeachNav("update")5354    /** Post-update changelog for the version now running, shown once. */55    data object WhatsNew : PeachNav("whatsnew")56}