Compare commits

...

1 Commits

Author SHA1 Message Date
Mike Griese
53834e5368 A failed attempt at #38379
This didn't work at all.
It makes using `SearchText` in the extension just plain not work.
UpdateSearchText never gets called.
It's a bunch of bad side effects for not a lot of value
2025-04-12 12:49:23 -05:00
5 changed files with 35 additions and 7 deletions

View File

@@ -79,7 +79,9 @@ public sealed partial class CalculatorListPage : DynamicListPage
};
_items.Insert(1, li);
_items[0].Subtitle = string.Empty;
SearchText = lastResult;
ChangeSearchText(lastResult);
// SearchText = lastResult;
this.RaiseItemsChanged(this._items.Count);
}
}

View File

@@ -145,7 +145,7 @@ public sealed partial class DirectoryExplorePage : DynamicListPage
_filteredContents = null;
_path = path;
Title = path;
SearchText = string.Empty;
ChangeSearchText(string.Empty);
RaiseItemsChanged(-1);
}
}

View File

@@ -44,7 +44,7 @@ internal sealed partial class WindowWalkerListPage : DynamicListPage, IDisposabl
return ResultHelper.GetResultList(searchControllerResults, !string.IsNullOrEmpty(query));
}
public override IListItem[] GetItems() => Query(SearchText).ToArray();
public override IListItem[] GetItems() => Query(LastSearchText).ToArray();
public void Dispose()
{

View File

@@ -273,7 +273,7 @@ public partial class MainListPage : DynamicListPage,
}
}
public void Receive(ClearSearchMessage message) => SearchText = string.Empty;
public void Receive(ClearSearchMessage message) => ChangeSearchText(string.Empty);
public void Receive(UpdateFallbackItemsMessage message) => RaiseItemsChanged(_tlcManager.TopLevelCommands.Count);

View File

@@ -6,16 +6,42 @@ namespace Microsoft.CommandPalette.Extensions.Toolkit;
public abstract class DynamicListPage : ListPage, IDynamicListPage
{
protected virtual string LastSearchText { get; private set; } = string.Empty;
protected virtual string InitialSearchText { get; set; } = string.Empty;
private string? _changedTextValue;
public override string SearchText
{
get => base.SearchText;
get
{
if (_changedTextValue == null)
{
return InitialSearchText;
}
else
{
var result = _changedTextValue;
_changedTextValue = null;
return result;
}
}
set
{
var oldSearch = base.SearchText;
base.SearchText = value;
var oldSearch = LastSearchText;
LastSearchText = value;
UpdateSearchText(oldSearch, value);
}
}
public abstract void UpdateSearchText(string oldSearch, string newSearch);
public void ChangeSearchText(string newText)
{
_changedTextValue = newText;
SearchText = newText;
OnPropertyChanged(nameof(SearchText));
}
}