dkforest

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

commit 57634d74676316ca61a769841e211e115290776e
parent 022ecc812e0e4f27f90408affee56d215446eaa7
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Sun, 28 May 2023 22:59:20 -0700

fix read marker when on top on page load

Diffstat:
Mpkg/web/handlers/api/v1/messages.qtpl | 2+-
Mpkg/web/handlers/api/v1/messages.qtpl.go | 9++++++---
Mpkg/web/handlers/handlers.go | 5+++++
3 files changed, 12 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 %} - {%- if idx > 0 -%}<div class="read-marker read-marker-0"></div>{%- endif -%} + <div class="read-marker read-marker-0"{% if idx == 0 %} style="display:none;"{% endif %}></div> {%- 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,13 +702,16 @@ 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"`) //line messages.qtpl:321 - if idx > 0 { + if idx == 0 { //line messages.qtpl:321 - qw422016.N().S(`<div class="read-marker read-marker-0"></div>`) + qw422016.N().S(` style="display:none;"`) //line messages.qtpl:321 } +//line messages.qtpl:321 + qw422016.N().S(`></div> +`) //line messages.qtpl:322 *readMarkerRendered = true diff --git a/pkg/web/handlers/handlers.go b/pkg/web/handlers/handlers.go @@ -5107,6 +5107,11 @@ func ChatStreamMessagesHandler(c echo.Context) error { readMarkerRev := 0 displayReadMarker := false + fstMsgTsRound := msgs[0].CreatedAt.Round(time.Second) + readMarkerTsRound := data.ReadMarker.ReadAt.Round(time.Second) + if fstMsgTsRound.Before(readMarkerTsRound) || fstMsgTsRound.Equal(readMarkerTsRound) { + displayReadMarker = true + } var indicatorSelector bool Loop: for {