@using LANCommander.Server.Models @using System.IO.Compression @inject ModalService ModalService @code { [Parameter] public string Value { get; set; } [Parameter] public EventCallback ValueChanged { get; set; } [Parameter] public EventCallback OnSelected { get; set; } [Parameter] public Guid ArchiveId { get; set; } [Parameter] public string Title { get; set; } = "Choose File"; [Parameter] public string OkText { get; set; } = "Select File"; [Parameter] public bool AllowDirectories { get; set; } = false; [Parameter] public string Prefix { get; set; } [Parameter] public string Root { get; set; } [Parameter] public bool Disabled { get; set; } [Parameter] public Func EntrySelectable { get; set; } = _ => true; [Parameter] public Func EntryVisible { get; set; } = _ => true; 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; if (ValueChanged.HasDelegate) await ValueChanged.InvokeAsync(selectedFile); if (OnSelected.HasDelegate) await OnSelected.InvokeAsync(selectedFile); await InvokeAsync(StateHasChanged); } }