@@ -314,7 +314,7 @@ class Browser extends DashboardView {
314
314
}
315
315
316
316
/**
317
- * Load filters for all classes
317
+ * Load filters for all classes in parallel for better performance
318
318
*/
319
319
async loadAllClassFilters ( ) {
320
320
if ( ! this . classPreferencesManager ) {
@@ -329,19 +329,27 @@ class Browser extends DashboardView {
329
329
// Set loading state
330
330
this . setState ( { loadingClassFilters : true } ) ;
331
331
332
- const classFilters = { } ;
333
332
const classNames = Object . keys ( classes . toObject ( ) ) ;
334
333
335
- // Load filters for each class
336
- for ( const className of classNames ) {
334
+ // Load filters for all classes in parallel
335
+ const filterPromises = classNames . map ( async ( className ) => {
337
336
try {
338
337
const filters = await this . classPreferencesManager . getFilters ( className ) ;
339
- classFilters [ className ] = filters || [ ] ;
338
+ return { className, filters : filters || [ ] } ;
340
339
} catch ( error ) {
341
340
console . warn ( `Failed to load filters for class ${ className } :` , error ) ;
342
- classFilters [ className ] = [ ] ;
341
+ return { className, filters : [ ] } ;
343
342
}
344
- }
343
+ } ) ;
344
+
345
+ // Wait for all filter loading to complete
346
+ const results = await Promise . all ( filterPromises ) ;
347
+
348
+ // Convert results array to object
349
+ const classFilters = { } ;
350
+ results . forEach ( ( { className, filters } ) => {
351
+ classFilters [ className ] = filters ;
352
+ } ) ;
345
353
346
354
this . setState ( {
347
355
classFilters,
0 commit comments