From c2bb912ba3efcfd53ed5f85ede231a7cb70c2bb5 Mon Sep 17 00:00:00 2001 From: Pat Hartl Date: Mon, 29 Apr 2024 19:29:38 -0500 Subject: [PATCH] Fix file picker inputs losing their value --- LANCommander/UI/Components/FilePicker.razor | 37 +++++++++++++++++++-- 1 file changed, 34 insertions(+), 3 deletions(-) diff --git a/LANCommander/UI/Components/FilePicker.razor b/LANCommander/UI/Components/FilePicker.razor index dd98756c..e576ff74 100644 --- a/LANCommander/UI/Components/FilePicker.razor +++ b/LANCommander/UI/Components/FilePicker.razor @@ -5,21 +5,21 @@ - + + EntryVisible="@EntryVisible" + OnSelected="OnFileSelected" /> @@ -35,4 +35,35 @@ [Parameter] public string Root { get; set; } [Parameter] public Func EntrySelectable { get; set; } = _ => true; [Parameter] public Func EntryVisible { get; set; } = _ => true; + + string InputValue { get; set; } + + protected override async Task OnInitializedAsync() + { + InputValue = Value; + } + + async Task OnInput(ChangeEventArgs args) + { + var inputString = args?.Value.ToString(); + + Value = inputString; + + if (ValueChanged.HasDelegate) + await ValueChanged.InvokeAsync(inputString); + } + + async Task OnFileSelected(string selectedFile) + { + Value = selectedFile; + InputValue = selectedFile; + + if (ValueChanged.HasDelegate) + await ValueChanged.InvokeAsync(selectedFile); + + if (OnSelected.HasDelegate) + await OnSelected.InvokeAsync(selectedFile); + + await InvokeAsync(StateHasChanged); + } } \ No newline at end of file