dkforest

A forum and chat platform (onion)
git clone https://git.dasho.dev/n0tr1v/dkforest.git
Log | Files | Refs | LICENSE

commit 0edb42c94bba33757ef33a8b44980905b9bb0aa2
parent 0d4fb95b24e5a380a3951cb8698d38e8c3e69bd4
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Sun, 28 May 2023 05:20:29 -0700

fix read-marker on first row

Diffstat:
Mpkg/web/handlers/api/v1/messages.qtpl | 2+-
Mpkg/web/handlers/api/v1/messages.qtpl.go | 7++++++-
Mpkg/web/handlers/handlers.go | 10++++++++--
3 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/pkg/web/handlers/api/v1/messages.qtpl b/pkg/web/handlers/api/v1/messages.qtpl @@ -318,7 +318,7 @@ Data ChatMessagesData, baseTopBarURL string, readMarkerRendered, isFirstMsg *bool, CSRF, NullUsername string) -%} {%- if e.UserCanSee(*AuthUser) -%} {%- if AuthUser.ChatReadMarkerEnabled && e.CreatedAt.Before(Data.ReadMarker.ReadAt) && !*readMarkerRendered %} - <div class="read-marker read-marker-0"></div> + {%- if idx > 0 -%}<div class="read-marker read-marker-0"></div>{%- endif -%} {%- code *readMarkerRendered = true -%} {%- endif -%} <div id="msgid-{%s e.UUID %}" class="msgidc-{%s e.UUID %}-{%dl e.Rev %} msg diff --git a/pkg/web/handlers/api/v1/messages.qtpl.go b/pkg/web/handlers/api/v1/messages.qtpl.go @@ -702,8 +702,13 @@ func StreamRenderMessage(qw422016 *qt422016.Writer, idx int, e database.ChatMess if AuthUser.ChatReadMarkerEnabled && e.CreatedAt.Before(Data.ReadMarker.ReadAt) && !*readMarkerRendered { //line messages.qtpl:320 qw422016.N().S(` - <div class="read-marker read-marker-0"></div> `) +//line messages.qtpl:321 + if idx > 0 { +//line messages.qtpl:321 + qw422016.N().S(`<div class="read-marker read-marker-0"></div>`) +//line messages.qtpl:321 + } //line messages.qtpl:322 *readMarkerRendered = true diff --git a/pkg/web/handlers/handlers.go b/pkg/web/handlers/handlers.go @@ -5105,6 +5105,7 @@ func ChatStreamMessagesHandler(c echo.Context) error { defer sub.Close() readMarkerRev := 0 + displayReadMarker := false var indicatorSelector bool Loop: @@ -5143,9 +5144,10 @@ Loop: } if topic == readMarkerTopic { - send(fmt.Sprintf(`<style>.read-marker-%d{display:none}</style>`, readMarkerRev)) - send(fmt.Sprintf(`<div class="read-marker read-marker-%d"></div>`, readMarkerRev+1)) + send(fmt.Sprintf(`<style>.read-marker-%d{display:none !important;}</style>`, readMarkerRev)) + send(fmt.Sprintf(`<div class="read-marker read-marker-%d" style="display:none;"></div>`, readMarkerRev+1)) readMarkerRev++ + displayReadMarker = true c.Response().Flush() continue } @@ -5207,6 +5209,10 @@ Loop: renderedMsg := v1.RenderMessage(1, *msg, authUser, data, baseTopBarURL, &readMarkerRendered, &isFirstMsg, csrf, nullUsername) send(renderedMsg) + if displayReadMarker { + send(fmt.Sprintf(`<style>.read-marker-%d{display:block !important;}</style>`, readMarkerRev)) + displayReadMarker = false + } // Sound notifications var newMessageSound, taggedSound, pmSound bool