61 lines
No EOL
2.1 KiB
Text
61 lines
No EOL
2.1 KiB
Text
@using LANCommander.Server.Models
|
|
@using System.IO.Compression
|
|
@inject ModalService ModalService
|
|
@inject ArchiveService ArchiveService
|
|
|
|
<Space Style="display: flex">
|
|
<SpaceItem Style="flex-grow: 1">
|
|
<Input TValue="string" Type="text" @bind-Value="Value" OnInput="OnInput" BindOnInput="true" />
|
|
</SpaceItem>
|
|
<SpaceItem>
|
|
<FilePickerButton
|
|
Type="@ButtonType.Primary"
|
|
Icon="@IconType.Outline.FolderOpen"
|
|
ArchiveId="@ArchiveId"
|
|
Title="@Title"
|
|
OkText="@OkText"
|
|
AllowDirectories="@AllowDirectories"
|
|
Prefix="@Prefix"
|
|
Root="@Root"
|
|
EntrySelectable="@EntrySelectable"
|
|
EntryVisible="@EntryVisible"
|
|
OnSelected="OnFileSelected" />
|
|
</SpaceItem>
|
|
</Space>
|
|
|
|
@code {
|
|
[Parameter] public string Value { get; set; }
|
|
[Parameter] public EventCallback<string> ValueChanged { get; set; }
|
|
[Parameter] public EventCallback<string> 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 Func<IFileManagerEntry, bool> EntrySelectable { get; set; } = _ => true;
|
|
[Parameter] public Func<IFileManagerEntry, bool> 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);
|
|
}
|
|
} |