From 4f8245394140085914d3df3396a412600e4e9aa7 Mon Sep 17 00:00:00 2001 From: Sam Edwards Date: Fri, 24 Jan 2025 13:10:41 -0500 Subject: [PATCH] Added a `toQueryString()` for creating links. --- .../common/navigation/routes/BaseNavRoute.kt | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/invert-report/src/jsMain/kotlin/com/squareup/invert/common/navigation/routes/BaseNavRoute.kt b/invert-report/src/jsMain/kotlin/com/squareup/invert/common/navigation/routes/BaseNavRoute.kt index a94be74..14c8ac0 100644 --- a/invert-report/src/jsMain/kotlin/com/squareup/invert/common/navigation/routes/BaseNavRoute.kt +++ b/invert-report/src/jsMain/kotlin/com/squareup/invert/common/navigation/routes/BaseNavRoute.kt @@ -5,20 +5,24 @@ import com.squareup.invert.common.navigation.NavPageId import com.squareup.invert.common.navigation.NavRoute abstract class BaseNavRoute( - final override val navPage: NavPage, + final override val navPage: NavPage, ) : NavRoute { - override fun toSearchParams(): Map = toParamsWithOnlyPageId(this) + override fun toSearchParams(): Map = toParamsWithOnlyPageId(this) - override val page: NavPageId = navPage.pageId + override val page: NavPageId = navPage.pageId - companion object { + companion object { - const val PAGE_ID_PARAM = "page" + const val PAGE_ID_PARAM = "page" - fun toParamsWithOnlyPageId(navRoute: NavRoute): MutableMap { - return mutableMapOf().apply { - this[PAGE_ID_PARAM] = navRoute.page - } - } + fun toParamsWithOnlyPageId(navRoute: NavRoute): MutableMap { + return mutableMapOf().apply { + this[PAGE_ID_PARAM] = navRoute.page + } } + } + + fun toQueryString(): String { + return toSearchParams().map { (key, value) -> "$key=$value" }.joinToString("&") + } }