From a596a27c9cc6619b0c90d432d1863f35e3bd8090 Mon Sep 17 00:00:00 2001 From: sareyu Date: Tue, 10 Sep 2024 15:05:17 +0300 Subject: [PATCH 1/3] feature: enable nodes switch in storage tab on node page --- src/containers/Node/Node.tsx | 12 ++---------- src/containers/Node/NodePages.ts | 9 +++++---- src/containers/Storage/Storage.tsx | 8 ++------ 3 files changed, 9 insertions(+), 20 deletions(-) diff --git a/src/containers/Node/Node.tsx b/src/containers/Node/Node.tsx index a0ecf0849e..0b6f659c3a 100644 --- a/src/containers/Node/Node.tsx +++ b/src/containers/Node/Node.tsx @@ -18,8 +18,7 @@ import {useAutoRefreshInterval, useTypedDispatch} from '../../utils/hooks'; import {StorageWrapper} from '../Storage/StorageWrapper'; import {Tablets} from '../Tablets'; -import {NODE_PAGES, OVERVIEW, STORAGE, STRUCTURE, TABLETS} from './NodePages'; -import NodeStructure from './NodeStructure/NodeStructure'; +import {NODE_PAGES, OVERVIEW, STORAGE, TABLETS} from './NodePages'; import './Node.scss'; @@ -53,11 +52,7 @@ export function Node(props: NodeProps) { const node = currentData; const {activeTabVerified, nodeTabs} = React.useMemo(() => { - const hasStorage = node?.Roles?.find((el) => el === STORAGE_ROLE); - - const nodePages = hasStorage ? NODE_PAGES : NODE_PAGES.filter((el) => el.id !== STORAGE); - - const actualNodeTabs = nodePages.map((page) => { + const actualNodeTabs = NODE_PAGES.map((page) => { return { ...page, title: page.name, @@ -136,9 +131,6 @@ export function Node(props: NodeProps) { return ; } - case STRUCTURE: { - return ; - } default: return false; } diff --git a/src/containers/Node/NodePages.ts b/src/containers/Node/NodePages.ts index 235b060092..71c4998bc7 100644 --- a/src/containers/Node/NodePages.ts +++ b/src/containers/Node/NodePages.ts @@ -17,10 +17,11 @@ export const NODE_PAGES = [ id: STORAGE, name: 'Storage', }, - { - id: STRUCTURE, - name: 'Structure', - }, + // TODO: remove Node Structure component + // { + // id: STRUCTURE, + // name: 'Structure', + // }, { id: TABLETS, name: 'Tablets', diff --git a/src/containers/Storage/Storage.tsx b/src/containers/Storage/Storage.tsx index 75c843e54c..0d4c1601b6 100644 --- a/src/containers/Storage/Storage.tsx +++ b/src/containers/Storage/Storage.tsx @@ -65,7 +65,7 @@ export const Storage = ({additionalNodesProps, database, nodeId}: StorageProps) uptimeFilter: StringParam, usageFilter: UsageFilterParam, }); - const type = storageTypeSchema.parse(queryParams.type); + const storageType = storageTypeSchema.parse(queryParams.type); const visibleEntities = visibleEntitiesSchema.parse(queryParams.visible); const filter = queryParams.search ?? ''; const uptimeFilter = nodesUptimeFilterValuesSchema.parse(queryParams.uptimeFilter); @@ -83,10 +83,6 @@ export const Storage = ({additionalNodesProps, database, nodeId}: StorageProps) }); const groupsSortParams = groupSort.sortOrder ? groupSort : getDefaultSortGroup(visibleEntities); - // Do not display Nodes table for Node page (NodeId present) - const isNodePage = nodeId !== undefined; - const storageType = isNodePage ? STORAGE_TYPES.groups : type; - const nodesQuery = storageApi.useGetStorageNodesInfoQuery( {database, visibleEntities}, { @@ -191,7 +187,7 @@ export const Storage = ({additionalNodesProps, database, nodeId}: StorageProps) Date: Tue, 10 Sep 2024 15:41:30 +0300 Subject: [PATCH 2/3] fix: pass node_id to api --- src/containers/Storage/Storage.tsx | 2 +- src/services/api.ts | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/containers/Storage/Storage.tsx b/src/containers/Storage/Storage.tsx index 0d4c1601b6..d271b65b21 100644 --- a/src/containers/Storage/Storage.tsx +++ b/src/containers/Storage/Storage.tsx @@ -84,7 +84,7 @@ export const Storage = ({additionalNodesProps, database, nodeId}: StorageProps) const groupsSortParams = groupSort.sortOrder ? groupSort : getDefaultSortGroup(visibleEntities); const nodesQuery = storageApi.useGetStorageNodesInfoQuery( - {database, visibleEntities}, + {database, visibleEntities, node_id: nodeId}, { skip: storageType !== STORAGE_TYPES.nodes, pollingInterval: autoRefreshInterval, diff --git a/src/services/api.ts b/src/services/api.ts index c9e52c93f7..c5bd5fc505 100644 --- a/src/services/api.ts +++ b/src/services/api.ts @@ -216,6 +216,7 @@ export class YdbEmbeddedAPI extends AxiosWrapper { // TODO: remove after remove tenant param database: params.database || params.tenant, tenant: params.tenant || params.database, + node_id: params.node_id, }, {concurrentId, requestConfig: {signal}}, ); From fd8988a31670dd7713d1e50b6c687420c0bf9f07 Mon Sep 17 00:00:00 2001 From: sareyu Date: Tue, 10 Sep 2024 18:20:06 +0300 Subject: [PATCH 3/3] fix: undo rm nodePages filter --- src/containers/Node/Node.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/containers/Node/Node.tsx b/src/containers/Node/Node.tsx index 0b6f659c3a..93da57d2ba 100644 --- a/src/containers/Node/Node.tsx +++ b/src/containers/Node/Node.tsx @@ -52,7 +52,11 @@ export function Node(props: NodeProps) { const node = currentData; const {activeTabVerified, nodeTabs} = React.useMemo(() => { - const actualNodeTabs = NODE_PAGES.map((page) => { + const hasStorage = node?.Roles?.find((el) => el === STORAGE_ROLE); + + const nodePages = hasStorage ? NODE_PAGES : NODE_PAGES.filter((el) => el.id !== STORAGE); + + const actualNodeTabs = nodePages.map((page) => { return { ...page, title: page.name,