Skip to content

Commit 73734c6

Browse files
committed
loading fix
1 parent 7dad659 commit 73734c6

File tree

2 files changed

+20
-12
lines changed

2 files changed

+20
-12
lines changed

src/dashboard/Data/Browser/Browser.react.js

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,7 @@ class Browser extends DashboardView {
314314
}
315315

316316
/**
317-
* Load filters for all classes
317+
* Load filters for all classes in parallel for better performance
318318
*/
319319
async loadAllClassFilters() {
320320
if (!this.classPreferencesManager) {
@@ -329,19 +329,27 @@ class Browser extends DashboardView {
329329
// Set loading state
330330
this.setState({ loadingClassFilters: true });
331331

332-
const classFilters = {};
333332
const classNames = Object.keys(classes.toObject());
334333

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) => {
337336
try {
338337
const filters = await this.classPreferencesManager.getFilters(className);
339-
classFilters[className] = filters || [];
338+
return { className, filters: filters || [] };
340339
} catch (error) {
341340
console.warn(`Failed to load filters for class ${className}:`, error);
342-
classFilters[className] = [];
341+
return { className, filters: [] };
343342
}
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+
});
345353

346354
this.setState({
347355
classFilters,

src/lib/FilterPreferencesManager.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,13 @@ export default class FilterPreferencesManager {
2828
*/
2929
async getClassPreferences(applicationId, className) {
3030
// Check if server storage is enabled and user prefers server storage
31-
const isServerStorageEnabled = this.serverConfigStorage.isServerStorageEnabled();
32-
const prefersServerStorage = this.storagePreferences.prefersServerStorage('filters');
31+
const isServerStorageEnabled = this.serverStorage.isServerConfigEnabled();
32+
const prefersServer = prefersServerStorage(applicationId);
3333

34-
if (isServerStorageEnabled && prefersServerStorage) {
35-
return await this.getServerClassPreferences(applicationId, className);
34+
if (isServerStorageEnabled && prefersServer) {
35+
return await this._getClassPreferencesFromServer(applicationId, className);
3636
} else {
37-
return this.getLocalClassPreferences(applicationId, className);
37+
return this._getClassPreferencesFromLocal(applicationId, className);
3838
}
3939
}
4040

0 commit comments

Comments
 (0)