{#if uploadBooks.pending}
Uploading {uploadBooks.fields.files.value().length} files...
{:else} Upload Books
{ try { await submit(); // Check if there are any validation issues const issues = uploadBooks.fields.allIssues(); if (issues && issues.length > 0) { return; } // Update library book count const count = uploadBooks.result.total libraryState.libraries.find(lib => uploadBooks.fields.library_id.value() == lib.id.toString())!.total += count // Reset the files field uploadBooks.fields.files.set([]); toast.success('Books successfully uploaded!'); if (navigateOnUpload) { navigateToBooks(uploadBooks.result); } } catch (error) { console.error('Failed to upload book: ', error); toast.error('Failed to upload books'); } })} bind:this={formEl} enctype="multipart/form-data" class="flex w-full flex-col gap-2 p-4" > Select Library {#each libraryState.libraries as library} {library.name} {/each}
{#each files as file, idx}
{file.name} {displaySize(file.size)}
{/each}
Auto upload on file drop
Navigate to book on upload
{/if}