From f0ef28bd1908dffce7c9f1cd22f571fa786f2857 Mon Sep 17 00:00:00 2001 From: FatttSnake Date: Wed, 21 Aug 2024 18:03:10 +0800 Subject: [PATCH] Refactor(ToolStore): Optimize the prompt when there is nothing --- .../toolbox/ui/store/ToolStoreScreen.kt | 46 ++++++++++++++----- 1 file changed, 35 insertions(+), 11 deletions(-) diff --git a/app/src/main/kotlin/top/fatweb/oxygen/toolbox/ui/store/ToolStoreScreen.kt b/app/src/main/kotlin/top/fatweb/oxygen/toolbox/ui/store/ToolStoreScreen.kt index 0d4465a..93b3ab9 100644 --- a/app/src/main/kotlin/top/fatweb/oxygen/toolbox/ui/store/ToolStoreScreen.kt +++ b/app/src/main/kotlin/top/fatweb/oxygen/toolbox/ui/store/ToolStoreScreen.kt @@ -80,6 +80,7 @@ internal fun ToolStoreRoute( modifier = modifier, toolStorePagingItems = toolStorePagingItems, installInfo = installInfo, + searchValue = searchValue, onNavigateToToolView = onNavigateToToolView, onChangeInstallStatus = viewModel::changeInstallInfo, onChangeInstallType = { @@ -94,6 +95,7 @@ internal fun ToolStoreScreen( modifier: Modifier = Modifier, toolStorePagingItems: LazyPagingItems, installInfo: ToolStoreUiState.InstallInfo, + searchValue: String, onNavigateToToolView: (username: String, toolId: String, preview: Boolean) -> Unit, onChangeInstallStatus: (status: ToolStoreUiState.InstallInfo.Status) -> Unit, onChangeInstallType: (type: ToolStoreUiState.InstallInfo.Type) -> Unit, @@ -112,11 +114,15 @@ internal fun ToolStoreScreen( val infiniteTransition = rememberInfiniteTransition(label = "infiniteTransition") - var installTool by remember { mutableStateOf(ToolEntity( - toolId = "Unknown", - authorUsername = "Unknown", - ver = "Unknown" - )) } + var installTool by remember { + mutableStateOf( + ToolEntity( + toolId = "Unknown", + authorUsername = "Unknown", + ver = "Unknown" + ) + ) + } Box( modifier.fillMaxSize() @@ -146,7 +152,7 @@ internal fun ToolStoreScreen( } } - if (toolStorePagingItems.loadState.refresh is LoadState.Loading || toolStorePagingItems.loadState.append is LoadState.Loading) { + if (toolStorePagingItems.loadState.refresh is LoadState.Loading) { Column( modifier = Modifier.fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally, @@ -169,6 +175,21 @@ internal fun ToolStoreScreen( } } + if (itemsAvailable == 0 && !isToolLoading) { + Column( + modifier = Modifier.fillMaxSize(), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.Center + ) { + Text( + text = stringResource( + if (searchValue.isEmpty()) R.string.core_nothing + else R.string.core_nothing_found + ) + ) + } + } + state.DraggableScrollbar( modifier = Modifier .fillMaxHeight() @@ -349,11 +370,14 @@ private fun InstallAlertDialog( when (status) { ToolStoreUiState.InstallInfo.Status.Pending -> TextButton(onClick = onInstallTool) { - Text(text = stringResource( - when (type) { - ToolStoreUiState.InstallInfo.Type.Install -> R.string.core_install - ToolStoreUiState.InstallInfo.Type.Upgrade -> R.string.core_upgrade - })) + Text( + text = stringResource( + when (type) { + ToolStoreUiState.InstallInfo.Type.Install -> R.string.core_install + ToolStoreUiState.InstallInfo.Type.Upgrade -> R.string.core_upgrade + } + ) + ) } ToolStoreUiState.InstallInfo.Status.Success,