mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-10-31 22:32:25 -05: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:
parent
b7b42e832a
commit
8953f57d88
32 changed files with 1230 additions and 28 deletions
|
|
@ -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 {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue