commit 11c057fa24ac293f5ed1db4c4b157c91729ebe46
parent 88b76fd29140797c374cab740b6a454ef11d1e0f
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Mon, 15 Jan 2024 04:08:09 -0800
improve "stop loading icon" to not open a new tab
Diffstat:
2 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/pkg/web/handlers/api/v1/chat.go b/pkg/web/handlers/api/v1/chat.go
@@ -439,11 +439,12 @@ func ChatStreamMenuHandler(c echo.Context) error {
var menuID int
var once utils.Once
+ selfRefreshLoadingIconTopic := "refresh_loading_icon_" + string(authUser.Username)
selfRefreshTopic := "refresh_" + string(authUser.Username)
sub := database.MsgPubSub.Subscribe([]string{
database.RefreshTopic,
selfRefreshTopic,
- "refresh_loading_icon_" + string(authUser.Username)})
+ selfRefreshLoadingIconTopic})
defer sub.Close()
send(GenerateStyle(authUser, ChatMessagesData{}))
@@ -454,6 +455,10 @@ Loop:
case <-once.Now():
case <-time.After(5 * time.Second):
case p := <-sub.ReceiveCh():
+ if p.Topic == selfRefreshLoadingIconTopic {
+ send(hutils.MetaRefresh(1))
+ return nil
+ }
if p.Msg.Typ == database.ForceRefresh || p.Topic == selfRefreshTopic {
send(hutils.MetaRefreshNow())
return nil
@@ -486,5 +491,5 @@ func ChatStreamMessagesRefreshHandler(c echo.Context) error {
authUser := c.Get("authUser").(*database.User)
database.MsgPubSub.Pub("refresh_loading_icon_"+string(authUser.Username), database.ChatMessageType{Typ: database.ForceRefresh})
poker.PubSub.Pub("refresh_loading_icon_"+string(authUser.Username), poker.RefreshLoadingIconEvent{})
- return c.NoContent(http.StatusOK)
+ return hutils.RedirectReferer(c)
}
diff --git a/pkg/web/public/views/pages/chat-controls.gohtml b/pkg/web/public/views/pages/chat-controls.gohtml
@@ -20,7 +20,7 @@
<body>
<div style="margin: 0 15px;">
<a href="/api/v1/chat/messages/{{ .Data.RoomName }}{{ if .Data.IsStream }}/stream{{ end }}{{ .Data.ChatQueryParams }}" target="iframe2" class="btn btn-xs btn-secondary" title="Refresh messages">↻</a>
- {{ if .Data.IsStream }}<a href="/api/v1/chat/messages/{{ .Data.RoomName }}/refresh{{ .Data.ChatQueryParams }}" target="_blank" class="btn btn-xs btn-secondary" title="Stop tab loading icon">□</a>{{ end }}
+ {{ if .Data.IsStream }}<a href="/api/v1/chat/messages/{{ .Data.RoomName }}/refresh{{ .Data.ChatQueryParams }}" class="btn btn-xs btn-secondary" title="Stop tab loading icon">□</a>{{ end }}
<a href="/chat/{{ .Data.RoomName }}/archive" rel="noopener noreferrer" target="_blank">{{ t "Read all messages" . }}</a>
{{ if .Data.ToggleMentions }}
<a href="/chat/{{ .Data.RoomName }}?mentionsOnly=0" class="btn btn-xs btn-success" title="Only Mentions are displayed" target="_top">@</a>