From 3fa4281a0a0de3501a802521e66adcdb971be146 Mon Sep 17 00:00:00 2001 From: qhy040404 Date: Sat, 16 Mar 2024 19:37:18 +0800 Subject: [PATCH] show not found if no result --- .../AutoSuggestBox/AutoSuggestTokenBox.cs | 2 +- .../Control/AutoSuggestBox/SearchToken.cs | 2 ++ .../Extension/EnumerableExtension.cs | 5 +++ .../Resource/Localization/SH.en.resx | 35 ++++++++++--------- .../Snap.Hutao/Resource/Localization/SH.resx | 3 ++ 5 files changed, 30 insertions(+), 17 deletions(-) diff --git a/src/Snap.Hutao/Snap.Hutao/Control/AutoSuggestBox/AutoSuggestTokenBox.cs b/src/Snap.Hutao/Snap.Hutao/Control/AutoSuggestBox/AutoSuggestTokenBox.cs index 43d2e518..2ee7566f 100644 --- a/src/Snap.Hutao/Snap.Hutao/Control/AutoSuggestBox/AutoSuggestTokenBox.cs +++ b/src/Snap.Hutao/Snap.Hutao/Control/AutoSuggestBox/AutoSuggestTokenBox.cs @@ -48,7 +48,7 @@ internal sealed partial class AutoSuggestTokenBox : TokenizingTextBox if (args.Reason == AutoSuggestionBoxTextChangeReason.UserInput) { - sender.ItemsSource = AvailableTokens.Values.Where(q => q.Value.Contains(Text, StringComparison.OrdinalIgnoreCase)); + sender.ItemsSource = AvailableTokens.Values.WhereOrDefault(q => q.Value.Contains(Text, StringComparison.OrdinalIgnoreCase), [SearchToken.NotFound]); } } diff --git a/src/Snap.Hutao/Snap.Hutao/Control/AutoSuggestBox/SearchToken.cs b/src/Snap.Hutao/Snap.Hutao/Control/AutoSuggestBox/SearchToken.cs index cfa8dc91..dc4588ef 100644 --- a/src/Snap.Hutao/Snap.Hutao/Control/AutoSuggestBox/SearchToken.cs +++ b/src/Snap.Hutao/Snap.Hutao/Control/AutoSuggestBox/SearchToken.cs @@ -7,6 +7,8 @@ namespace Snap.Hutao.Control.AutoSuggestBox; internal sealed class SearchToken { + public static readonly SearchToken NotFound = new(SearchTokenKind.None, SH.ControlAutoSuggestBoxNotFoundValue); + public SearchToken(SearchTokenKind kind, string value, Uri? iconUri = null, Uri? sideIconUri = null, Color? quality = null) { Value = value; diff --git a/src/Snap.Hutao/Snap.Hutao/Extension/EnumerableExtension.cs b/src/Snap.Hutao/Snap.Hutao/Extension/EnumerableExtension.cs index 85fb49f9..ef7f4888 100644 --- a/src/Snap.Hutao/Snap.Hutao/Extension/EnumerableExtension.cs +++ b/src/Snap.Hutao/Snap.Hutao/Extension/EnumerableExtension.cs @@ -123,4 +123,9 @@ internal static partial class EnumerableExtension { return string.Join(separator, collection); } + + public static IEnumerable WhereOrDefault(this IEnumerable source, Func predicate, IEnumerable defaultValue) + { + return source.Where(predicate).Any() ? source : defaultValue; + } } \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.en.resx b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.en.resx index 9ae9b5d1..404406ab 100644 --- a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.en.resx +++ b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.en.resx @@ -60,45 +60,45 @@ : and then encoded with base64 encoding. --> - + - + - - - - + + + + - - + + - - + + - - - - + + + + - + - + @@ -144,6 +144,9 @@ Save + + No results found + Invalid Uri diff --git a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx index 39312912..a53e02e4 100644 --- a/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx +++ b/src/Snap.Hutao/Snap.Hutao/Resource/Localization/SH.resx @@ -144,6 +144,9 @@ 保存 + + 未找到结果 + 无效的 Uri