dkforest

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

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:
Mpkg/web/handlers/api/v1/chat.go | 9+++++++--
Mpkg/web/public/views/pages/chat-controls.gohtml | 2+-
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">&#8635;</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">&#9633;</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">&#9633;</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>