summaryrefslogtreecommitdiff
path: root/internal/web/thread.go
diff options
context:
space:
mode:
authorLibravatar tobi <31960611+tsmethurst@users.noreply.github.com>2024-03-25 18:32:24 +0100
committerLibravatar GitHub <noreply@github.com>2024-03-25 17:32:24 +0000
commit8953f57d887c060c3b58f83c38d2010d27a45ef3 (patch)
tree05f8b1157a86afaa3ed0d6d0b87c9d0d37030362 /internal/web/thread.go
parent[feature] Add healthcheck endpoints `/livez` and `/readyz` (#2783) (diff)
downloadgotosocial-8953f57d887c060c3b58f83c38d2010d27a45ef3.tar.xz
[feature] User-selectable preset CSS themes for accounts (#2777)
* [feature] User-selectable preset themes * docs, more theme stuff * lint, tests * fix css name * correct some little issues * add another theme * fix poll background * okay last theme i swear * make retrieval of apimodel themes more conventional * preallocate stylesheet slices
Diffstat (limited to 'internal/web/thread.go')
-rw-r--r--internal/web/thread.go41
1 files changed, 32 insertions, 9 deletions
diff --git a/internal/web/thread.go b/internal/web/thread.go
index 4dcd1d221..ffec565e6 100644
--- a/internal/web/thread.go
+++ b/internal/web/thread.go
@@ -138,16 +138,39 @@ func (m *Module) threadGETHandler(c *gin.Context) {
return
}
+ // Prepare stylesheets for thread.
+ stylesheets := make([]string, 0, 5)
+
+ // Basic thread stylesheets.
+ stylesheets = append(
+ stylesheets,
+ []string{
+ cssFA,
+ cssStatus,
+ cssThread,
+ }...,
+ )
+
+ // User-selected theme if set.
+ if theme := targetAccount.Theme; theme != "" {
+ stylesheets = append(
+ stylesheets,
+ themesPathPrefix+"/"+theme,
+ )
+ }
+
+ // Custom CSS for this user last in cascade.
+ stylesheets = append(
+ stylesheets,
+ "/@"+targetAccount.Username+"/custom.css",
+ )
+
page := apiutil.WebPage{
- Template: "thread.tmpl",
- Instance: instance,
- OGMeta: apiutil.OGBase(instance).WithStatus(status),
- Stylesheets: []string{
- cssFA, cssStatus, cssThread,
- // Custom CSS for this user last in cascade.
- "/@" + targetUsername + "/custom.css",
- },
- Javascript: []string{jsFrontend},
+ Template: "thread.tmpl",
+ Instance: instance,
+ OGMeta: apiutil.OGBase(instance).WithStatus(status),
+ Stylesheets: stylesheets,
+ Javascript: []string{jsFrontend},
Extra: map[string]any{
"status": status,
"context": context,