From c8d1b309181c5142a012e518800c56c95e5f4b33 Mon Sep 17 00:00:00 2001 From: kari-ts <135075563+kari-ts@users.noreply.github.com> Date: Thu, 11 Apr 2024 10:05:55 -0700 Subject: [PATCH] ui: show 'No results' when search returns empty (#309) Updates tailscale/corp#18202 Signed-off-by: kari-ts --- .../java/com/tailscale/ipn/ui/view/MainView.kt | 17 +++++++++++++++++ android/src/main/res/values/strings.xml | 1 + 2 files changed, 18 insertions(+) diff --git a/android/src/main/java/com/tailscale/ipn/ui/view/MainView.kt b/android/src/main/java/com/tailscale/ipn/ui/view/MainView.kt index 0c946e8..afdd57e 100644 --- a/android/src/main/java/com/tailscale/ipn/ui/view/MainView.kt +++ b/android/src/main/java/com/tailscale/ipn/ui/view/MainView.kt @@ -40,6 +40,7 @@ import androidx.compose.material3.Scaffold import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState +import androidx.compose.runtime.derivedStateOf import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember @@ -321,6 +322,7 @@ fun PeerList( ) { val peerList = viewModel.peers.collectAsState(initial = emptyList()) val searchTermStr by viewModel.searchTerm.collectAsState(initial = "") + val showNoResults = derivedStateOf { searchTermStr.isNotEmpty() && peerList.value.isEmpty() }.value val netmap = viewModel.netmap.collectAsState() val focusManager = LocalFocusManager.current @@ -364,6 +366,21 @@ fun PeerList( LazyColumn( modifier = Modifier.fillMaxSize().background(color = MaterialTheme.colorScheme.surface)) { + if (showNoResults) { + item { + Spacer( + Modifier.height(16.dp) + .fillMaxSize() + .background(color = MaterialTheme.colorScheme.surface)) + + Lists.SectionTitle( + stringResource(id = R.string.no_results), + bottomPadding = 8.dp, + style = MaterialTheme.typography.bodyMedium, + fontWeight = FontWeight.Light) + } + } + var first = true peerList.value.forEach { peerSet -> if (!first) { diff --git a/android/src/main/res/values/strings.xml b/android/src/main/res/values/strings.xml index b1c3147..ef7e3ef 100644 --- a/android/src/main/res/values/strings.xml +++ b/android/src/main/res/values/strings.xml @@ -19,6 +19,7 @@ Warning Search Dismiss + No results Tailscale