ydb-embedded-ui 4.27.0 → 4.27.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md
CHANGED
@@ -1,5 +1,12 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## [4.27.1](https://github.com/ydb-platform/ydb-embedded-ui/compare/v4.27.0...v4.27.1) (2024-01-10)
|
4
|
+
|
5
|
+
|
6
|
+
### Bug Fixes
|
7
|
+
|
8
|
+
* enable extract and set user settings manually ([#629](https://github.com/ydb-platform/ydb-embedded-ui/issues/629)) ([5eecd58](https://github.com/ydb-platform/ydb-embedded-ui/commit/5eecd58249688b4a8b3ecad766564f7b404e839c))
|
9
|
+
|
3
10
|
## [4.27.0](https://github.com/ydb-platform/ydb-embedded-ui/compare/v4.26.0...v4.27.0) (2023-12-28)
|
4
11
|
|
5
12
|
|
@@ -23,7 +23,7 @@ export type SettingsObject = Record<string, unknown>;
|
|
23
23
|
const USE_LOCAL_STORAGE_FOR_SETTINGS_KEY = 'useLocalStorageForSettings';
|
24
24
|
|
25
25
|
/** User settings keys and their default values */
|
26
|
-
const DEFAULT_USER_SETTINGS: SettingsObject = {
|
26
|
+
export const DEFAULT_USER_SETTINGS: SettingsObject = {
|
27
27
|
[THEME_KEY]: 'system',
|
28
28
|
[LANGUAGE_KEY]: undefined,
|
29
29
|
[INVERTED_DISKS_KEY]: false,
|
@@ -59,20 +59,13 @@ class SettingsManager {
|
|
59
59
|
}
|
60
60
|
}
|
61
61
|
|
62
|
-
/**
|
63
|
-
* User settings - settings stored in LS or external store
|
64
|
-
*/
|
65
|
-
getUserSettings() {
|
66
|
-
return this.extractSettingsFromLS();
|
67
|
-
}
|
68
|
-
|
69
62
|
/**
|
70
63
|
* Returns parsed settings value.
|
71
64
|
* If value cannot be parsed, returns initially stored string.
|
72
65
|
* If there is no value, return default value
|
73
66
|
*/
|
74
67
|
readUserSettingsValue(key: string, defaultValue?: unknown) {
|
75
|
-
return this.readValueFromLS(key) ?? defaultValue
|
68
|
+
return this.readValueFromLS(key) ?? defaultValue;
|
76
69
|
}
|
77
70
|
|
78
71
|
/**
|
@@ -82,8 +75,11 @@ class SettingsManager {
|
|
82
75
|
return this.setValueToLS(key, value);
|
83
76
|
}
|
84
77
|
|
85
|
-
|
86
|
-
|
78
|
+
/**
|
79
|
+
* Extract values by provided settings object
|
80
|
+
*/
|
81
|
+
extractSettingsFromLS = (settings: SettingsObject) => {
|
82
|
+
return Object.entries(settings).reduce<SettingsObject>((acc, [key, value]) => {
|
87
83
|
acc[key] = this.readUserSettingsValue(key, value);
|
88
84
|
return acc;
|
89
85
|
}, {});
|
@@ -2,7 +2,7 @@ import type {Reducer} from 'redux';
|
|
2
2
|
import type {ThunkAction} from 'redux-thunk';
|
3
3
|
|
4
4
|
import '../../../services/api';
|
5
|
-
import {settingsManager} from '../../../services/settings';
|
5
|
+
import {DEFAULT_USER_SETTINGS, SettingsObject, settingsManager} from '../../../services/settings';
|
6
6
|
|
7
7
|
import type {RootState} from '..';
|
8
8
|
import type {
|
@@ -15,13 +15,14 @@ import type {
|
|
15
15
|
|
16
16
|
const CHANGE_PROBLEM_FILTER = 'settings/CHANGE_PROBLEM_FILTER';
|
17
17
|
export const SET_SETTING_VALUE = 'settings/SET_VALUE';
|
18
|
+
export const SET_USER_SETTINGS = 'settings/SET_USER_SETTINGS';
|
18
19
|
|
19
20
|
export const ProblemFilterValues = {
|
20
21
|
ALL: 'All',
|
21
22
|
PROBLEMS: 'With problems',
|
22
23
|
} as const;
|
23
24
|
|
24
|
-
const userSettings = settingsManager.
|
25
|
+
const userSettings = settingsManager.extractSettingsFromLS(DEFAULT_USER_SETTINGS);
|
25
26
|
const systemSettings = window.systemSettings || {};
|
26
27
|
|
27
28
|
export const initialState = {
|
@@ -49,7 +50,15 @@ const settings: Reducer<SettingsState, SettingsAction> = (state = initialState,
|
|
49
50
|
userSettings: newSettings,
|
50
51
|
};
|
51
52
|
}
|
52
|
-
|
53
|
+
case SET_USER_SETTINGS: {
|
54
|
+
return {
|
55
|
+
...state,
|
56
|
+
userSettings: {
|
57
|
+
...state.userSettings,
|
58
|
+
...action.data,
|
59
|
+
},
|
60
|
+
};
|
61
|
+
}
|
53
62
|
default:
|
54
63
|
return state;
|
55
64
|
}
|
@@ -66,6 +75,10 @@ export const setSettingValue = (
|
|
66
75
|
};
|
67
76
|
};
|
68
77
|
|
78
|
+
export const setUserSettings = (data: SettingsObject) => {
|
79
|
+
return {type: SET_USER_SETTINGS, data} as const;
|
80
|
+
};
|
81
|
+
|
69
82
|
export const getSettingValue = (state: SettingsRootStateSlice, name: string) => {
|
70
83
|
return state.settings.userSettings[name];
|
71
84
|
};
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import type {ValueOf} from '../../../types/common';
|
2
2
|
import type {SettingsObject} from '../../../services/settings';
|
3
|
-
import {changeFilter, ProblemFilterValues, SET_SETTING_VALUE} from './settings';
|
3
|
+
import {changeFilter, setUserSettings, ProblemFilterValues, SET_SETTING_VALUE} from './settings';
|
4
4
|
|
5
5
|
export type ProblemFilterValue = ValueOf<typeof ProblemFilterValues>;
|
6
6
|
|
@@ -15,7 +15,10 @@ export type SetSettingValueAction = {
|
|
15
15
|
data: {name: string; value: unknown};
|
16
16
|
};
|
17
17
|
|
18
|
-
export type SettingsAction =
|
18
|
+
export type SettingsAction =
|
19
|
+
| ReturnType<typeof changeFilter>
|
20
|
+
| ReturnType<typeof setUserSettings>
|
21
|
+
| SetSettingValueAction;
|
19
22
|
|
20
23
|
export interface SettingsRootStateSlice {
|
21
24
|
settings: SettingsState;
|