diff --git a/api/user_setting.go b/api/user_setting.go index 5bcac97d..01cc4287 100644 --- a/api/user_setting.go +++ b/api/user_setting.go @@ -15,9 +15,7 @@ const ( // UserSettingAppearanceKey is the key type for user appearance. UserSettingAppearanceKey UserSettingKey = "appearance" // UserSettingMemoVisibilityKey is the key type for user preference memo default visibility. - UserSettingMemoVisibilityKey UserSettingKey = "memoVisibility" - // UserSettingResourceVisibilityKey is the key type for user preference resource default visibility. - UserSettingResourceVisibilityKey UserSettingKey = "resourceVisibility" + UserSettingMemoVisibilityKey UserSettingKey = "memo-visibility" ) // String returns the string format of UserSettingKey type. @@ -28,18 +26,15 @@ func (key UserSettingKey) String() string { case UserSettingAppearanceKey: return "appearance" case UserSettingMemoVisibilityKey: - return "memoVisibility" - case UserSettingResourceVisibilityKey: - return "resourceVisibility" + return "memo-visibility" } return "" } var ( - UserSettingLocaleValue = []string{"en", "zh", "vi", "fr", "nl", "sv", "de", "es", "uk", "ru", "it", "hant", "tr", "ko", "sl"} - UserSettingAppearanceValue = []string{"system", "light", "dark"} - UserSettingMemoVisibilityValue = []Visibility{Private, Protected, Public} - UserSettingResourceVisibilityValue = []Visibility{Private, Protected, Public} + UserSettingLocaleValue = []string{"en", "zh", "vi", "fr", "nl", "sv", "de", "es", "uk", "ru", "it", "hant", "tr", "ko", "sl"} + UserSettingAppearanceValue = []string{"system", "light", "dark"} + UserSettingMemoVisibilityValue = []Visibility{Private, Protected, Public} ) type UserSetting struct { @@ -83,15 +78,6 @@ func (upsert UserSettingUpsert) Validate() error { if !slices.Contains(UserSettingMemoVisibilityValue, memoVisibilityValue) { return fmt.Errorf("invalid user setting memo visibility value") } - } else if upsert.Key == UserSettingResourceVisibilityKey { - resourceVisibilityValue := Private - err := json.Unmarshal([]byte(upsert.Value), &resourceVisibilityValue) - if err != nil { - return fmt.Errorf("failed to unmarshal user setting resource visibility value") - } - if !slices.Contains(UserSettingResourceVisibilityValue, resourceVisibilityValue) { - return fmt.Errorf("invalid user setting resource visibility value") - } } else { return fmt.Errorf("invalid user setting key") } diff --git a/server/version/version.go b/server/version/version.go index 41ded3c0..bf27cabf 100644 --- a/server/version/version.go +++ b/server/version/version.go @@ -12,7 +12,7 @@ import ( var Version = "0.11.2" // DevVersion is the service current development version. -var DevVersion = "0.11.2" +var DevVersion = "0.12.0" func GetCurrentVersion(mode string) string { if mode == "dev" || mode == "demo" { diff --git a/store/db/migration/prod/0.12/00__user_setting.sql b/store/db/migration/prod/0.12/00__user_setting.sql new file mode 100644 index 00000000..aca6f1d8 --- /dev/null +++ b/store/db/migration/prod/0.12/00__user_setting.sql @@ -0,0 +1,15 @@ +INSERT INTO + user_setting (user_id, key, value) +SELECT + user_id, + 'memo-visibility', + value +FROM + user_setting +WHERE + key = 'memoVisibility'; + +DELETE FROM + user_setting +WHERE + key = 'memoVisibility'; \ No newline at end of file diff --git a/web/src/components/Settings/PreferencesSection.tsx b/web/src/components/Settings/PreferencesSection.tsx index f919d169..e4b57d50 100644 --- a/web/src/components/Settings/PreferencesSection.tsx +++ b/web/src/components/Settings/PreferencesSection.tsx @@ -33,11 +33,7 @@ const PreferencesSection = () => { }; const handleDefaultMemoVisibilityChanged = async (value: string) => { - await userStore.upsertUserSetting("memoVisibility", value); - }; - - const handleDefaultResourceVisibilityChanged = async (value: string) => { - await userStore.upsertUserSetting("resourceVisibility", value); + await userStore.upsertUserSetting("memo-visibility", value); }; const handleDoubleClickEnabledChanged = (event: React.ChangeEvent) => { @@ -78,25 +74,6 @@ const PreferencesSection = () => { ))} -
- {t("setting.preference-section.default-resource-visibility")} - -
-
{t("setting.preference-section.daily-review-time-offset")} diff --git a/web/src/store/module/user.ts b/web/src/store/module/user.ts index 278a71fe..eb971deb 100644 --- a/web/src/store/module/user.ts +++ b/web/src/store/module/user.ts @@ -1,3 +1,4 @@ +import { camelCase } from "lodash-es"; import store, { useAppSelector } from ".."; import * as api from "../../helpers/api"; import * as storage from "../../helpers/storage"; @@ -10,7 +11,6 @@ const defaultSetting: Setting = { locale: "en", appearance: getSystemColorScheme(), memoVisibility: "PRIVATE", - resourceVisibility: "PRIVATE", }; const defaultLocalSetting: LocalSetting = { @@ -30,7 +30,7 @@ export const convertResponseModelUser = (user: User): User => { if (user.userSettingList) { for (const userSetting of user.userSettingList) { - (setting as any)[userSetting.key] = JSON.parse(userSetting.value); + (setting as any)[camelCase(userSetting.key)] = JSON.parse(userSetting.value); } } @@ -120,7 +120,7 @@ export const useUserStore = () => { return undefined; } }, - upsertUserSetting: async (key: keyof Setting, value: any) => { + upsertUserSetting: async (key: string, value: any) => { await api.upsertUserSetting({ key: key as any, value: JSON.stringify(value), diff --git a/web/src/types/modules/setting.d.ts b/web/src/types/modules/setting.d.ts index 18c15cc8..087336df 100644 --- a/web/src/types/modules/setting.d.ts +++ b/web/src/types/modules/setting.d.ts @@ -4,7 +4,6 @@ interface Setting { locale: Locale; appearance: Appearance; memoVisibility: Visibility; - resourceVisibility: Visibility; } interface LocalSetting { @@ -23,16 +22,11 @@ interface UserAppearanceSetting { } interface UserMemoVisibilitySetting { - key: "memoVisibility"; + key: "memo-visibility"; value: Visibility; } -interface UserResourceVisibilitySetting { - key: "resourceVisibility"; - value: Visibility; -} - -type UserSetting = UserLocaleSetting | UserAppearanceSetting | UserMemoVisibilitySetting | UserResourceVisibilitySetting; +type UserSetting = UserLocaleSetting | UserAppearanceSetting | UserMemoVisibilitySetting; interface UserSettingUpsert { key: keyof Setting;