@if (Before is not null)
{
@Before
}
@if (After is not null)
{
@After
}
@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;
[Parameter] public RenderFragment? Before { get; set; }
[Parameter] public RenderFragment? After { get; set; }
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);
}
}