Lazy-load mailbox previews

This commit is contained in:
DonVoo 2026-07-14 19:08:43 +02:00
parent 03ce0ad8ea
commit d4d43fe672

View file

@ -403,7 +403,7 @@ func sourceMailboxMessagesHandler(w http.ResponseWriter, r *http.Request) {
return
}
renderSourceMailboxMessageList(w, account, folder, headers)
fmt.Fprintf(w, `<div id="read" hx-swap-oob="innerHTML">%s</div>`, renderSourceMailboxRead(account, folder, firstHeaderUID(headers)))
fmt.Fprintf(w, `<div id="read" hx-swap-oob="innerHTML">%s</div>`, renderInitialReadPane(`<div class="ef-empty">Nachricht waehlen.</div>`))
}
func sourceMailboxMessageHandler(w http.ResponseWriter, r *http.Request) {
@ -449,7 +449,7 @@ func targetMailboxMessagesHandler(w http.ResponseWriter, r *http.Request) {
return
}
renderTargetMailboxMessageList(w, account, folder, headers)
fmt.Fprintf(w, `<div id="read" hx-swap-oob="innerHTML">%s</div>`, renderTargetMailboxRead(account, folder, firstHeaderUID(headers)))
fmt.Fprintf(w, `<div id="read" hx-swap-oob="innerHTML">%s</div>`, renderInitialReadPane(`<div class="ef-empty">Nachricht waehlen.</div>`))
}
func targetMailboxMessageHandler(w http.ResponseWriter, r *http.Request) {
@ -994,7 +994,7 @@ func transferMessagesHandler(w http.ResponseWriter, r *http.Request) {
folder := strings.TrimSpace(r.URL.Query().Get("folder"))
w.Header().Set("Content-Type", "text/html; charset=utf-8")
fmt.Fprint(w, renderTransferMessageList(side, kind, value, folder))
fmt.Fprintf(w, `<div id="transfer-preview" hx-swap-oob="innerHTML">%s</div>`, renderTransferPreview(kind, value, folder, 0, 0))
fmt.Fprintf(w, `<div id="transfer-preview" hx-swap-oob="innerHTML">%s</div>`, renderEmptyPreviewPane("Nachricht links oder rechts waehlen."))
}
func transferMessageHandler(w http.ResponseWriter, r *http.Request) {
@ -1173,16 +1173,6 @@ func renderInitialTransferList(side, kind string, accounts []Account, archives [
}
func renderInitialTransferPreview(leftKind, leftValue, rightKind, rightValue string) string {
if leftValue != "" {
if folder, err := firstTransferFolder(leftKind, leftValue); err == nil {
return renderTransferPreview(leftKind, leftValue, folder, 0, 0)
}
}
if rightValue != "" {
if folder, err := firstTransferFolder(rightKind, rightValue); err == nil {
return renderTransferPreview(rightKind, rightValue, folder, 0, 0)
}
}
return renderEmptyPreviewPane("Nachricht links oder rechts waehlen.")
}
@ -1563,18 +1553,7 @@ func renderInitialSourceMailboxList(account Account) string {
}
func renderInitialSourceMailboxRead(account Account) string {
if account.Name == "" {
return `<div class="ef-empty">Nachricht waehlen.</div>`
}
folder, err := firstSourceFolder(account)
if err != nil {
return `<div class="ef-empty">Nachricht waehlen.</div>`
}
headers, err := fetchSourceFolderHeaders(account, folder)
if err != nil {
return `<div class="ef-empty">Nachricht waehlen.</div>`
}
return renderSourceMailboxRead(account, folder, firstHeaderUID(headers))
}
func firstSourceFolder(account Account) (string, error) {
@ -1765,18 +1744,7 @@ func renderInitialTargetMailboxList(account Account) string {
}
func renderInitialTargetMailboxRead(account Account) string {
if account.Name == "" {
return `<div class="ef-empty">Nachricht waehlen.</div>`
}
folder, err := firstTargetFolder(account)
if err != nil {
return `<div class="ef-empty">Nachricht waehlen.</div>`
}
headers, err := fetchTargetFolderHeaders(account, folder)
if err != nil {
return `<div class="ef-empty">Nachricht waehlen.</div>`
}
return renderTargetMailboxRead(account, folder, firstHeaderUID(headers))
}
func firstTargetFolder(account Account) (string, error) {