diff --git a/server/router/api/v1/user_service.go b/server/router/api/v1/user_service.go index e00d69a4d..b963880a0 100644 --- a/server/router/api/v1/user_service.go +++ b/server/router/api/v1/user_service.go @@ -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()) } - // Start with existing general setting values - existingGeneral := existingUserSetting.GetGeneral() + existingUserSetting, _ := s.Store.GetUserSetting(ctx, &store.FindUserSetting{ + UserID: &userID, + Key: storeKey, + }) + + generalSetting := &storepb.GeneralUserSetting{} + if existingUserSetting != nil { + // Start with existing general setting values + 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 diff --git a/web/src/utils/theme.ts b/web/src/utils/theme.ts index aa1177e8c..75570b0a6 100644 --- a/web/src/utils/theme.ts +++ b/web/src/utils/theme.ts @@ -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 = { default: null, "default-dark": defaultDarkThemeContent, - paper: null, - whitewall: null, + paper: paperThemeContent, + whitewall: whitewallThemeContent, }; const validateTheme = (theme: string): ValidTheme => {