Skip to content

Commit 2b1617a

Browse files
Fixed a promise issue on details screen causing it to delay
1 parent 5b4c6a5 commit 2b1617a

File tree

2 files changed

+17
-12
lines changed

2 files changed

+17
-12
lines changed

frontend/src/components/details.js

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -295,21 +295,31 @@ var Details = {
295295
var castPromise = Promise.resolve(item.People || []);
296296
var seasonsPromise = item.Type === 'Series' ? self.fetchSeasons(api, itemId).catch(function() { return []; }) : Promise.resolve([]);
297297
var episodesPromise = (item.Type === 'Episode' && item.SeasonId) ? self.fetchEpisodes(api, item.SeriesId, item.SeasonId).catch(function() { return []; }) : ((item.Type === 'Season' && item.SeriesId) ? self.fetchEpisodes(api, item.SeriesId, item.Id).catch(function() { return []; }) : Promise.resolve([]));
298-
var featuresPromise = self.fetchSpecialFeatures(api, item).catch(function() { return []; });
299-
var collectionsPromise = self.fetchCollectionItems(api, item).catch(function() { return null; });
300298

301-
return Promise.all([similarPromise, castPromise, seasonsPromise, episodesPromise, featuresPromise, collectionsPromise]).then(function(results) {
299+
return Promise.all([similarPromise, castPromise, seasonsPromise, episodesPromise]).then(function(results) {
302300
var similar = results[0];
303301
var cast = results[1];
304302
var seasons = results[2];
305303
var episodes = results[3];
306-
var features = results[4] || [];
307-
var collections = results[5] || { title: '', items: [] };
308304

309305
if (item.Type === 'Season') {
310306
self.renderSeasonDetails(item, episodes);
311307
} else {
312-
self.renderDetails(item, similar, cast, seasons, episodes, features, collections);
308+
self.renderDetails(item, similar, cast, seasons, episodes, [], { title: '', items: [] });
309+
Promise.all([
310+
self.fetchSpecialFeatures(api, item).catch(function() { return []; }),
311+
self.fetchCollectionItems(api, item).catch(function() { return { title: '', items: [] }; })
312+
]).then(function(auxResults) {
313+
if (!self.currentItem || self.currentItem.Id !== item.Id) return;
314+
315+
var features = auxResults[0] || [];
316+
var collections = auxResults[1] || { title: '', items: [] };
317+
var hasFeatures = features.length > 0;
318+
var hasCollectionItems = collections && collections.items && collections.items.length > 0;
319+
320+
if (!hasFeatures && !hasCollectionItems) return;
321+
self.renderDetails(item, similar, cast, seasons, episodes, features, collections);
322+
});
313323
}
314324

315325
if (MdbList.isEnabled()) {

frontend/src/plugin.js

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -90,12 +90,7 @@ const Plugin = {
9090
this._currentUserId = this._getLoggedInUserId();
9191

9292
Storage.checkUserOwnership(this._currentUserId);
93-
await Promise.race([
94-
Storage.initSync(),
95-
new Promise(function(resolve) {
96-
setTimeout(resolve, Storage.INITIAL_SYNC_TIMEOUT_MS);
97-
})
98-
]);
93+
Storage.initSync();
9994

10095
try {
10196
var settings = Storage.getAll();

0 commit comments

Comments
 (0)