diff --git a/src/addon/mod/glossary/components/index/index.ts b/src/addon/mod/glossary/components/index/index.ts index a2016e96b..c12178ba2 100644 --- a/src/addon/mod/glossary/components/index/index.ts +++ b/src/addon/mod/glossary/components/index/index.ts @@ -189,6 +189,21 @@ export class AddonModGlossaryIndexComponent extends CoreCourseModuleMainActivity Array.prototype.push.apply(this.entries, result.entries); } else { this.entries = result.entries; + + if (this.splitviewCtrl.isOn()) { + // Load the first entry. + if (this.entries.length > 0) { + const found = this.selectedEntry && this.entries.some((entry) => entry.id == this.selectedEntry); + + // The current selected entry is not found in the current list, open first item. + if (!found) { + this.openEntry(this.entries[0].id); + } + } else { + this.selectedEntry = null; + this.splitviewCtrl.emptyDetails(); + } + } } this.canLoadMore = this.entries.length < result.count; }).catch((error) => { diff --git a/src/core/user/components/participants/participants.ts b/src/core/user/components/participants/participants.ts index bcb4edce8..23e8fb2e5 100644 --- a/src/core/user/components/participants/participants.ts +++ b/src/core/user/components/participants/participants.ts @@ -161,16 +161,10 @@ export class CoreUserParticipantsComponent implements OnInit { this.displaySearchResults = false; this.participants = []; this.searchPage = 0; - this.splitviewCtrl.emptyDetails(); // Remove search results and display all participants. this.participantsLoaded = false; - this.fetchData(true).then(() => { - if (this.splitviewCtrl.isOn() && this.participants.length > 0) { - // Take first and load it. - this.gotoParticipant(this.participants[0].id); - } - }); + this.fetchData(true); } /** @@ -201,9 +195,19 @@ export class CoreUserParticipantsComponent implements OnInit { this.canLoadMore = result.canLoadMore; this.searchPage++; - if (!loadMore && this.splitviewCtrl.isOn() && this.participants.length > 0) { - // Take first and load it. - this.gotoParticipant(this.participants[0].id); + if (!loadMore && this.splitviewCtrl.isOn()) { + // Load the first entry. + if (this.participants.length > 0) { + const found = this.participantId && this.participants.some((user) => user.id == this.participantId); + + // The current selected user is not found in the current list, open first item. + if (!found) { + this.gotoParticipant(this.participants[0].id); + } + } else { + this.participantId = null; + this.splitviewCtrl.emptyDetails(); + } } }).catch((error) => {