package templates import ( "encoding/json" "fmt" ) func readerInitExpr(metadata ReaderMetadata, progress ReadingProgress) string { config := map[string]interface{}{ "mediaItemId": metadata.MediaItemID, "fileUrl": metadata.FileURL, "formatGroup": metadata.FormatGroup, "readingDirection": metadata.ReadingDirection, "mangaType": metadata.MangaType, } if progress.Percentage > 0 { config["savedPercentage"] = progress.Percentage } if progress.EpubCfi != "" { config["savedCfi"] = progress.EpubCfi } jsonBytes, _ := json.Marshal(config) return fmt.Sprintf("initReader(%s)", string(jsonBytes)) } templ Reader(user User, metadata ReaderMetadata, progress ReadingProgress, bookmarks []Bookmark) { { metadata.Title } - Bookhoard Reader @ReaderChrome(user, metadata, progress)
@DictionaryPopup() } templ ReaderChrome(user User, metadata ReaderMetadata, progress ReadingProgress) {
← Back

{ metadata.Title }

if progress.FormatGroup == "reflowable" { if metadata.EstimatedPages > 0 { { fmt.Sprintf("%.0f%% Β· Page %d/%d", progress.Percentage, progress.CurrentPage, metadata.EstimatedPages) } } else { { fmt.Sprintf("%.0f%%", progress.Percentage) } } } else { { fmt.Sprintf("%d/%d", progress.CurrentPage, progress.TotalPages) } }
} templ ReaderSettingsPanel() {

βš™οΈ Settings

Display

Reading Theme

Typography

Navigation

} templ ReaderTOCPanel(_ ReaderMetadata) {

πŸ“– Table of Contents

} templ ReaderNavigatorPanel() {

πŸ—ΊοΈ Navigator

} templ ReaderBookmarksPanel(bookmarks []Bookmark) {

πŸ”– Bookmarks

if len(bookmarks) > 0 {
for _, bookmark := range bookmarks { { bookmark.Title } { bookmark.Position } }
} else {

No bookmarks yet

}
} templ DictionaryPopup() { }