mirror of
https://github.com/usememos/memos.git
synced 2025-12-17 22:28:52 +08:00
fix update theme not saving
This commit is contained in:
parent
01d3f2f86c
commit
58d44da1e9
2 changed files with 18 additions and 19 deletions
|
|
@ -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…
Add table
Reference in a new issue