From bdfc834753002ac2a364fdbb771b8a12b13eacf6 Mon Sep 17 00:00:00 2001 From: Kevin Matsubara Date: Thu, 27 Mar 2025 12:32:42 +0100 Subject: [PATCH] Move Search bar into its own component. --- .../Controls/SearchBarComponent.razor | 25 +++++++++++++++ .../Controls/ServerListComponent.razor | 14 +++++++-- .../Components/Pages/Servers.razor | 31 +++++++------------ 3 files changed, 48 insertions(+), 22 deletions(-) create mode 100644 ServerManagement/Components/Controls/SearchBarComponent.razor diff --git a/ServerManagement/Components/Controls/SearchBarComponent.razor b/ServerManagement/Components/Controls/SearchBarComponent.razor new file mode 100644 index 0000000..eb90dcb --- /dev/null +++ b/ServerManagement/Components/Controls/SearchBarComponent.razor @@ -0,0 +1,25 @@ +
+ + +
+ +@code { + private string _serverFilter = ""; + private string serverFilter { + get => _serverFilter; + set + { + _serverFilter = value; + } + } + + [Parameter] + public EventCallback FilterSearchTerm { get; set; } + + private void HandleSearch() + { + FilterSearchTerm.InvokeAsync(serverFilter); + } +} \ No newline at end of file diff --git a/ServerManagement/Components/Controls/ServerListComponent.razor b/ServerManagement/Components/Controls/ServerListComponent.razor index 7b4dd36..ddb3dfc 100644 --- a/ServerManagement/Components/Controls/ServerListComponent.razor +++ b/ServerManagement/Components/Controls/ServerListComponent.razor @@ -8,12 +8,22 @@ } @code { + private List? servers; + [Parameter] public string? CityName { get; set; } - private List? servers; + [Parameter] + public string SearchFilter { get; set; } = ""; protected override void OnParametersSet() { - servers = ServersRepository.GetServersByCity(CityName ?? "Eindhoven"); + if (string.IsNullOrWhiteSpace(this.SearchFilter)) + { + servers = ServersRepository.GetServersByCity(CityName ?? "Eindhoven"); + } + else + { + servers = ServersRepository.SearchServers(SearchFilter); + } } } \ No newline at end of file diff --git a/ServerManagement/Components/Pages/Servers.razor b/ServerManagement/Components/Pages/Servers.razor index cd338d6..4da62b9 100644 --- a/ServerManagement/Components/Pages/Servers.razor +++ b/ServerManagement/Components/Pages/Servers.razor @@ -6,39 +6,30 @@

-
- - -
+
Add
- + + + @code { private string selectedCity = "Eindhoven"; - private string _serverFilter = ""; - private string serverFilter { - get => _serverFilter; - set - { - _serverFilter = value; - //this.servers = ServersRepository.SearchServers(_serverFilter); - //this.selectedCity = string.Empty; - } - } + private string searchFilter = ""; private void HandleCitySelection(string cityName) { + this.searchFilter = string.Empty; this.selectedCity = cityName; } - private void HandleSearch() + private void HandleSearch(string searchFilter) { - //this.servers = ServersRepository.SearchServers(serverFilter); - // this.selectedCity = string.Empty; + this.selectedCity = string.Empty; + this.searchFilter = searchFilter; } } \ No newline at end of file