@@ -17,6 +17,7 @@ import {
17
17
serviceVersionKeyQuery ,
18
18
} from '../../../utils/constants.tsx' ;
19
19
import { getFourthLevelKeysFromAvailableServicesTree } from '../../common/registeredServices/registeredServiceProps.ts' ;
20
+ import { filterNodes } from '../../common/tree/filterTreeData' ;
20
21
import { RegisteredServicesTree } from './RegisteredServicesTree.tsx' ;
21
22
import ServiceContent from './ServiceContent.tsx' ;
22
23
@@ -28,6 +29,7 @@ export function RegisteredServicesFullView({
28
29
availableServiceList : ServiceTemplateDetailVo [ ] ;
29
30
} ) : React . JSX . Element {
30
31
const [ urlParams ] = useSearchParams ( ) ;
32
+ const [ searchValue , setSearchValue ] = useState ( '' ) ;
31
33
32
34
const serviceNamespaceInQuery = useMemo ( ( ) => {
33
35
const queryInUri = decodeURI ( urlParams . get ( serviceNamespaceQuery ) ?? '' ) ;
@@ -121,6 +123,23 @@ export function RegisteredServicesFullView({
121
123
// eslint-disable-next-line react-hooks/exhaustive-deps
122
124
} , [ selectedKeyInTree ] ) ;
123
125
126
+ function isParentTreeSelected ( selectedKeyInTree : React . Key ) : boolean {
127
+ let isParentNode : boolean = false ;
128
+ treeData . forEach ( ( dataNode : DataNode ) => {
129
+ if ( dataNode . key === selectedKeyInTree ) {
130
+ isParentNode = true ;
131
+ }
132
+ } ) ;
133
+ return isParentNode ;
134
+ }
135
+
136
+ const onSelect = ( selectedKeys : React . Key [ ] ) => {
137
+ if ( selectedKeys . length === 0 || isParentTreeSelected ( selectedKeys [ 0 ] ) ) {
138
+ return ;
139
+ }
140
+ setSelectedKeyInTree ( selectedKeys [ 0 ] ) ;
141
+ } ;
142
+
124
143
return (
125
144
< >
126
145
< div className = { catalogStyles . leftClass } >
@@ -129,9 +148,10 @@ export function RegisteredServicesFullView({
129
148
Services
130
149
</ div >
131
150
< RegisteredServicesTree
132
- treeData = { treeData }
151
+ treeData = { filterNodes ( treeData , searchValue ) }
133
152
selectedKeyInTree = { selectedKeyInTree }
134
- setSelectedKeyInTree = { setSelectedKeyInTree }
153
+ onSelect = { onSelect }
154
+ setSearchValue = { setSearchValue }
135
155
/>
136
156
</ div >
137
157
< div className = { catalogStyles . middleClass } />
0 commit comments