dkforest

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

commit d320642a138e14fe94b6c4afb4bfc0ca9b0d6927
parent 0067f5fedbd0edca1c117ca1703358cf5ba08327
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Thu, 28 Dec 2023 22:31:06 -0500

stop loading icon to work with poker page as well

Diffstat:
Mpkg/web/handlers/api/v1/chat.go | 2++
Mpkg/web/handlers/poker.go | 17++++++++++++++---
2 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/pkg/web/handlers/api/v1/chat.go b/pkg/web/handlers/api/v1/chat.go @@ -8,6 +8,7 @@ import ( "dkforest/pkg/managers" "dkforest/pkg/pubsub" "dkforest/pkg/utils" + "dkforest/pkg/web/handlers/poker" "dkforest/pkg/web/handlers/streamModals" "dkforest/pkg/web/handlers/usersStreamsManager" hutils "dkforest/pkg/web/handlers/utils" @@ -477,5 +478,6 @@ Loop: 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), database.ChatMessageType{Typ: database.ForceRefresh}) return c.NoContent(http.StatusOK) } diff --git a/pkg/web/handlers/poker.go b/pkg/web/handlers/poker.go @@ -425,13 +425,18 @@ func PokerStreamHandler(c echo.Context) error { } defer usersStreamsManager.Inst.Remove(authUser.ID, roomTopic) - sub := poker.PubSub.Subscribe([]string{roomTopic, roomUserTopic}) + sub := poker.PubSub.Subscribe([]string{roomTopic, roomUserTopic, "refresh_loading_icon_" + string(authUser.Username)}) defer sub.Close() send(poker.BuildBaseHtml(g, authUser, chatRoomSlug)) c.Response().Flush() loop(quit, sub, func(topic string, payload any) error { + switch payload.(type) { + case database.ChatMessageType: + send(`<meta http-equiv="refresh" content="1" />`) + return BreakLoopErr + } send(poker.BuildPayloadHtml(g, authUser, payload)) c.Response().Flush() return nil @@ -449,7 +454,7 @@ func PokerLogsHandler(c echo.Context) error { return c.Redirect(http.StatusFound, "/") } roomLogsTopic := roomID.LogsTopic() - sub := poker.PubSub.Subscribe([]string{roomLogsTopic}) + sub := poker.PubSub.Subscribe([]string{roomLogsTopic, "refresh_loading_icon_" + string(authUser.Username)}) defer sub.Close() quit := hutils.SetStreaming(c) @@ -468,6 +473,9 @@ func PokerLogsHandler(c echo.Context) error { loop(quit, sub, func(topic string, payload any) error { switch evt := payload.(type) { + case database.ChatMessageType: + send(`<meta http-equiv="refresh" content="1" />`) + return BreakLoopErr case poker.LogEvent: send(fmt.Sprintf(`<div>%s</div>`, evt.Message)) c.Response().Flush() @@ -488,7 +496,7 @@ func PokerBetHandler(c echo.Context) error { } roomUserTopic := roomID.UserTopic(authUser.ID) - sub := poker.PubSub.Subscribe([]string{roomID.Topic(), roomUserTopic}) + sub := poker.PubSub.Subscribe([]string{roomID.Topic(), roomUserTopic, "refresh_loading_icon_" + string(authUser.Username)}) defer sub.Close() quit := hutils.SetStreaming(c) @@ -589,6 +597,9 @@ func PokerBetHandler(c echo.Context) error { loop(quit, sub, func(topic string, payload any) error { switch payload.(type) { + case database.ChatMessageType: + send(`<meta http-equiv="refresh" content="1" />`) + return BreakLoopErr case poker.RefreshButtonsEvent: send(fmt.Sprintf(`<meta http-equiv="refresh" content="0" />`)) c.Response().Flush()