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:
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