@@ -23,7 +23,7 @@ import {vDiskApi} from '../../store/reducers/vdisk/vdisk';
2323import type { ModifyDiskResponse } from '../../types/api/modifyDisk' ;
2424import type { TVDiskID } from '../../types/api/vdisk' ;
2525import { cn } from '../../utils/cn' ;
26- import { getSeverityColor , getVDiskSlotBasedId } from '../../utils/disks/helpers' ;
26+ import { getSeverityColor } from '../../utils/disks/helpers' ;
2727import { useAutoRefreshInterval , useTypedDispatch } from '../../utils/hooks' ;
2828import {
2929 useIsUserAllowedToMakeChanges ,
@@ -69,54 +69,27 @@ export function VDiskPage() {
6969 const newDiskApiAvailable = useDiskPagesAvailable ( ) ;
7070 const isViewerUser = useIsViewerUser ( ) ;
7171
72- const [
73- {
74- nodeId,
75- pDiskId,
76- vDiskSlotId,
77- vDiskId : vDiskIdParam ,
78- activeTab,
79- database : databaseParam ,
80- groupId,
81- } ,
82- ] = useQueryParams ( {
83- nodeId : StringParam ,
84- pDiskId : StringParam ,
85- vDiskSlotId : StringParam ,
86- vDiskId : StringParam ,
87- activeTab : StringParam ,
88- database : StringParam ,
89- groupId : StringParam ,
90- } ) ;
72+ const [ { nodeId, pDiskId, vDiskId : vDiskIdParam , activeTab, database : databaseParam } ] =
73+ useQueryParams ( {
74+ nodeId : StringParam ,
75+ pDiskId : StringParam ,
76+ vDiskId : StringParam ,
77+ activeTab : StringParam ,
78+ database : StringParam ,
79+ } ) ;
9180 const database = databaseParam ?? undefined ;
9281
9382 const vDiskTab = vDiskTabSchema . parse ( activeTab ) ;
94- React . useEffect ( ( ) => {
95- if ( isViewerUser ) {
96- dispatch ( setHeaderBreadcrumbs ( 'vDisk' , { nodeId, pDiskId, vDiskSlotId} ) ) ;
97- } else {
98- dispatch (
99- setHeaderBreadcrumbs ( 'vDisk' , {
100- groupId : groupId ,
101- tenantName : database ,
102- vDiskSlotId,
103- } ) ,
104- ) ;
105- }
106- } , [ dispatch , nodeId , pDiskId , vDiskSlotId , isViewerUser , groupId , database ] ) ;
10783
10884 const [ autoRefreshInterval ] = useAutoRefreshInterval ( ) ;
10985
11086 const params = React . useMemo ( ( ) => {
111- if ( ! isNil ( nodeId ) && ! isNil ( pDiskId ) && ! isNil ( vDiskSlotId ) && isViewerUser ) {
112- return { nodeId, pDiskId, vDiskSlotId, database} ;
113- }
11487 if ( ! isNil ( vDiskIdParam ) ) {
115- return { vDiskId : vDiskIdParam , database} ;
88+ return { vDiskId : vDiskIdParam , nodeId : nodeId ?. toString ( ) , database} ;
11689 }
11790
11891 return skipToken ;
119- } , [ nodeId , pDiskId , vDiskSlotId , vDiskIdParam , database , isViewerUser ] ) ;
92+ } , [ nodeId , vDiskIdParam , database ] ) ;
12093 const {
12194 currentData : vDiskData ,
12295 isFetching,
@@ -125,6 +98,30 @@ export function VDiskPage() {
12598 pollingInterval : autoRefreshInterval ,
12699 } ) ;
127100
101+ const vDiskSlotId = vDiskData ?. VDiskSlotId ;
102+
103+ React . useEffect ( ( ) => {
104+ if ( isViewerUser ) {
105+ dispatch ( setHeaderBreadcrumbs ( 'vDisk' , { nodeId, pDiskId, vDiskSlotId} ) ) ;
106+ } else {
107+ dispatch (
108+ setHeaderBreadcrumbs ( 'vDisk' , {
109+ groupId : vDiskData ?. VDiskId ?. GroupID ,
110+ tenantName : database ,
111+ vDiskSlotId,
112+ } ) ,
113+ ) ;
114+ }
115+ } , [
116+ dispatch ,
117+ nodeId ,
118+ pDiskId ,
119+ isViewerUser ,
120+ database ,
121+ vDiskData ?. VDiskId ?. GroupID ,
122+ vDiskSlotId ,
123+ ] ) ;
124+
128125 const loading = isFetching && vDiskData === undefined ;
129126 const { NodeHost, NodeId, NodeType, NodeDC, PDiskId, PDiskType, Severity, VDiskId} =
130127 vDiskData || { } ;
@@ -167,12 +164,14 @@ export function VDiskPage() {
167164 }
168165 } ;
169166
167+ const vDiskId = vDiskData ?. StringifiedId || ( loading ? undefined : vDiskIdParam ) ;
168+
170169 const handleAfterEvictVDisk = ( ) => {
171170 dispatch (
172171 api . util . invalidateTags ( [
173172 {
174173 type : 'VDiskData' ,
175- id : getVDiskSlotBasedId ( nodeId || 0 , pDiskId || 0 , vDiskSlotId || 0 ) ,
174+ id : vDiskId ?. toString ( ) ,
176175 } ,
177176 'StorageData' ,
178177 ] ) ,
@@ -214,8 +213,6 @@ export function VDiskPage() {
214213 ) ;
215214 } ;
216215
217- const vDiskId = vDiskData ?. StringifiedId || ( loading ? undefined : vDiskIdParam ) ;
218-
219216 const renderPageTitle = ( ) => {
220217 return (
221218 < EntityPageTitle
@@ -269,9 +266,7 @@ export function VDiskPage() {
269266 {
270267 nodeId : nodeId ?. toString ( ) ,
271268 pDiskId : pDiskId ?. toString ( ) ,
272- vDiskSlotId : vDiskSlotId ?. toString ( ) ,
273269 vDiskId : vDiskId ?. toString ( ) ,
274- groupId : groupId ?. toString ( ) ,
275270 } ,
276271 { activeTab : id , database} ,
277272 ) ;
0 commit comments