menu

File collection

Show code
<FileCollection T="File" Items="files" />

@code {
    private List<File> files = [
        new() {
            Path = "/images/img1.jpg"
        },
        new() {
            Path = "/images/img2.jpg"
        },
        new() {
            Path = "/images/img3.png"
        },
    ];

    private class File : IPath
    {
        public required string Path { get; set; }
    }
}
delete_forever
delete_forever
delete_forever
Show code
@using Blazura.Services

@inject IUploadManagerService uploadManagerService

<FileCollection T="File" Items="files" OnUpload="HandleUploadedFiles" OnRearranged="Rearrange" OnDelete="Delete" />

@code {
    private List<File> files = [
        new() {
            Path = "/images/img1.jpg"
        },
        new() {
            Path = "/images/img2.jpg"
        },
        new() {
            Path = "/images/img3.png"
        },
    ];

    private async Task HandleUploadedFiles(IReadOnlyList<IBrowserFile> browserFiles)
    {
        foreach (IBrowserFile browserFile in browserFiles)
        {
            var urlFile = await uploadManagerService.GetBrowserFileAsUrl(browserFile);

            files.Add(new()
            {
                Path = urlFile,
            });
        }
    }

    private async Task Rearrange(List<File> files)
    {
        // Mutates the inserted list, but also brings the same list through the parameters
    }

    private async Task Delete(File file)
    {
        files.Remove(file);
    }

    private class File : IPath
    {
        public required string Path { get; set; }
    }
}
An unhandled error has occurred.