diff --git a/invert-report/src/jsMain/kotlin/com/squareup/invert/common/InvertReport.kt b/invert-report/src/jsMain/kotlin/com/squareup/invert/common/InvertReport.kt index 9982eb3..1939731 100644 --- a/invert-report/src/jsMain/kotlin/com/squareup/invert/common/InvertReport.kt +++ b/invert-report/src/jsMain/kotlin/com/squareup/invert/common/InvertReport.kt @@ -73,8 +73,10 @@ class InvertReport( val navGroupsRepo = NavGroupsRepo( customNavGroups + NavPageGroup( - groupTitle = "Other", - navItems = customReportPages.map { it.navPage.toNavItem() }.toSet(), + groupTitle = "Custom Pages", + navItems = customReportPages.filter { it.showInNav } + .map { it.navPage.toNavItem() } + .toSet(), ) ) diff --git a/invert-report/src/jsMain/kotlin/com/squareup/invert/common/InvertReportPage.kt b/invert-report/src/jsMain/kotlin/com/squareup/invert/common/InvertReportPage.kt index 527c8ec..d794aca 100644 --- a/invert-report/src/jsMain/kotlin/com/squareup/invert/common/InvertReportPage.kt +++ b/invert-report/src/jsMain/kotlin/com/squareup/invert/common/InvertReportPage.kt @@ -15,6 +15,8 @@ interface InvertReportPage { val navPage: NavPage + val showInNav: Boolean get() = true + val navRouteKClass: KClass val composableContent: @Composable (T) -> Unit diff --git a/invert-report/src/jsMain/kotlin/com/squareup/invert/common/navigation/NavGroupsRepo.kt b/invert-report/src/jsMain/kotlin/com/squareup/invert/common/navigation/NavGroupsRepo.kt index f61f3e8..1443270 100644 --- a/invert-report/src/jsMain/kotlin/com/squareup/invert/common/navigation/NavGroupsRepo.kt +++ b/invert-report/src/jsMain/kotlin/com/squareup/invert/common/navigation/NavGroupsRepo.kt @@ -79,8 +79,12 @@ object DefaultNavItems { it is ModuleDetailNavRoute || it is AllModulesNavRoute } ), - AllStatsNavRoute().navPage.toNavItem(), + ) + ), + NavPageGroup( + "Collected Stats", setOf( CodeReferencesReportPage.navPage.toNavItem(), + AllStatsNavRoute().navPage.toNavItem(), ) ), NavPageGroup( diff --git a/invert-report/src/jsMain/kotlin/com/squareup/invert/common/pages/AllStatsReportPage.kt b/invert-report/src/jsMain/kotlin/com/squareup/invert/common/pages/AllStatsReportPage.kt index 7b62f3e..451b49b 100644 --- a/invert-report/src/jsMain/kotlin/com/squareup/invert/common/pages/AllStatsReportPage.kt +++ b/invert-report/src/jsMain/kotlin/com/squareup/invert/common/pages/AllStatsReportPage.kt @@ -59,7 +59,7 @@ data class AllStatsNavRoute( object AllStatsReportPage : InvertReportPage { override val navPage: NavPage = NavPage( pageId = "stats", - displayName = "Stats", + displayName = "Counts", navIconSlug = "pie-chart", navRouteParser = { AllStatsNavRoute.parser(it) } ) diff --git a/invert-report/src/jsMain/kotlin/com/squareup/invert/common/pages/StatDetailReportPage.kt b/invert-report/src/jsMain/kotlin/com/squareup/invert/common/pages/StatDetailReportPage.kt index cf0d473..47039d2 100644 --- a/invert-report/src/jsMain/kotlin/com/squareup/invert/common/pages/StatDetailReportPage.kt +++ b/invert-report/src/jsMain/kotlin/com/squareup/invert/common/pages/StatDetailReportPage.kt @@ -13,14 +13,15 @@ import com.squareup.invert.common.navigation.NavPage import com.squareup.invert.common.navigation.NavRouteRepo import com.squareup.invert.common.navigation.routes.BaseNavRoute import com.squareup.invert.common.pages.StatDetailNavRoute.Companion.parser -import com.squareup.invert.models.StatDataType -import com.squareup.invert.models.ModulePath import com.squareup.invert.models.GradlePluginId +import com.squareup.invert.models.ModulePath import com.squareup.invert.models.OwnerName import com.squareup.invert.models.Stat +import com.squareup.invert.models.StatDataType import com.squareup.invert.models.StatKey import com.squareup.invert.models.StatMetadata import com.squareup.invert.models.js.MetadataJsReportModel +import kotlinx.browser.window import org.jetbrains.compose.web.dom.H1 import org.jetbrains.compose.web.dom.H3 import org.jetbrains.compose.web.dom.Text @@ -118,16 +119,30 @@ fun StatDetailComposable( val metadata by reportDataRepo.reportMetadata.collectAsState(null) - val statKeys = statsNavRoute.statKeys.ifEmpty { + val statKeys: List = statsNavRoute.statKeys.ifEmpty { statsData?.statInfos?.map { it.key } ?: listOf() } - H1 { Text("Stats") } - if (moduleToOwnerMapFlowValue == null || metadata == null) { + if (moduleToOwnerMapFlowValue == null || metadata == null || statsData == null) { BootstrapLoadingSpinner() return } + + val statKey = statKeys.first() + + val statInfo = statsData?.statInfos?.get(statKey) ?: run { + window.alert("Invalid stat key: $statKeys") + return + } + + + H1 { + Text(buildString { + append(statInfo.description) + }) + } + val query = statsNavRoute.moduleQuery if (allModulesOrig == null) { diff --git a/invert-report/src/jsMain/kotlin/navigation/NavigationComposables.kt b/invert-report/src/jsMain/kotlin/navigation/NavigationComposables.kt index 6079210..826ea16 100644 --- a/invert-report/src/jsMain/kotlin/navigation/NavigationComposables.kt +++ b/invert-report/src/jsMain/kotlin/navigation/NavigationComposables.kt @@ -4,7 +4,6 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue import com.squareup.invert.common.ReportDataRepo -import com.squareup.invert.common.navigation.DefaultNavItems import com.squareup.invert.common.navigation.NavGroupsRepo import com.squareup.invert.common.navigation.NavPage import com.squareup.invert.common.navigation.NavPage.NavItem