refactor(navigation): adopt sealed interface routes with subclassesOfSealed() (#5043)

This commit is contained in:
James Rich 2026-04-10 10:33:57 -05:00 committed by GitHub
parent 0355c7b8b3
commit ae5f021323
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 10 additions and 6 deletions

View file

@ -63,7 +63,9 @@ sealed interface NodesRoute : Route {
@Serializable data object Nodes : NodesRoute
@Serializable data class NodeDetailGraph(val destNum: Int? = null) : NodesRoute, Graph
@Serializable data class NodeDetailGraph(val destNum: Int? = null) :
NodesRoute,
Graph
@Serializable data class NodeDetail(val destNum: Int? = null) : NodesRoute
}
@ -84,7 +86,8 @@ sealed interface NodeDetailRoute : Route {
@Serializable data class TracerouteLog(val destNum: Int) : NodeDetailRoute
@Serializable data class TracerouteMap(val destNum: Int, val requestId: Int, val logUuid: String? = null) : NodeDetailRoute
@Serializable
data class TracerouteMap(val destNum: Int, val requestId: Int, val logUuid: String? = null) : NodeDetailRoute
@Serializable data class HostMetricsLog(val destNum: Int) : NodeDetailRoute
@ -95,7 +98,9 @@ sealed interface NodeDetailRoute : Route {
@Serializable
sealed interface SettingsRoute : Route {
@Serializable data class SettingsGraph(val destNum: Int? = null) : SettingsRoute, Graph
@Serializable data class SettingsGraph(val destNum: Int? = null) :
SettingsRoute,
Graph
@Serializable data class Settings(val destNum: Int? = null) : SettingsRoute

View file

@ -40,8 +40,7 @@ enum class TopLevelDestination(val label: StringResource, val route: Route) {
;
companion object {
fun fromNavKey(key: NavKey?): TopLevelDestination? = entries.find { dest ->
key?.let { it::class == dest.route::class } == true
}
fun fromNavKey(key: NavKey?): TopLevelDestination? =
entries.find { dest -> key?.let { it::class == dest.route::class } == true }
}
}