ydb-embedded-ui 12.19.1 → 12.20.0
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/dist/components/DiskStateProgressBar/DiskStateProgressBar.js +2 -2
- package/dist/components/DiskStateProgressBar/DiskStateProgressBar.js.map +1 -1
- package/dist/components/FullNodeViewer/i18n/index.d.ts +1 -1
- package/dist/components/JsonViewer/JsonViewer.js +2 -2
- package/dist/components/JsonViewer/JsonViewer.js.map +1 -1
- package/dist/components/NetworkTable/hooks.js +3 -3
- package/dist/components/NetworkTable/hooks.js.map +1 -1
- package/dist/components/PaginatedTable/ResizeablePaginatedTable.js +5 -1
- package/dist/components/PaginatedTable/ResizeablePaginatedTable.js.map +1 -1
- package/dist/components/ResizeableDataTable/ResizeableDataTable.js +2 -2
- package/dist/components/ResizeableDataTable/ResizeableDataTable.js.map +1 -1
- package/dist/components/VDiskInfo/i18n/index.d.ts +1 -1
- package/dist/components/nodesColumns/i18n/index.d.ts +1 -1
- package/dist/containers/App/Providers.js +2 -2
- package/dist/containers/App/Providers.js.map +1 -1
- package/dist/containers/AppWithClusters/utils/useAdditionalTenantsProps.js +2 -2
- package/dist/containers/AppWithClusters/utils/useAdditionalTenantsProps.js.map +1 -1
- package/dist/containers/AsideNavigation/AsideNavigation.js +2 -2
- package/dist/containers/AsideNavigation/AsideNavigation.js.map +1 -1
- package/dist/containers/AsideNavigation/InformationPopup/InformationPopup.js +2 -2
- package/dist/containers/AsideNavigation/InformationPopup/InformationPopup.js.map +1 -1
- package/dist/containers/Cluster/ClusterOverview/ClusterOverview.js +2 -2
- package/dist/containers/Cluster/ClusterOverview/ClusterOverview.js.map +1 -1
- package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsNetwork.js +2 -2
- package/dist/containers/Cluster/ClusterOverview/components/ClusterMetricsNetwork.js.map +1 -1
- package/dist/containers/Header/Header.js +1 -5
- package/dist/containers/Header/Header.js.map +1 -1
- package/dist/containers/Storage/utils/index.d.ts +1 -1
- package/dist/containers/Tablets/i18n/index.d.ts +1 -1
- package/dist/containers/Tenant/Diagnostics/HotKeys/HotKeys.js +3 -2
- package/dist/containers/Tenant/Diagnostics/HotKeys/HotKeys.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/Overview/AsyncReplicationInfo/Credentials.d.ts +1 -1
- package/dist/containers/Tenant/Diagnostics/Overview/TransferInfo/Credentials.d.ts +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/MetricsTabs.js +2 -2
- package/dist/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/MetricsTabs.js.map +1 -1
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantNetwork/TenantNetwork.js +2 -2
- package/dist/containers/Tenant/Diagnostics/TenantOverview/TenantNetwork/TenantNetwork.js.map +1 -1
- package/dist/containers/Tenant/Query/QueryEditor/QueryEditor.js +3 -2
- package/dist/containers/Tenant/Query/QueryEditor/QueryEditor.js.map +1 -1
- package/dist/containers/Tenant/Query/QueryEditor/YqlEditor.js +3 -3
- package/dist/containers/Tenant/Query/QueryEditor/YqlEditor.js.map +1 -1
- package/dist/containers/Tenant/Query/QueryEditor/helpers.js +3 -3
- package/dist/containers/Tenant/Query/QueryEditor/helpers.js.map +1 -1
- package/dist/containers/Tenant/Query/QueryResult/QueryResultViewer.js +2 -2
- package/dist/containers/Tenant/Query/QueryResult/QueryResultViewer.js.map +1 -1
- package/dist/containers/Tenant/Query/QuerySettingsDialog/QuerySettingsDialog.js +2 -2
- package/dist/containers/Tenant/Query/QuerySettingsDialog/QuerySettingsDialog.js.map +1 -1
- package/dist/containers/Tenant/Query/QueryStoppedBanner/QueryStoppedBanner.js +2 -2
- package/dist/containers/Tenant/Query/QueryStoppedBanner/QueryStoppedBanner.js.map +1 -1
- package/dist/containers/Tenant/Query/utils/useSavedQueries.js +2 -2
- package/dist/containers/Tenant/Query/utils/useSavedQueries.js.map +1 -1
- package/dist/containers/Tenant/TenantNavigation/useTenantNavigation.js +2 -2
- package/dist/containers/Tenant/TenantNavigation/useTenantNavigation.js.map +1 -1
- package/dist/containers/Tenants/Tenants.js +4 -3
- package/dist/containers/Tenants/Tenants.js.map +1 -1
- package/dist/containers/UserSettings/settings.js +21 -19
- package/dist/containers/UserSettings/settings.js.map +1 -1
- package/dist/containers/VDiskPage/i18n/index.d.ts +1 -1
- package/dist/lib.d.ts +1 -1
- package/dist/services/api/baseMeta.d.ts +8 -0
- package/dist/services/api/baseMeta.js +16 -0
- package/dist/services/api/baseMeta.js.map +1 -0
- package/dist/services/api/index.d.ts +2 -0
- package/dist/services/api/index.js +8 -4
- package/dist/services/api/index.js.map +1 -1
- package/dist/services/api/meta.d.ts +3 -7
- package/dist/services/api/meta.js +2 -14
- package/dist/services/api/meta.js.map +1 -1
- package/dist/services/api/metaSettings.d.ts +14 -0
- package/dist/services/api/metaSettings.js +76 -0
- package/dist/services/api/metaSettings.js.map +1 -0
- package/dist/services/api/streaming.js +3 -2
- package/dist/services/api/streaming.js.map +1 -1
- package/dist/services/api/viewer.js +2 -2
- package/dist/services/api/viewer.js.map +1 -1
- package/dist/services/settings.d.ts +1 -41
- package/dist/services/settings.js +0 -34
- package/dist/services/settings.js.map +1 -1
- package/dist/store/reducers/authentication/authentication.d.ts +5 -0
- package/dist/store/reducers/authentication/authentication.js +7 -4
- package/dist/store/reducers/authentication/authentication.js.map +1 -1
- package/dist/store/reducers/authentication/types.d.ts +1 -0
- package/dist/store/reducers/capabilities/capabilities.d.ts +16 -16
- package/dist/store/reducers/healthcheckInfo/healthcheckInfo.d.ts +24 -24
- package/dist/store/reducers/nodesList.d.ts +6 -6
- package/dist/store/reducers/query/query.js +5 -4
- package/dist/store/reducers/query/query.js.map +1 -1
- package/dist/store/reducers/queryActions/queryActions.js +8 -5
- package/dist/store/reducers/queryActions/queryActions.js.map +1 -1
- package/dist/store/reducers/schema/schema.d.ts +6 -6
- package/dist/store/reducers/schemaAcl/schemaAcl.d.ts +12 -12
- package/dist/store/reducers/settings/api.d.ts +6 -0
- package/dist/store/reducers/settings/api.js +110 -0
- package/dist/store/reducers/settings/api.js.map +1 -0
- package/dist/store/reducers/settings/constants.d.ts +77 -0
- package/dist/store/reducers/settings/constants.js +79 -0
- package/dist/store/reducers/settings/constants.js.map +1 -0
- package/dist/store/reducers/settings/settings.d.ts +3 -3
- package/dist/store/reducers/settings/settings.js +11 -4
- package/dist/store/reducers/settings/settings.js.map +1 -1
- package/dist/store/reducers/settings/types.d.ts +7 -1
- package/dist/store/reducers/settings/useSetting.d.ts +11 -0
- package/dist/store/reducers/settings/useSetting.js +69 -0
- package/dist/store/reducers/settings/useSetting.js.map +1 -0
- package/dist/store/reducers/settings/utils.d.ts +5 -0
- package/dist/store/reducers/settings/utils.js +35 -0
- package/dist/store/reducers/settings/utils.js.map +1 -0
- package/dist/store/reducers/tenant/tenant.js +4 -4
- package/dist/store/reducers/tenant/tenant.js.map +1 -1
- package/dist/store/reducers/topic.d.ts +18 -18
- package/dist/types/api/settings.d.ts +24 -0
- package/dist/types/api/settings.js +2 -0
- package/dist/types/api/settings.js.map +1 -0
- package/dist/types/api/whoami.d.ts +1 -0
- package/dist/uiFactory/types.d.ts +1 -0
- package/dist/utils/constants.d.ts +0 -59
- package/dist/utils/constants.js +0 -62
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/dataFormatters/i18n/index.d.ts +1 -1
- package/dist/utils/generateEvaluator.d.ts +1 -1
- package/dist/utils/hooks/useAclSyntax.js +4 -3
- package/dist/utils/hooks/useAclSyntax.js.map +1 -1
- package/dist/utils/hooks/useAutoRefreshInterval.js +2 -2
- package/dist/utils/hooks/useAutoRefreshInterval.js.map +1 -1
- package/dist/utils/hooks/useChangedQuerySettings.js +3 -2
- package/dist/utils/hooks/useChangedQuerySettings.js.map +1 -1
- package/dist/utils/hooks/useLastQueryExecutionSettings.js +2 -2
- package/dist/utils/hooks/useLastQueryExecutionSettings.js.map +1 -1
- package/dist/utils/hooks/useQueryExecutionSettings.js +3 -3
- package/dist/utils/hooks/useQueryExecutionSettings.js.map +1 -1
- package/dist/utils/hooks/useQueryStreamingSetting.js +4 -3
- package/dist/utils/hooks/useQueryStreamingSetting.js.map +1 -1
- package/dist/utils/hooks/useSetting.js +2 -0
- package/dist/utils/hooks/useSetting.js.map +1 -1
- package/dist/utils/hooks/useTableResize.d.ts +1 -1
- package/dist/utils/hooks/useTableResize.js +21 -14
- package/dist/utils/hooks/useTableResize.js.map +1 -1
- package/dist/utils/query.d.ts +1 -1
- package/dist/utils/timeParsers/i18n/index.d.ts +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import type { ValueOf } from '../../../types/common';
|
|
2
|
+
import { AclSyntax } from '../../../utils/constants';
|
|
3
|
+
import { Lang } from '../../../utils/i18n';
|
|
4
|
+
import type { SettingOptions } from './types';
|
|
5
|
+
export declare const SETTING_KEYS: {
|
|
6
|
+
readonly THEME: "theme";
|
|
7
|
+
readonly LANGUAGE: "language";
|
|
8
|
+
readonly INVERTED_DISKS: "invertedDisks";
|
|
9
|
+
readonly BINARY_DATA_IN_PLAIN_TEXT_DISPLAY: "binaryDataInPlainTextDisplay";
|
|
10
|
+
readonly SAVED_QUERIES: "saved_queries";
|
|
11
|
+
readonly QUERIES_HISTORY: "queries_history";
|
|
12
|
+
readonly TENANT_INITIAL_PAGE: "saved_tenant_initial_tab";
|
|
13
|
+
readonly LAST_USED_QUERY_ACTION: "last_used_query_action";
|
|
14
|
+
readonly ASIDE_HEADER_COMPACT: "asideHeaderCompact";
|
|
15
|
+
readonly PARTITIONS_HIDDEN_COLUMNS: "partitionsHiddenColumns";
|
|
16
|
+
readonly ENABLE_NETWORK_TABLE: "enableNetworkTable";
|
|
17
|
+
readonly USE_SHOW_PLAN_SVG: "useShowPlanToSvg";
|
|
18
|
+
readonly USE_CLUSTER_BALANCER_AS_BACKEND: "useClusterBalancerAsBacked";
|
|
19
|
+
readonly ENABLE_AUTOCOMPLETE: "enableAutocomplete";
|
|
20
|
+
readonly ENABLE_CODE_ASSISTANT: "enableCodeAssistant";
|
|
21
|
+
readonly ENABLE_QUERY_STREAMING: "enableQueryStreaming";
|
|
22
|
+
readonly ENABLE_QUERY_STREAMING_OLD_BACKEND: "enableQueryStreamingOldBackend";
|
|
23
|
+
readonly SHOW_NETWORK_UTILIZATION: "enableNetworkUtilization";
|
|
24
|
+
readonly EXPAND_CLUSTER_DASHBOARD: "expandClusterDashboard";
|
|
25
|
+
readonly AUTOCOMPLETE_ON_ENTER: "autocompleteOnEnter";
|
|
26
|
+
readonly IS_HOTKEYS_HELP_HIDDEN: "isHotKeysHelpHidden";
|
|
27
|
+
readonly AUTO_REFRESH_INTERVAL: "auto-refresh-interval";
|
|
28
|
+
readonly CASE_SENSITIVE_JSON_SEARCH: "caseSensitiveJsonSearch";
|
|
29
|
+
readonly SHOW_DOMAIN_DATABASE: "showDomainDatabase";
|
|
30
|
+
readonly QUERY_STOPPED_BANNER_CLOSED: "queryStoppedBannerClosed";
|
|
31
|
+
readonly LAST_QUERY_EXECUTION_SETTINGS: "last_query_execution_settings";
|
|
32
|
+
readonly QUERY_SETTINGS_BANNER_LAST_CLOSED: "querySettingsBannerLastClosed";
|
|
33
|
+
readonly QUERY_EXECUTION_SETTINGS: "queryExecutionSettings";
|
|
34
|
+
readonly ACL_SYNTAX: "aclSyntax";
|
|
35
|
+
};
|
|
36
|
+
export type SettingKey = ValueOf<typeof SETTING_KEYS>;
|
|
37
|
+
/** User settings keys and their default values */
|
|
38
|
+
export declare const DEFAULT_USER_SETTINGS: {
|
|
39
|
+
readonly theme: "system";
|
|
40
|
+
readonly language: Lang.En;
|
|
41
|
+
readonly invertedDisks: false;
|
|
42
|
+
readonly binaryDataInPlainTextDisplay: true;
|
|
43
|
+
readonly saved_queries: readonly [];
|
|
44
|
+
readonly queries_history: readonly [];
|
|
45
|
+
readonly saved_tenant_initial_tab: "query";
|
|
46
|
+
readonly last_used_query_action: "execute";
|
|
47
|
+
readonly asideHeaderCompact: true;
|
|
48
|
+
readonly partitionsHiddenColumns: readonly [];
|
|
49
|
+
readonly enableNetworkTable: true;
|
|
50
|
+
readonly useShowPlanToSvg: false;
|
|
51
|
+
readonly useClusterBalancerAsBacked: true;
|
|
52
|
+
readonly enableAutocomplete: true;
|
|
53
|
+
readonly enableCodeAssistant: true;
|
|
54
|
+
readonly enableQueryStreaming: true;
|
|
55
|
+
readonly enableQueryStreamingOldBackend: false;
|
|
56
|
+
readonly enableNetworkUtilization: true;
|
|
57
|
+
readonly expandClusterDashboard: true;
|
|
58
|
+
readonly autocompleteOnEnter: true;
|
|
59
|
+
readonly isHotKeysHelpHidden: false;
|
|
60
|
+
readonly "auto-refresh-interval": 0;
|
|
61
|
+
readonly caseSensitiveJsonSearch: false;
|
|
62
|
+
readonly showDomainDatabase: false;
|
|
63
|
+
readonly queryStoppedBannerClosed: false;
|
|
64
|
+
readonly last_query_execution_settings: undefined;
|
|
65
|
+
readonly querySettingsBannerLastClosed: undefined;
|
|
66
|
+
readonly queryExecutionSettings: {
|
|
67
|
+
queryMode: "query";
|
|
68
|
+
transactionMode: "implicit";
|
|
69
|
+
timeout: null;
|
|
70
|
+
limitRows: number;
|
|
71
|
+
statisticsMode: "none";
|
|
72
|
+
tracingLevel: "off";
|
|
73
|
+
pragmas: string;
|
|
74
|
+
};
|
|
75
|
+
readonly aclSyntax: AclSyntax.YdbShort;
|
|
76
|
+
};
|
|
77
|
+
export declare const SETTINGS_OPTIONS: Record<string, SettingOptions>;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { AclSyntax } from '../../../utils/constants';
|
|
2
|
+
import { Lang } from '../../../utils/i18n';
|
|
3
|
+
import { DEFAULT_QUERY_SETTINGS, QUERY_ACTIONS } from '../../../utils/query';
|
|
4
|
+
import { TENANT_PAGES_IDS } from '../tenant/constants';
|
|
5
|
+
export const SETTING_KEYS = {
|
|
6
|
+
THEME: 'theme',
|
|
7
|
+
LANGUAGE: 'language',
|
|
8
|
+
INVERTED_DISKS: 'invertedDisks',
|
|
9
|
+
BINARY_DATA_IN_PLAIN_TEXT_DISPLAY: 'binaryDataInPlainTextDisplay',
|
|
10
|
+
SAVED_QUERIES: 'saved_queries',
|
|
11
|
+
QUERIES_HISTORY: 'queries_history',
|
|
12
|
+
TENANT_INITIAL_PAGE: 'saved_tenant_initial_tab',
|
|
13
|
+
LAST_USED_QUERY_ACTION: 'last_used_query_action',
|
|
14
|
+
ASIDE_HEADER_COMPACT: 'asideHeaderCompact',
|
|
15
|
+
PARTITIONS_HIDDEN_COLUMNS: 'partitionsHiddenColumns',
|
|
16
|
+
ENABLE_NETWORK_TABLE: 'enableNetworkTable',
|
|
17
|
+
USE_SHOW_PLAN_SVG: 'useShowPlanToSvg',
|
|
18
|
+
USE_CLUSTER_BALANCER_AS_BACKEND: 'useClusterBalancerAsBacked',
|
|
19
|
+
ENABLE_AUTOCOMPLETE: 'enableAutocomplete',
|
|
20
|
+
ENABLE_CODE_ASSISTANT: 'enableCodeAssistant',
|
|
21
|
+
ENABLE_QUERY_STREAMING: 'enableQueryStreaming',
|
|
22
|
+
ENABLE_QUERY_STREAMING_OLD_BACKEND: 'enableQueryStreamingOldBackend',
|
|
23
|
+
SHOW_NETWORK_UTILIZATION: 'enableNetworkUtilization',
|
|
24
|
+
EXPAND_CLUSTER_DASHBOARD: 'expandClusterDashboard',
|
|
25
|
+
AUTOCOMPLETE_ON_ENTER: 'autocompleteOnEnter',
|
|
26
|
+
IS_HOTKEYS_HELP_HIDDEN: 'isHotKeysHelpHidden',
|
|
27
|
+
AUTO_REFRESH_INTERVAL: 'auto-refresh-interval',
|
|
28
|
+
CASE_SENSITIVE_JSON_SEARCH: 'caseSensitiveJsonSearch',
|
|
29
|
+
SHOW_DOMAIN_DATABASE: 'showDomainDatabase',
|
|
30
|
+
QUERY_STOPPED_BANNER_CLOSED: 'queryStoppedBannerClosed',
|
|
31
|
+
LAST_QUERY_EXECUTION_SETTINGS: 'last_query_execution_settings',
|
|
32
|
+
QUERY_SETTINGS_BANNER_LAST_CLOSED: 'querySettingsBannerLastClosed',
|
|
33
|
+
QUERY_EXECUTION_SETTINGS: 'queryExecutionSettings',
|
|
34
|
+
ACL_SYNTAX: 'aclSyntax',
|
|
35
|
+
};
|
|
36
|
+
/** User settings keys and their default values */
|
|
37
|
+
export const DEFAULT_USER_SETTINGS = {
|
|
38
|
+
[SETTING_KEYS.THEME]: 'system',
|
|
39
|
+
[SETTING_KEYS.LANGUAGE]: Lang.En,
|
|
40
|
+
[SETTING_KEYS.INVERTED_DISKS]: false,
|
|
41
|
+
[SETTING_KEYS.BINARY_DATA_IN_PLAIN_TEXT_DISPLAY]: true,
|
|
42
|
+
[SETTING_KEYS.SAVED_QUERIES]: [],
|
|
43
|
+
[SETTING_KEYS.QUERIES_HISTORY]: [],
|
|
44
|
+
[SETTING_KEYS.TENANT_INITIAL_PAGE]: TENANT_PAGES_IDS.query,
|
|
45
|
+
[SETTING_KEYS.LAST_USED_QUERY_ACTION]: QUERY_ACTIONS.execute,
|
|
46
|
+
[SETTING_KEYS.ASIDE_HEADER_COMPACT]: true,
|
|
47
|
+
[SETTING_KEYS.PARTITIONS_HIDDEN_COLUMNS]: [],
|
|
48
|
+
[SETTING_KEYS.ENABLE_NETWORK_TABLE]: true,
|
|
49
|
+
[SETTING_KEYS.USE_SHOW_PLAN_SVG]: false,
|
|
50
|
+
[SETTING_KEYS.USE_CLUSTER_BALANCER_AS_BACKEND]: true,
|
|
51
|
+
[SETTING_KEYS.ENABLE_AUTOCOMPLETE]: true,
|
|
52
|
+
[SETTING_KEYS.ENABLE_CODE_ASSISTANT]: true,
|
|
53
|
+
[SETTING_KEYS.ENABLE_QUERY_STREAMING]: true,
|
|
54
|
+
[SETTING_KEYS.ENABLE_QUERY_STREAMING_OLD_BACKEND]: false,
|
|
55
|
+
[SETTING_KEYS.SHOW_NETWORK_UTILIZATION]: true,
|
|
56
|
+
[SETTING_KEYS.EXPAND_CLUSTER_DASHBOARD]: true,
|
|
57
|
+
[SETTING_KEYS.AUTOCOMPLETE_ON_ENTER]: true,
|
|
58
|
+
[SETTING_KEYS.IS_HOTKEYS_HELP_HIDDEN]: false,
|
|
59
|
+
[SETTING_KEYS.AUTO_REFRESH_INTERVAL]: 0,
|
|
60
|
+
[SETTING_KEYS.CASE_SENSITIVE_JSON_SEARCH]: false,
|
|
61
|
+
[SETTING_KEYS.SHOW_DOMAIN_DATABASE]: false,
|
|
62
|
+
[SETTING_KEYS.QUERY_STOPPED_BANNER_CLOSED]: false,
|
|
63
|
+
[SETTING_KEYS.LAST_QUERY_EXECUTION_SETTINGS]: undefined,
|
|
64
|
+
[SETTING_KEYS.QUERY_SETTINGS_BANNER_LAST_CLOSED]: undefined,
|
|
65
|
+
[SETTING_KEYS.QUERY_EXECUTION_SETTINGS]: DEFAULT_QUERY_SETTINGS,
|
|
66
|
+
[SETTING_KEYS.ACL_SYNTAX]: AclSyntax.YdbShort,
|
|
67
|
+
};
|
|
68
|
+
export const SETTINGS_OPTIONS = {
|
|
69
|
+
[SETTING_KEYS.THEME]: {
|
|
70
|
+
preventBatching: true,
|
|
71
|
+
},
|
|
72
|
+
[SETTING_KEYS.SAVED_QUERIES]: {
|
|
73
|
+
preventSyncWithLS: true,
|
|
74
|
+
},
|
|
75
|
+
[SETTING_KEYS.QUERIES_HISTORY]: {
|
|
76
|
+
preventSyncWithLS: true,
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/store/reducers/settings/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,10 +4,10 @@ import type { SettingsState } from './types';
|
|
|
4
4
|
export declare const initialState: SettingsState;
|
|
5
5
|
export declare const getSettingValue: import("reselect").Selector<{
|
|
6
6
|
settings: SettingsState;
|
|
7
|
-
}, unknown, [name
|
|
8
|
-
unwrapped: (state: SettingsState, name
|
|
7
|
+
}, unknown, [name?: string | undefined]> & {
|
|
8
|
+
unwrapped: (state: SettingsState, name?: string) => unknown;
|
|
9
9
|
};
|
|
10
|
-
export declare const setSettingValue: (name: string, value: unknown) => (dispatch: AppDispatch) => void;
|
|
10
|
+
export declare const setSettingValue: (name: string | undefined, value: unknown) => (dispatch: AppDispatch) => void;
|
|
11
11
|
export declare function syncUserSettingsFromLS(store: Store): void;
|
|
12
12
|
declare const _default: import("redux").Reducer<SettingsState>;
|
|
13
13
|
export default _default;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { createSlice } from '@reduxjs/toolkit';
|
|
2
|
-
import {
|
|
2
|
+
import { settingsManager } from '../../../services/settings';
|
|
3
3
|
import { parseJson } from '../../../utils/utils';
|
|
4
|
+
import { DEFAULT_USER_SETTINGS } from './constants';
|
|
4
5
|
const userSettings = settingsManager.extractSettingsFromLS(DEFAULT_USER_SETTINGS);
|
|
5
6
|
const systemSettings = window.systemSettings || {};
|
|
6
7
|
export const initialState = {
|
|
@@ -16,14 +17,20 @@ const settingsSlice = createSlice({
|
|
|
16
17
|
}),
|
|
17
18
|
}),
|
|
18
19
|
selectors: {
|
|
19
|
-
getSettingValue: (state, name) =>
|
|
20
|
+
getSettingValue: (state, name) => {
|
|
21
|
+
if (!name) {
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
return state.userSettings[name];
|
|
25
|
+
},
|
|
20
26
|
},
|
|
21
27
|
});
|
|
22
28
|
export const { getSettingValue } = settingsSlice.selectors;
|
|
23
29
|
export const setSettingValue = (name, value) => {
|
|
24
30
|
return (dispatch) => {
|
|
25
|
-
|
|
26
|
-
|
|
31
|
+
if (name) {
|
|
32
|
+
dispatch(settingsSlice.actions.setSettingValue({ name, value }));
|
|
33
|
+
}
|
|
27
34
|
};
|
|
28
35
|
};
|
|
29
36
|
export function syncUserSettingsFromLS(store) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../../src/store/reducers/settings/settings.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../../src/store/reducers/settings/settings.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAC,eAAe,EAAC,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAC;AAG/C,OAAO,EAAC,qBAAqB,EAAC,MAAM,aAAa,CAAC;AAGlD,MAAM,YAAY,GAAG,eAAe,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,CAAC;AAClF,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,EAAE,CAAC;AAEnD,MAAM,CAAC,MAAM,YAAY,GAAkB;IACvC,YAAY;IACZ,cAAc;CACjB,CAAC;AAEF,MAAM,aAAa,GAAG,WAAW,CAAC;IAC9B,IAAI,EAAE,UAAU;IAChB,YAAY;IACZ,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACnB,eAAe,EAAE,MAAM,CAAC,OAAO,CAAiC,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YAC9E,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;QACnE,CAAC,CAAC;KACL,CAAC;IACF,SAAS,EAAE;QACP,eAAe,EAAE,CAAC,KAAK,EAAE,IAAa,EAAE,EAAE;YACtC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACR,OAAO,SAAS,CAAC;YACrB,CAAC;YAED,OAAO,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;KACJ;CACJ,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,EAAC,eAAe,EAAC,GAAG,aAAa,CAAC,SAAS,CAAC;AAEzD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAwB,EAAE,KAAc,EAAE,EAAE;IACxE,OAAO,CAAC,QAAqB,EAAE,EAAE;QAC7B,IAAI,IAAI,EAAE,CAAC;YACP,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,eAAe,CAAC,EAAC,IAAI,EAAE,KAAK,EAAC,CAAC,CAAC,CAAC;QACnE,CAAC;IACL,CAAC,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,UAAU,sBAAsB,CAAC,KAAY;IAC/C,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAChC,OAAO;IACX,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;QACzC,IAAI,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,qBAAqB,EAAE,CAAC;YAClD,MAAM,IAAI,GAAG,KAAK,CAAC,GAAyC,CAAC;YAC7D,IAAI,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;gBAC1B,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACtC,CAAC;YACD,KAAK,CAAC,QAAQ,CACV,aAAa,CAAC,OAAO,CAAC,eAAe,CAAC;gBAClC,IAAI;gBACJ,KAAK;aACR,CAAC,CACL,CAAC;QACN,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAED,eAAe,aAAa,CAAC,OAAO,CAAC"}
|
|
@@ -1,5 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
export type SettingsObject = Record<string, unknown>;
|
|
2
2
|
export interface SettingsState {
|
|
3
3
|
userSettings: SettingsObject;
|
|
4
4
|
systemSettings: SettingsObject;
|
|
5
5
|
}
|
|
6
|
+
export interface SettingOptions {
|
|
7
|
+
/** Save setting only to meta service */
|
|
8
|
+
preventSyncWithLS?: boolean;
|
|
9
|
+
/** Request setting immediatelly */
|
|
10
|
+
preventBatching?: boolean;
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
type SaveSettingValue<T> = (value: T | undefined) => void;
|
|
2
|
+
interface UseSettingOptions {
|
|
3
|
+
/** Time before setting will be set */
|
|
4
|
+
debounceTime?: number;
|
|
5
|
+
}
|
|
6
|
+
export declare function useSetting<T>(name?: string, { debounceTime }?: UseSettingOptions): {
|
|
7
|
+
value: T | undefined;
|
|
8
|
+
saveValue: SaveSettingValue<T>;
|
|
9
|
+
isLoading: boolean;
|
|
10
|
+
};
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { skipToken } from '@reduxjs/toolkit/query';
|
|
3
|
+
import { debounce } from 'lodash';
|
|
4
|
+
import { uiFactory } from '../../../uiFactory/uiFactory';
|
|
5
|
+
import { useTypedDispatch } from '../../../utils/hooks/useTypedDispatch';
|
|
6
|
+
import { useTypedSelector } from '../../../utils/hooks/useTypedSelector';
|
|
7
|
+
import { selectID, selectUser } from '../authentication/authentication';
|
|
8
|
+
import { settingsApi } from './api';
|
|
9
|
+
import { DEFAULT_USER_SETTINGS, SETTINGS_OPTIONS } from './constants';
|
|
10
|
+
import { getSettingValue, setSettingValue } from './settings';
|
|
11
|
+
import { parseSettingValue, readSettingValueFromLS, setSettingValueToLS, stringifySettingValue, } from './utils';
|
|
12
|
+
export function useSetting(name, { debounceTime = 0 } = {}) {
|
|
13
|
+
var _a;
|
|
14
|
+
const dispatch = useTypedDispatch();
|
|
15
|
+
const preventSyncWithLS = Boolean(name && ((_a = SETTINGS_OPTIONS[name]) === null || _a === void 0 ? void 0 : _a.preventSyncWithLS));
|
|
16
|
+
const settingValue = useTypedSelector((state) => getSettingValue(state, name));
|
|
17
|
+
const authUserSID = useTypedSelector(selectUser);
|
|
18
|
+
const anonymousUserId = useTypedSelector(selectID);
|
|
19
|
+
const user = authUserSID || anonymousUserId;
|
|
20
|
+
const shouldUseMetaSettings = uiFactory.useMetaSettings && user && name;
|
|
21
|
+
const shouldUseOnlyExternalSettings = shouldUseMetaSettings && preventSyncWithLS;
|
|
22
|
+
const params = React.useMemo(() => {
|
|
23
|
+
return shouldUseMetaSettings ? { user, name } : skipToken;
|
|
24
|
+
}, [shouldUseMetaSettings, user, name]);
|
|
25
|
+
const { currentData: metaSetting, isLoading: isSettingLoading } = settingsApi.useGetSingleSettingQuery(params);
|
|
26
|
+
const [setMetaSetting] = settingsApi.useSetSingleSettingMutation();
|
|
27
|
+
// Add loading state to settings that are stored externally
|
|
28
|
+
const isLoading = shouldUseMetaSettings ? isSettingLoading : false;
|
|
29
|
+
// Load initial value
|
|
30
|
+
React.useEffect(() => {
|
|
31
|
+
let value = name ? DEFAULT_USER_SETTINGS[name] : undefined;
|
|
32
|
+
if (!shouldUseOnlyExternalSettings) {
|
|
33
|
+
const savedValue = readSettingValueFromLS(name);
|
|
34
|
+
value = savedValue !== null && savedValue !== void 0 ? savedValue : value;
|
|
35
|
+
}
|
|
36
|
+
dispatch(setSettingValue(name, value));
|
|
37
|
+
}, [name, shouldUseOnlyExternalSettings, dispatch]);
|
|
38
|
+
// Sync value from backend with LS and store
|
|
39
|
+
React.useEffect(() => {
|
|
40
|
+
if (shouldUseMetaSettings && (metaSetting === null || metaSetting === void 0 ? void 0 : metaSetting.value)) {
|
|
41
|
+
if (!shouldUseOnlyExternalSettings) {
|
|
42
|
+
setSettingValueToLS(name, metaSetting.value);
|
|
43
|
+
}
|
|
44
|
+
const parsedValue = parseSettingValue(metaSetting.value);
|
|
45
|
+
dispatch(setSettingValue(name, parsedValue));
|
|
46
|
+
}
|
|
47
|
+
}, [shouldUseMetaSettings, shouldUseOnlyExternalSettings, metaSetting, name, dispatch]);
|
|
48
|
+
const debouncedSetMetaSetting = React.useMemo(() => debounce((params) => {
|
|
49
|
+
setMetaSetting(params);
|
|
50
|
+
}, debounceTime), [debounceTime, setMetaSetting]);
|
|
51
|
+
// Call debounced func on component unmount
|
|
52
|
+
React.useEffect(() => {
|
|
53
|
+
return () => debouncedSetMetaSetting.flush();
|
|
54
|
+
}, [debouncedSetMetaSetting]);
|
|
55
|
+
const saveValue = React.useCallback((value) => {
|
|
56
|
+
if (shouldUseMetaSettings) {
|
|
57
|
+
debouncedSetMetaSetting({
|
|
58
|
+
user,
|
|
59
|
+
name: name,
|
|
60
|
+
value: stringifySettingValue(value),
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
if (!shouldUseOnlyExternalSettings) {
|
|
64
|
+
setSettingValueToLS(name, value);
|
|
65
|
+
}
|
|
66
|
+
}, [shouldUseMetaSettings, shouldUseOnlyExternalSettings, user, name, debouncedSetMetaSetting]);
|
|
67
|
+
return { value: settingValue, saveValue, isLoading };
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=useSetting.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSetting.js","sourceRoot":"","sources":["../../../../src/store/reducers/settings/useSetting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,SAAS,EAAC,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAC,QAAQ,EAAC,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAAC,SAAS,EAAC,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAAC,gBAAgB,EAAC,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAC,gBAAgB,EAAC,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAC,QAAQ,EAAE,UAAU,EAAC,MAAM,kCAAkC,CAAC;AAEtE,OAAO,EAAC,WAAW,EAAC,MAAM,OAAO,CAAC;AAElC,OAAO,EAAC,qBAAqB,EAAE,gBAAgB,EAAC,MAAM,aAAa,CAAC;AACpE,OAAO,EAAC,eAAe,EAAE,eAAe,EAAC,MAAM,YAAY,CAAC;AAC5D,OAAO,EACH,iBAAiB,EACjB,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,GACxB,MAAM,SAAS,CAAC;AASjB,MAAM,UAAU,UAAU,CACtB,IAAa,EACb,EAAC,YAAY,GAAG,CAAC,KAAuB,EAAE;;IAE1C,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;IAEpC,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,KAAI,MAAA,gBAAgB,CAAC,IAAI,CAAC,0CAAE,iBAAiB,CAAA,CAAC,CAAC;IAErF,MAAM,YAAY,GAAG,gBAAgB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAkB,CAAC;IAEhG,MAAM,WAAW,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IACjD,MAAM,eAAe,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAEnD,MAAM,IAAI,GAAG,WAAW,IAAI,eAAe,CAAC;IAC5C,MAAM,qBAAqB,GAAG,SAAS,CAAC,eAAe,IAAI,IAAI,IAAI,IAAI,CAAC;IAExE,MAAM,6BAA6B,GAAG,qBAAqB,IAAI,iBAAiB,CAAC;IAEjF,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAC9B,OAAO,qBAAqB,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5D,CAAC,EAAE,CAAC,qBAAqB,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAExC,MAAM,EAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,gBAAgB,EAAC,GACzD,WAAW,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAEjD,MAAM,CAAC,cAAc,CAAC,GAAG,WAAW,CAAC,2BAA2B,EAAE,CAAC;IAEnE,2DAA2D;IAC3D,MAAM,SAAS,GAAG,qBAAqB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC;IAEnE,qBAAqB;IACrB,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC,CAAE,qBAAqB,CAAC,IAAkB,CAAmB,CAAC,CAAC,CAAC,SAAS,CAAC;QAE5F,IAAI,CAAC,6BAA6B,EAAE,CAAC;YACjC,MAAM,UAAU,GAAG,sBAAsB,CAAI,IAAI,CAAC,CAAC;YACnD,KAAK,GAAG,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,KAAK,CAAC;QAChC,CAAC;QAED,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAC3C,CAAC,EAAE,CAAC,IAAI,EAAE,6BAA6B,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEpD,4CAA4C;IAC5C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,IAAI,qBAAqB,KAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,KAAK,CAAA,EAAE,CAAC;YAC9C,IAAI,CAAC,6BAA6B,EAAE,CAAC;gBACjC,mBAAmB,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;YACjD,CAAC;YACD,MAAM,WAAW,GAAG,iBAAiB,CAAI,WAAW,CAAC,KAAK,CAAC,CAAC;YAC5D,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;QACjD,CAAC;IACL,CAAC,EAAE,CAAC,qBAAqB,EAAE,6BAA6B,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IAExF,MAAM,uBAAuB,GAAG,KAAK,CAAC,OAAO,CACzC,GAAG,EAAE,CACD,QAAQ,CAAC,CAAC,MAA8B,EAAE,EAAE;QACxC,cAAc,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC,EAAE,YAAY,CAAC,EACpB,CAAC,YAAY,EAAE,cAAc,CAAC,CACjC,CAAC;IAEF,2CAA2C;IAC3C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,OAAO,GAAG,EAAE,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC;IACjD,CAAC,EAAE,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAE9B,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAC/B,CAAC,KAAK,EAAE,EAAE;QACN,IAAI,qBAAqB,EAAE,CAAC;YACxB,uBAAuB,CAAC;gBACpB,IAAI;gBACJ,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,qBAAqB,CAAC,KAAK,CAAC;aACtC,CAAC,CAAC;QACP,CAAC;QAED,IAAI,CAAC,6BAA6B,EAAE,CAAC;YACjC,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC;IACL,CAAC,EACD,CAAC,qBAAqB,EAAE,6BAA6B,EAAE,IAAI,EAAE,IAAI,EAAE,uBAAuB,CAAC,CAC9F,CAAC;IAEF,OAAO,EAAC,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAU,CAAC;AAChE,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { SettingValue } from '../../../types/api/settings';
|
|
2
|
+
export declare function stringifySettingValue<T>(value?: T): string;
|
|
3
|
+
export declare function parseSettingValue<T>(value?: SettingValue): T | undefined;
|
|
4
|
+
export declare function readSettingValueFromLS<T = unknown>(name: string | undefined): T | undefined;
|
|
5
|
+
export declare function setSettingValueToLS(name: string | undefined, value: unknown): void;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { parseJson } from '../../../utils/utils';
|
|
2
|
+
export function stringifySettingValue(value) {
|
|
3
|
+
return typeof value === 'string' ? value : JSON.stringify(value);
|
|
4
|
+
}
|
|
5
|
+
export function parseSettingValue(value) {
|
|
6
|
+
try {
|
|
7
|
+
return (typeof value === 'string' ? parseJson(value) : value);
|
|
8
|
+
}
|
|
9
|
+
catch (_a) {
|
|
10
|
+
return undefined;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export function readSettingValueFromLS(name) {
|
|
14
|
+
if (!name) {
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
try {
|
|
18
|
+
const value = localStorage.getItem(name);
|
|
19
|
+
return parseJson(value);
|
|
20
|
+
}
|
|
21
|
+
catch (_a) {
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
export function setSettingValueToLS(name, value) {
|
|
26
|
+
if (!name) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
try {
|
|
30
|
+
const preparedValue = stringifySettingValue(value);
|
|
31
|
+
localStorage.setItem(name, preparedValue);
|
|
32
|
+
}
|
|
33
|
+
catch (_a) { }
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/store/reducers/settings/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAC;AAE/C,MAAM,UAAU,qBAAqB,CAAI,KAAS;IAC9C,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACrE,CAAC;AACD,MAAM,UAAU,iBAAiB,CAAI,KAAoB;IACrD,IAAI,CAAC;QACD,OAAO,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAM,CAAC;IACvE,CAAC;IAAC,WAAM,CAAC;QACL,OAAO,SAAS,CAAC;IACrB,CAAC;AACL,CAAC;AACD,MAAM,UAAU,sBAAsB,CAAc,IAAwB;IACxE,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,IAAI,CAAC;QACD,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEzC,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAAC,WAAM,CAAC;QACL,OAAO,SAAS,CAAC;IACrB,CAAC;AACL,CAAC;AACD,MAAM,UAAU,mBAAmB,CAAC,IAAwB,EAAE,KAAc;IACxE,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,OAAO;IACX,CAAC;IAED,IAAI,CAAC;QACD,MAAM,aAAa,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACnD,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC9C,CAAC;IAAC,WAAM,CAAC,CAAA,CAAC;AACd,CAAC"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { createSlice } from '@reduxjs/toolkit';
|
|
2
|
-
import {
|
|
3
|
-
import { TENANT_INITIAL_PAGE_KEY } from '../../../utils/constants';
|
|
2
|
+
import { settingsManager } from '../../../services/settings';
|
|
4
3
|
import { useClusterNameFromQuery } from '../../../utils/hooks/useDatabaseFromQuery';
|
|
5
4
|
import { api } from '../api';
|
|
6
5
|
import { useDatabasesAvailable } from '../capabilities/hooks';
|
|
6
|
+
import { DEFAULT_USER_SETTINGS, SETTING_KEYS } from '../settings/constants';
|
|
7
7
|
import { prepareTenants } from '../tenants/utils';
|
|
8
8
|
import { TENANT_DIAGNOSTICS_TABS_IDS, TENANT_METRICS_TABS_IDS } from './constants';
|
|
9
9
|
import { tenantPageSchema } from './types';
|
|
10
10
|
const tenantPage = tenantPageSchema
|
|
11
|
-
.catch(DEFAULT_USER_SETTINGS[
|
|
12
|
-
.parse(settingsManager.readUserSettingsValue(
|
|
11
|
+
.catch(DEFAULT_USER_SETTINGS[SETTING_KEYS.TENANT_INITIAL_PAGE])
|
|
12
|
+
.parse(settingsManager.readUserSettingsValue(SETTING_KEYS.TENANT_INITIAL_PAGE));
|
|
13
13
|
export const initialState = {
|
|
14
14
|
tenantPage,
|
|
15
15
|
metricsTab: TENANT_METRICS_TABS_IDS.cpu,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenant.js","sourceRoot":"","sources":["../../../../src/store/reducers/tenant/tenant.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAG7C,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"tenant.js","sourceRoot":"","sources":["../../../../src/store/reducers/tenant/tenant.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAG7C,OAAO,EAAC,eAAe,EAAC,MAAM,4BAA4B,CAAC;AAE3D,OAAO,EAAC,uBAAuB,EAAC,MAAM,2CAA2C,CAAC;AAClF,OAAO,EAAC,GAAG,EAAC,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAC,qBAAqB,EAAC,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAC,qBAAqB,EAAE,YAAY,EAAC,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAEhD,OAAO,EAAC,2BAA2B,EAAE,uBAAuB,EAAC,MAAM,aAAa,CAAC;AACjF,OAAO,EAAC,gBAAgB,EAAC,MAAM,SAAS,CAAC;AAUzC,MAAM,UAAU,GAAG,gBAAgB;KAC9B,KAAK,CAAC,qBAAqB,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;KAC9D,KAAK,CAAC,eAAe,CAAC,qBAAqB,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAEpF,MAAM,CAAC,MAAM,YAAY,GAAgB;IACrC,UAAU;IACV,UAAU,EAAE,uBAAuB,CAAC,GAAG;IACvC,cAAc,EAAE,2BAA2B,CAAC,QAAQ;CACvD,CAAC;AAEF,MAAM,KAAK,GAAG,WAAW,CAAC;IACtB,IAAI,EAAE,QAAQ;IACd,YAAY;IACZ,QAAQ,EAAE;QACN,aAAa,EAAE,CAAC,KAAK,EAAE,MAAiC,EAAE,EAAE;YACxD,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC;QACtC,CAAC;QACD,WAAW,EAAE,CAAC,KAAK,EAAE,MAAqC,EAAE,EAAE;YAC1D,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;QACpC,CAAC;QACD,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAA2C,EAAE,EAAE;YACtE,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC;QAC1C,CAAC;QACD,aAAa,EAAE,CAAC,KAAK,EAAE,MAAuC,EAAE,EAAE;YAC9D,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC;QACtC,CAAC;QACD,aAAa,EAAE,CAAC,KAAK,EAAE,MAAuC,EAAE,EAAE;YAC9D,+EAA+E;YAC/E,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAAuB,CAAC;YAC/E,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACxE,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC,GAAG,CAAC;QACjF,CAAC;KACJ;CACJ,CAAC,CAAC;AAEH,eAAe,KAAK,CAAC,OAAO,CAAC;AAC7B,MAAM,CAAC,MAAM,EAAC,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,aAAa,EAAC,GACtF,KAAK,CAAC,OAAO,CAAC;AAElB,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,CAAC,eAAe,CAAC;IACzC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACrB,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC;YACzB,OAAO,EAAE,KAAK,EACV,EACI,QAAQ,EACR,WAAW,EACX,wBAAwB,GAK3B,EACD,EAAC,MAAM,EAAC,EACV,EAAE;;gBACA,IAAI,CAAC;oBACD,IAAI,UAAuB,CAAC;oBAC5B,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,WAAW,IAAI,wBAAwB,EAAE,CAAC;wBAC7D,UAAU,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAC3C,EAAC,QAAQ,EAAE,WAAW,EAAC,EACvB,EAAC,MAAM,EAAC,CACX,CAAC;oBACN,CAAC;yBAAM,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,WAAW,EAAE,CAAC;wBACxC,UAAU,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CACzC,EAAC,QAAQ,EAAE,WAAW,EAAC,EACvB,EAAC,MAAM,EAAC,CACX,CAAC;oBACN,CAAC;yBAAM,CAAC;wBACJ,UAAU,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,EAAC,QAAQ,EAAC,EAAE,EAAC,MAAM,EAAC,CAAC,CAAC;oBAC7E,CAAC;oBACD,MAAM,SAAS,GAAG,cAAc,CAAC,UAAU,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;oBAC9D,oEAAoE;oBACpE,MAAM,IAAI,GACN,MAAA,MAAA,SAAS,CAAC,IAAI,CACV,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,EAAE,KAAK,QAAQ,CACjE,mCACD,SAAS,CAAC,CAAC,CAAC,mCACZ,IAAI,CAAC;oBACT,OAAO,EAAC,IAAI,EAAC,CAAC;gBAClB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACb,OAAO,EAAC,KAAK,EAAC,CAAC;gBACnB,CAAC;YACL,CAAC;YACD,YAAY,EAAE,CAAC,KAAK,CAAC;YACrB,kBAAkB,EAAE,CAAC,EAAC,SAAS,EAAC,EAAE,EAAE;gBAChC,MAAM,EAAC,WAAW,EAAE,QAAQ,EAAC,GAAG,SAAS,CAAC;gBAC1C,OAAO,EAAC,WAAW,EAAE,QAAQ,EAAC,CAAC;YACnC,CAAC;SACJ,CAAC;KACL,CAAC;IACF,gBAAgB,EAAE,OAAO;CAC5B,CAAC,CAAC;AAEH,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IAC9C,MAAM,oBAAoB,GAAG,uBAAuB,EAAE,CAAC;IACvD,MAAM,wBAAwB,GAAG,qBAAqB,EAAE,CAAC;IAEzD,MAAM,EAAC,WAAW,EAAE,SAAS,EAAE,OAAO,EAAC,GAAG,SAAS,CAAC,qBAAqB,CACrE;QACI,QAAQ;QACR,WAAW,EAAE,oBAAoB;QACjC,wBAAwB;KAC3B,EACD,EAAC,IAAI,EAAE,CAAC,QAAQ,EAAC,CACpB,CAAC;IAEF,MAAM,EAAC,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAC,GAAG,WAAW,IAAI,EAAE,CAAC;IAEzD,OAAO;QACH,YAAY,EAAE,YAAY;QAC1B,IAAI,EAAE,IAAI;QACV,EAAE,EAAE,EAAE;QACN,YAAY,EAAE,IAAI;QAClB,SAAS;QACT,OAAO;KACV,CAAC;AACN,CAAC"}
|