diff options
Diffstat (limited to 'internal/web/profile.go')
-rw-r--r-- | internal/web/profile.go | 42 |
1 files changed, 33 insertions, 9 deletions
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, |