fix update theme not saving (#5012)

pull/5015/head
varsnotwars 3 months ago committed by GitHub
parent 01d3f2f86c
commit fbcdf0fba7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -372,30 +372,27 @@ func (s *APIV1Service) UpdateUserSetting(ctx context.Context, request *v1pb.Upda
return nil, status.Errorf(codes.InvalidArgument, "invalid setting key: %v", err) return nil, status.Errorf(codes.InvalidArgument, "invalid setting key: %v", err)
} }
// get existing user setting
existingUserSetting, err := s.Store.GetUserSetting(ctx, &store.FindUserSetting{
UserID: &userID,
Key: storeKey,
})
if err != nil {
return nil, err
}
if existingUserSetting == nil {
return nil, status.Errorf(codes.NotFound, "%s not found", storeKey.String())
}
// Only GENERAL settings are supported via UpdateUserSetting // Only GENERAL settings are supported via UpdateUserSetting
// Other setting types have dedicated service methods // Other setting types have dedicated service methods
if storeKey != storepb.UserSetting_GENERAL { if storeKey != storepb.UserSetting_GENERAL {
return nil, status.Errorf(codes.InvalidArgument, "setting type %s should not be updated via UpdateUserSetting", storeKey.String()) return nil, status.Errorf(codes.InvalidArgument, "setting type %s should not be updated via UpdateUserSetting", storeKey.String())
} }
// Start with existing general setting values existingUserSetting, _ := s.Store.GetUserSetting(ctx, &store.FindUserSetting{
existingGeneral := existingUserSetting.GetGeneral() UserID: &userID,
Key: storeKey,
})
generalSetting := &storepb.GeneralUserSetting{}
if existingUserSetting != nil {
// Start with existing general setting values
generalSetting = existingUserSetting.GetGeneral()
}
updatedGeneral := &v1pb.UserSetting_GeneralSetting{ updatedGeneral := &v1pb.UserSetting_GeneralSetting{
MemoVisibility: existingGeneral.GetMemoVisibility(), MemoVisibility: generalSetting.GetMemoVisibility(),
Locale: existingGeneral.GetLocale(), Locale: generalSetting.GetLocale(),
Theme: existingGeneral.GetTheme(), Theme: generalSetting.GetTheme(),
} }
// Apply updates for fields specified in the update mask // Apply updates for fields specified in the update mask

@ -1,4 +1,6 @@
import defaultDarkThemeContent from "../themes/default-dark.css?raw"; import defaultDarkThemeContent from "../themes/default-dark.css?raw";
import paperThemeContent from "../themes/paper.css?raw";
import whitewallThemeContent from "../themes/whitewall.css?raw";
const VALID_THEMES = ["default", "default-dark", "paper", "whitewall"] as const; const VALID_THEMES = ["default", "default-dark", "paper", "whitewall"] as const;
type ValidTheme = (typeof VALID_THEMES)[number]; type ValidTheme = (typeof VALID_THEMES)[number];
@ -6,8 +8,8 @@ type ValidTheme = (typeof VALID_THEMES)[number];
const THEME_CONTENT: Record<ValidTheme, string | null> = { const THEME_CONTENT: Record<ValidTheme, string | null> = {
default: null, default: null,
"default-dark": defaultDarkThemeContent, "default-dark": defaultDarkThemeContent,
paper: null, paper: paperThemeContent,
whitewall: null, whitewall: whitewallThemeContent,
}; };
const validateTheme = (theme: string): ValidTheme => { const validateTheme = (theme: string): ValidTheme => {

Loading…
Cancel
Save