Skip to content

Commit 172d2dc

Browse files
committed
fix: review
1 parent ddd4ecc commit 172d2dc

File tree

6 files changed

+25
-13
lines changed

6 files changed

+25
-13
lines changed

src/containers/Cluster/Cluster.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,10 @@ import {InternalLink} from '../../components/InternalLink';
1313
import {NetworkTable} from '../../components/NetworkTable/NetworkTable';
1414
import {useShouldShowClusterNetworkTable} from '../../components/NetworkTable/hooks';
1515
import routes, {getLocationObjectFromHref} from '../../routes';
16-
import {useClusterDashboardAvailable} from '../../store/reducers/capabilities/hooks';
16+
import {
17+
useClusterDashboardAvailable,
18+
useConfigAvailable,
19+
} from '../../store/reducers/capabilities/hooks';
1720
import {
1821
INITIAL_DEFAULT_CLUSTER_TAB,
1922
clusterApi,
@@ -72,6 +75,7 @@ export function Cluster({
7275
const shouldShowNetworkTable = useShouldShowClusterNetworkTable();
7376
const shouldShowEventsTab = useShouldShowEventsTab();
7477
const isViewerUser = useIsViewerUser();
78+
const isConfigsAvailable = useConfigAvailable();
7579

7680
const [autoRefreshInterval] = useAutoRefreshInterval();
7781

@@ -276,7 +280,7 @@ export function Cluster({
276280
{uiFactory.renderEvents?.({scrollContainerRef: container})}
277281
</Route>
278282
)}
279-
{isViewerUser && (
283+
{isViewerUser && isConfigsAvailable && (
280284
<Route
281285
path={
282286
getLocationObjectFromHref(

src/containers/Configs/Configs.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import {SegmentedRadioGroup} from '@gravity-ui/uikit';
44

55
import {TableWithControlsLayout} from '../../components/TableWithControlsLayout/TableWithControlsLayout';
66
import {
7-
useConfigAvailable,
7+
useBaseConfigAvailable,
88
useFeatureFlagsAvailable,
99
} from '../../store/reducers/capabilities/hooks';
1010
import {cn} from '../../utils/cn';
@@ -30,7 +30,7 @@ export function Configs({database, className, scrollContainerRef}: ConfigsProps)
3030
const {configType} = useConfigQueryParams();
3131

3232
const isFeaturesAvailable = useFeatureFlagsAvailable();
33-
const isConfigsAvailable = useConfigAvailable();
33+
const isConfigsAvailable = useBaseConfigAvailable();
3434

3535
const options = React.useMemo(() => {
3636
const options: ConfigType[] = [];

src/containers/Configs/useConfigsQueryParams.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import React from 'react';
33
import {StringParam, createEnumParam, useQueryParams, withDefault} from 'use-query-params';
44

55
import {
6-
useConfigAvailable,
6+
useBaseConfigAvailable,
77
useFeatureFlagsAvailable,
88
} from '../../store/reducers/capabilities/hooks';
99

@@ -24,7 +24,7 @@ export const ConfigTypeValueParam = withDefault<ConfigType | undefined | null, '
2424

2525
export function useConfigQueryParams() {
2626
const isFeaturesAvailable = useFeatureFlagsAvailable();
27-
const isConfigsAvailable = useConfigAvailable();
27+
const isConfigsAvailable = useBaseConfigAvailable();
2828
const [{configType, search}, setQueryParams] = useQueryParams({
2929
configType: ConfigTypeValueParam,
3030
search: StringParam,

src/containers/Node/Node.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import {PageMetaWithAutorefresh} from '../../components/PageMeta/PageMeta';
1515
import routes from '../../routes';
1616
import {
1717
useCapabilitiesLoaded,
18+
useConfigAvailable,
1819
useDiskPagesAvailable,
1920
} from '../../store/reducers/capabilities/hooks';
2021
import {setHeaderBreadcrumbs} from '../../store/reducers/header/header';
@@ -43,6 +44,9 @@ const STORAGE_ROLE = 'Storage';
4344
export function Node() {
4445
const container = React.useRef<HTMLDivElement>(null);
4546
const isViewerUser = useIsViewerUser();
47+
const hasConfigs = useConfigAvailable();
48+
49+
const configsAvailable = isViewerUser && hasConfigs;
4650

4751
const dispatch = useTypedDispatch();
4852

@@ -78,7 +82,7 @@ export function Node() {
7882
if (!isStorageNode) {
7983
skippedTabs.push('storage');
8084
}
81-
if (!isViewerUser) {
85+
if (!configsAvailable) {
8286
skippedTabs.push('configs');
8387
}
8488
if (isDiskPagesAvailable) {
@@ -93,7 +97,7 @@ export function Node() {
9397
actualNodeTabs.find(({id}) => id === activeTabId) ?? actualNodeTabs[0];
9498

9599
return {activeTab: actualActiveTab, nodeTabs: actualNodeTabs};
96-
}, [isStorageNode, isDiskPagesAvailable, activeTabId, threadsQuantity, isViewerUser]);
100+
}, [isStorageNode, isDiskPagesAvailable, activeTabId, threadsQuantity, configsAvailable]);
97101

98102
const database = tenantNameFromQuery?.toString();
99103

src/containers/Tenant/Diagnostics/Diagnostics.tsx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import {DrawerContextProvider} from '../../../components/Drawer/DrawerContext';
88
import {InternalLink} from '../../../components/InternalLink';
99
import {
1010
useConfigAvailable,
11-
useFeatureFlagsAvailable,
1211
useTopicDataAvailable,
1312
} from '../../../store/reducers/capabilities/hooks';
1413
import {TENANT_DIAGNOSTICS_TABS_IDS} from '../../../store/reducers/tenant/constants';
@@ -64,16 +63,14 @@ function Diagnostics(props: DiagnosticsProps) {
6463
isDatabaseEntityType(type) ? database : '',
6564
);
6665

67-
const hasFeatureFlags = useFeatureFlagsAvailable();
6866
const hasConfigs = useConfigAvailable();
69-
const configsAvailable = hasFeatureFlags || hasConfigs;
7067
const hasTopicData = useTopicDataAvailable();
7168
const isViewerUser = useIsViewerUser();
7269
const pages = getPagesByType(type, subType, {
7370
hasTopicData,
7471
isTopLevel: path === database,
7572
hasBackups: typeof uiFactory.renderBackups === 'function' && Boolean(controlPlane),
76-
hasConfigs: isViewerUser && configsAvailable,
73+
hasConfigs: isViewerUser && hasConfigs,
7774
hasAccess: uiFactory.hasAccess,
7875
databaseType,
7976
});

src/store/reducers/capabilities/hooks.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,9 +87,16 @@ export const useClusterDashboardAvailable = () => {
8787
export const useStreamingAvailable = () => {
8888
return useGetFeatureVersion('/viewer/query') >= 8;
8989
};
90-
export const useConfigAvailable = () => {
90+
export const useBaseConfigAvailable = () => {
9191
return useGetFeatureVersion('/viewer/config') >= 1;
9292
};
93+
94+
export const useConfigAvailable = () => {
95+
const isBaseConfigsAvailable = useBaseConfigAvailable();
96+
const isFeaturesAvailable = useFeatureFlagsAvailable();
97+
return isBaseConfigsAvailable || isFeaturesAvailable;
98+
};
99+
93100
export const useEditAccessAvailable = () => {
94101
return useGetFeatureVersion('/viewer/acl') >= 2 && !uiFactory.hideGrantAccess;
95102
};

0 commit comments

Comments
 (0)