@@ -23,7 +23,7 @@ const ToolCatalog: React.FC<ToolCatalogProps> = ({
23
23
const [ expandedNotEnabled , setExpandedNotEnabled ] = useState ( localStorage . getItem ( 'expandedNotEnabled' ) !== 'false' ) ;
24
24
25
25
// Memoize the filtered catalog items to prevent unnecessary recalculations
26
- const result = useMemo ( ( ) => {
26
+ const all = useMemo ( ( ) => {
27
27
const filteredItems = catalogItems . filter ( ( item ) => {
28
28
return item . name . toLowerCase ( ) . includes ( search . toLowerCase ( ) ) ;
29
29
} ) ;
@@ -38,36 +38,41 @@ const ToolCatalog: React.FC<ToolCatalogProps> = ({
38
38
} )
39
39
: filteredItems ;
40
40
} , [ catalogItems , search , sort ] ) ;
41
+ const enabled = all . filter ( ( item ) => item . registered ) ;
41
42
42
43
return (
43
44
< >
44
- < Typography
45
- variant = 'subtitle2'
46
- sx = { { color : "text.secondary" , display : "flex" , alignItems : "center" , cursor : "pointer" , width : 'fit-content' } }
47
- onClick = { ( ) => {
48
- const newExpanded = ! expandedEnabled
49
- setExpandedEnabled ( newExpanded ) ;
50
- localStorage . setItem ( 'expandedEnabled' , JSON . stringify ( newExpanded ) ) ;
51
- } } >
52
- Enabled tools
53
- { expandedEnabled ? < KeyboardArrowDownIcon fontSize = "small" /> : < KeyboardArrowRightIcon fontSize = "small" /> }
54
- </ Typography >
45
+ { ( enabled . length > 0 ) && (
46
+ < >
47
+ < Typography
48
+ variant = 'subtitle2'
49
+ sx = { { color : "text.secondary" , display : "flex" , alignItems : "center" , cursor : "pointer" , width : 'fit-content' } }
50
+ onClick = { ( ) => {
51
+ const newExpanded = ! expandedEnabled
52
+ setExpandedEnabled ( newExpanded ) ;
53
+ localStorage . setItem ( 'expandedEnabled' , JSON . stringify ( newExpanded ) ) ;
54
+ } } >
55
+ { `Enabled (${ enabled . length } )` }
56
+ { expandedEnabled ? < KeyboardArrowDownIcon fontSize = "small" /> : < KeyboardArrowRightIcon fontSize = "small" /> }
57
+ </ Typography >
55
58
56
- < Collapse in = { expandedEnabled } >
57
- < Grid2 container spacing = { 1 } sx = { CATALOG_LAYOUT_SX } >
58
- { result . filter ( ( item ) => item . registered ) . map ( ( catalogItem ) => {
59
- return (
60
- < Grid2 size = { { xs : 12 , sm : 6 , md : 4 } } key = { catalogItem . name } >
61
- < Tile
62
- item = { catalogItem }
63
- client = { client }
64
- registryLoading = { registryLoading }
65
- />
66
- </ Grid2 >
67
- ) ;
68
- } ) }
69
- </ Grid2 >
70
- </ Collapse >
59
+ < Collapse in = { expandedEnabled } >
60
+ < Grid2 container spacing = { 1 } sx = { CATALOG_LAYOUT_SX } >
61
+ { enabled . map ( ( catalogItem ) => {
62
+ return (
63
+ < Grid2 size = { { xs : 12 , sm : 6 , md : 4 } } key = { catalogItem . name } >
64
+ < Tile
65
+ item = { catalogItem }
66
+ client = { client }
67
+ registryLoading = { registryLoading }
68
+ />
69
+ </ Grid2 >
70
+ ) ;
71
+ } ) }
72
+ </ Grid2 >
73
+ </ Collapse >
74
+ </ >
75
+ ) }
71
76
72
77
< Typography
73
78
variant = 'subtitle2'
@@ -77,13 +82,13 @@ const ToolCatalog: React.FC<ToolCatalogProps> = ({
77
82
setExpandedNotEnabled ( newExpanded ) ;
78
83
localStorage . setItem ( 'expandedNotEnabled' , JSON . stringify ( newExpanded ) ) ;
79
84
} } >
80
- All the tools
85
+ { ` All ( ${ all . length } )` }
81
86
{ expandedNotEnabled ? < KeyboardArrowDownIcon fontSize = "small" /> : < KeyboardArrowRightIcon fontSize = "small" /> }
82
87
</ Typography >
83
88
84
89
< Collapse in = { expandedNotEnabled } >
85
90
< Grid2 container spacing = { 1 } sx = { CATALOG_LAYOUT_SX } >
86
- { result . filter ( ( item ) => true ) . map ( ( catalogItem ) => {
91
+ { all . map ( ( catalogItem ) => {
87
92
return (
88
93
< Grid2 size = { { xs : 12 , sm : 6 , md : 4 } } key = { catalogItem . name } >
89
94
< Tile
0 commit comments