Skip to content

Commit 097faaf

Browse files
Merge branch 'main' into fix/storage-split-search
2 parents f8b08ca + ef46512 commit 097faaf

File tree

6 files changed

+33
-13
lines changed

6 files changed

+33
-13
lines changed

eslint.config.mjs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,18 @@ export default [
4747
curly: ['error', 'all'],
4848
'react-hooks/exhaustive-deps': 'warn',
4949
'react-hooks/rules-of-hooks': 'error',
50+
'no-restricted-syntax': [
51+
'error',
52+
{
53+
selector:
54+
"ImportDeclaration[source.value='react'] :matches(ImportNamespaceSpecifier, ImportDefaultSpecifier:not([local.name='React']), ImportSpecifier)",
55+
message: "Please use import React from 'react' instead.",
56+
},
57+
{
58+
selector: 'JSXFragment>JSXOpeningFragment:not(:has(JSXIdentifier))',
59+
message: 'Please use React.Fragment instead.',
60+
},
61+
],
5062
},
5163
},
5264
// TypeScript-specific rules that require type information

src/components/Portal/Portal.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import * as React from 'react';
1+
import React from 'react';
22

33
import ReactDOM from 'react-dom';
44

src/containers/App/AppTitleContext.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import React, {createContext, useContext} from 'react';
1+
import React from 'react';
22

33
interface AppTitleContextType {
44
appTitle: string;
55
}
66

7-
const AppTitleContext = createContext<AppTitleContextType | undefined>(undefined);
7+
const AppTitleContext = React.createContext<AppTitleContextType | undefined>(undefined);
88

99
interface AppTitleProviderProps {
1010
appTitle: string;
@@ -16,7 +16,7 @@ export function AppTitleProvider({appTitle, children}: AppTitleProviderProps) {
1616
}
1717

1818
export function useAppTitle(): AppTitleContextType {
19-
const context = useContext(AppTitleContext);
19+
const context = React.useContext(AppTitleContext);
2020
if (context === undefined) {
2121
throw new Error('useAppTitle must be used within an AppTitleProvider');
2222
}

src/containers/Tenant/Diagnostics/TenantOverview/MetricsTabs/MetricsTabs.tsx

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import {useMemo} from 'react';
1+
import React from 'react';
22

33
import {Flex} from '@gravity-ui/uikit';
44
import {useLocation} from 'react-router-dom';
@@ -75,22 +75,28 @@ export function MetricsTabs({
7575
};
7676

7777
// Use only pools that directly indicate resources available to perform user queries
78-
const cpuPools = useMemo(
78+
const cpuPools = React.useMemo(
7979
() =>
8080
(poolsCpuStats || []).filter((pool) => !(pool.name === 'Batch' || pool.name === 'IO')),
8181
[poolsCpuStats],
8282
);
83-
const cpuMetrics = useMemo(() => calculateMetricAggregates(cpuPools), [cpuPools]);
83+
const cpuMetrics = React.useMemo(() => calculateMetricAggregates(cpuPools), [cpuPools]);
8484

8585
// Calculate storage metrics using utility
86-
const storageStats = useMemo(
86+
const storageStats = React.useMemo(
8787
() => tabletStorageStats || blobStorageStats || [],
8888
[tabletStorageStats, blobStorageStats],
8989
);
90-
const storageMetrics = useMemo(() => calculateMetricAggregates(storageStats), [storageStats]);
90+
const storageMetrics = React.useMemo(
91+
() => calculateMetricAggregates(storageStats),
92+
[storageStats],
93+
);
9194

9295
// Calculate memory metrics using utility
93-
const memoryMetrics = useMemo(() => calculateMetricAggregates(memoryStats), [memoryStats]);
96+
const memoryMetrics = React.useMemo(
97+
() => calculateMetricAggregates(memoryStats),
98+
[memoryStats],
99+
);
94100

95101
// Pass raw network values; DedicatedMetricsTabs computes percent and legend
96102
const [showNetworkUtilization] = useSetting<boolean>(SHOW_NETWORK_UTILIZATION);

src/containers/Tenant/Diagnostics/TenantOverview/TenantCpu/TenantCpu.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import React from 'react';
2+
13
import {Flex} from '@gravity-ui/uikit';
24

35
import {setTopQueriesFilters} from '../../../../../store/reducers/executeTopQueries/executeTopQueries';
@@ -34,7 +36,7 @@ export function TenantCpu({database, databaseType, databaseFullPath}: TenantCpuP
3436
return (
3537
<Flex direction="column" gap={4}>
3638
{!isServerless && (
37-
<>
39+
<React.Fragment>
3840
<TenantDashboard database={database} charts={cpuDashboardConfig} />
3941
<StatsWrapper
4042
allEntitiesLink={allNodesLink}
@@ -48,7 +50,7 @@ export function TenantCpu({database, databaseType, databaseFullPath}: TenantCpuP
4850
>
4951
<TopNodesByCpu database={database} />
5052
</StatsWrapper>
51-
</>
53+
</React.Fragment>
5254
)}
5355
<StatsWrapper title={i18n('title_top-shards')} allEntitiesLink={topShardsLink}>
5456
<TopShards database={database} databaseFullPath={databaseFullPath} />

src/routes.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import * as React from 'react';
1+
import React from 'react';
22

33
import type {Location} from 'history';
44
import isEmpty from 'lodash/isEmpty';

0 commit comments

Comments
 (0)