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)
}
// 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
// Other setting types have dedicated service methods
if storeKey != storepb.UserSetting_GENERAL {
return nil, status.Errorf(codes.InvalidArgument, "setting type %s should not be updated via UpdateUserSetting", storeKey.String())
}
existingUserSetting, _ := s.Store.GetUserSetting(ctx, &store.FindUserSetting{
UserID: &userID,
Key: storeKey,
})
generalSetting := &storepb.GeneralUserSetting{}
if existingUserSetting != nil {
// Start with existing general setting values
existingGeneral := existingUserSetting.GetGeneral()
generalSetting = existingUserSetting.GetGeneral()
}
updatedGeneral := &v1pb.UserSetting_GeneralSetting{
MemoVisibility: existingGeneral.GetMemoVisibility(),
Locale: existingGeneral.GetLocale(),
Theme: existingGeneral.GetTheme(),
MemoVisibility: generalSetting.GetMemoVisibility(),
Locale: generalSetting.GetLocale(),
Theme: generalSetting.GetTheme(),
}
// Apply updates for fields specified in the update mask

@ -1,4 +1,6 @@
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;
type ValidTheme = (typeof VALID_THEMES)[number];
@ -6,8 +8,8 @@ type ValidTheme = (typeof VALID_THEMES)[number];
const THEME_CONTENT: Record<ValidTheme, string | null> = {
default: null,
"default-dark": defaultDarkThemeContent,
paper: null,
whitewall: null,
paper: paperThemeContent,
whitewall: whitewallThemeContent,
};
const validateTheme = (theme: string): ValidTheme => {

Loading…
Cancel
Save