mirror of
https://github.com/superseriousbusiness/gotosocial
synced 2025-06-05 21:59:39 +02:00
[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
This commit is contained in:
@@ -256,6 +256,22 @@ func (p *Processor) Update(ctx context.Context, account *gtsmodel.Account, form
|
||||
}
|
||||
}
|
||||
|
||||
if form.Theme != nil {
|
||||
theme := *form.Theme
|
||||
if theme == "" {
|
||||
// Empty is easy, just clear this.
|
||||
account.Settings.Theme = ""
|
||||
} else {
|
||||
// Theme was provided, check
|
||||
// against known available themes.
|
||||
if _, ok := p.themes.ByFileName[theme]; !ok {
|
||||
err := fmt.Errorf("theme %s not available on this instance, see /api/v1/accounts/themes for available themes", theme)
|
||||
return nil, gtserror.NewErrorBadRequest(err, err.Error())
|
||||
}
|
||||
account.Settings.Theme = theme
|
||||
}
|
||||
}
|
||||
|
||||
if form.CustomCSS != nil {
|
||||
customCSS := *form.CustomCSS
|
||||
if err := validate.CustomCSS(customCSS); err != nil {
|
||||
|
Reference in New Issue
Block a user