commit 81934a72df4cde0e525837c666943a3684b230cf
parent dc2e689b4c420dd2e6bfa204cd4c3703b6fd31b9
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Wed, 11 Jan 2023 16:04:22 -0800
improve rtuto UX
Diffstat:
3 files changed, 20 insertions(+), 4 deletions(-)
diff --git a/pkg/web/handlers/api/v1/data.go b/pkg/web/handlers/api/v1/data.go
@@ -34,6 +34,7 @@ type chatMessagesData struct {
ReadMarker database.ChatReadMarker
OfficialRooms []database.ChatRoomAug
SubscribedRooms []database.ChatRoomAug
+ ForceManualRefresh bool
}
func (c chatMessagesData) MarshalJSON() ([]byte, error) {
diff --git a/pkg/web/handlers/api/v1/handlers.go b/pkg/web/handlers/api/v1/handlers.go
@@ -121,6 +121,12 @@ func ChatMessagesHandler(c echo.Context) error {
database.DB.Table("chat_read_records").Where("user_id = ? AND room_id = ?", authUser.ID, room.ID).Update("read_at", time.Now())
var data chatMessagesData
+
+ if ((room.IsOfficialRoom() || (room.IsListed && !room.IsProtected())) && !authUser.TutorialCompleted()) &&
+ authUser.GeneralMessagesCount > 0 {
+ data.ForceManualRefresh = true
+ }
+
data.ManualRefreshTimeout = authUser.RefreshRate + 25
data.DateFormat = authUser.GetDateFormat()
data.IsModerator = authUser.IsModerator()
diff --git a/pkg/web/public/views/pages/chat-messages.gohtml b/pkg/web/public/views/pages/chat-messages.gohtml
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<title></title>
- {{- if not .Data.PreventRefresh -}}<meta http-equiv="refresh" content="{{ .AuthUser.RefreshRate }}">{{- end -}}
+ {{- if and (not .Data.PreventRefresh) (not .Data.ForceManualRefresh) -}}<meta http-equiv="refresh" content="{{ .AuthUser.RefreshRate }}">{{- end -}}
{{- if .AuthUser.CollectMetadata -}}<link rel="stylesheet" type="text/css" href="/public/css/meta.css?v={{ .VERSION }}" />{{- end -}}
<style>
/* http://meyerweb.com/eric/tools/css/reset/
@@ -106,14 +106,16 @@
}
.k_btn::after { content: "k"; }
#manualrefresh {
+ {{ if not .Data.ForceManualRefresh }}
+ top: -200%;
+ animation: timeout_messages {{ .Data.ManualRefreshTimeout }}s forwards;
+ {{ end }}
color: #bf2718;
display: block;
position: fixed;
text-align: center;
left: calc(50% - 200px);
width: 400px;
- top: -200%;
- animation: timeout_messages {{ .Data.ManualRefreshTimeout }}s forwards;
z-index: 2;
background-color: #500000;
border: 2px solid #ff0000;
@@ -145,7 +147,14 @@
</head>
<body>
- {{ if not .Data.PreventRefresh }}
+ {{ if .Data.ForceManualRefresh }}
+ <div id="manualrefresh">
+ <h4>Manual refresh required1</h4>
+ <form method="get" action="/chat/{{ $.Data.RoomName }}" target="_top">
+ <input type="submit" value="Reload" />
+ </form>
+ </div>
+ {{ else if not .Data.PreventRefresh }}
<div id="manualrefresh">
<h4>Manual refresh required</h4>
<form method="get">