BaseMetricScreen
fun <T> BaseMetricScreen(onNavigateUp: () -> Unit, telemetryType: TelemetryType?, titleRes: StringResource, nodeName: String, data: List<T>, timeProvider: (T) -> Double, infoData: List<InfoDialogData> = emptyList(), onRequestTelemetry: () -> Unit? = null, onExportCsv: () -> Unit? = null, extraActions: @Composable () -> Unit = {}, chartPart: @Composable (Modifier, Double?, VicoScrollState, (Double) -> Unit) -> Unit, listPart: @Composable (Modifier, Double?, LazyListState, (Double) -> Unit) -> Unit, controlPart: @Composable () -> Unit = {}, bottomContent: @Composable () -> Unit = {}, modifier: Modifier = Modifier)(source)
A high-level template for metric screens that handles the Scaffold, AppBar, adaptive layout, and chart-to-list synchronisation.
Parameters
extraActions
Additional composable actions rendered in the app bar before the standard buttons (e.g. a cooldown traceroute button).
onExportCsv
When non-null, a Save IconButton is rendered in the app bar that invokes this callback. This centralises the CSV export affordance so individual screens only need to provide the export logic.
bottomContent
Optional content pinned below the adaptive chart/list area.