From 8953f57d887c060c3b58f83c38d2010d27a45ef3 Mon Sep 17 00:00:00 2001 From: tobi <31960611+tsmethurst@users.noreply.github.com> Date: Mon, 25 Mar 2024 18:32:24 +0100 Subject: [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 --- internal/web/profile.go | 42 +++++++++++++++++++++++++++++++++--------- 1 file changed, 33 insertions(+), 9 deletions(-) (limited to 'internal/web/profile.go') diff --git a/internal/web/profile.go b/internal/web/profile.go index b629c98b9..a4809a72d 100644 --- a/internal/web/profile.go +++ b/internal/web/profile.go @@ -140,16 +140,40 @@ func (m *Module) profileGETHandler(c *gin.Context) { return } + // Prepare stylesheets for profile. + stylesheets := make([]string, 0, 6) + + // Basic profile stylesheets. + stylesheets = append( + stylesheets, + []string{ + cssFA, + cssStatus, + cssThread, + cssProfile, + }..., + ) + + // 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: "profile.tmpl", - Instance: instance, - OGMeta: apiutil.OGBase(instance).WithAccount(targetAccount), - Stylesheets: []string{ - cssFA, cssStatus, cssThread, cssProfile, - // Custom CSS for this user last in cascade. - "/@" + targetAccount.Username + "/custom.css", - }, - Javascript: []string{jsFrontend}, + Template: "profile.tmpl", + Instance: instance, + OGMeta: apiutil.OGBase(instance).WithAccount(targetAccount), + Stylesheets: stylesheets, + Javascript: []string{jsFrontend}, Extra: map[string]any{ "account": targetAccount, "rssFeed": rssFeed, -- cgit v1.2.3