From b041d7d244d41b078ad2091556b4d5831e62c874 Mon Sep 17 00:00:00 2001 From: Kevin Matsubara Date: Sat, 29 Mar 2025 16:55:57 +0100 Subject: [PATCH] Use SetParametersAsync to only trigger OnParametersSet when necessary. --- .../Controls/ServerListComponent.razor | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/ServerManagement/Components/Controls/ServerListComponent.razor b/ServerManagement/Components/Controls/ServerListComponent.razor index dfa5b93..4445e5e 100644 --- a/ServerManagement/Components/Controls/ServerListComponent.razor +++ b/ServerManagement/Components/Controls/ServerListComponent.razor @@ -29,6 +29,29 @@ [Parameter] public string SearchFilter { get; set; } = ""; + public override Task SetParametersAsync(ParameterView parameters) + { + // Only trigger OnParametersSet if the parameter matches and has actually changed. + // This saves expensive calls to the data repository. + if (parameters.TryGetValue("CityName", out var cityName)) + { + if (cityName != CityName) + { + base.SetParametersAsync(parameters); + } + } + + if (parameters.TryGetValue("SearchFilter", out var searchFilter)) + { + if (searchFilter != SearchFilter) + { + base.SetParametersAsync(parameters); + } + } + + return Task.CompletedTask; + } + protected override void OnParametersSet() { if (string.IsNullOrWhiteSpace(this.SearchFilter))