{#if book.files.length > 0} openInReader(book.files[0])}> Read bookOps.downloadBookFile(book.id, book.files[0].id, book.files[0].filename)} > Download {/if} { bookOps.bookToEdit = book; bookOps.editDialogOpen = true; }} > Edit { if (!book.progress?.completed) await bookOps.markBooksAsComplete([book.id]); else await bookOps.markBooksAsIncomplete([book.id]); }} > {book.progress?.completed ? 'Mark as unfinished' : 'Mark as finished'} { bookOps.deleteDialogTitle = `Delete "${book.title}"?`; bookOps.deleteFn = async (deleteFiles: boolean) => { await bookOps.deleteBooks([book.id], deleteFiles); libraryState.activeLibrary!.total!--; bookshelfState.deletedBooks([book]); }; bookOps.deleteDialogOpen = true; }} > Delete