forked from CIT/Vmeda.Online
		
	MOBILE-2632 message: Apply infinite-load error fix to new views
This commit is contained in:
		
							parent
							
								
									ea78f65656
								
							
						
					
					
						commit
						36dd9035dd
					
				@ -37,6 +37,6 @@
 | 
			
		||||
            </h2>
 | 
			
		||||
        </a>
 | 
			
		||||
 | 
			
		||||
        <core-infinite-loading [enabled]="canLoadMore" (action)="loadMoreMembers($event)"></core-infinite-loading>
 | 
			
		||||
        <core-infinite-loading [enabled]="canLoadMore" (action)="loadMoreMembers($event)" [error]="loadMoreError"></core-infinite-loading>
 | 
			
		||||
    </core-loading>
 | 
			
		||||
</ion-content>
 | 
			
		||||
 | 
			
		||||
@ -31,6 +31,7 @@ export class AddonMessagesConversationInfoPage implements OnInit {
 | 
			
		||||
    conversation: any;
 | 
			
		||||
    members = [];
 | 
			
		||||
    canLoadMore = false;
 | 
			
		||||
    loadMoreError = false;
 | 
			
		||||
 | 
			
		||||
    protected conversationId: number;
 | 
			
		||||
 | 
			
		||||
@ -72,6 +73,8 @@ export class AddonMessagesConversationInfoPage implements OnInit {
 | 
			
		||||
     * @return {Promise<any>} Promise resolved when done.
 | 
			
		||||
     */
 | 
			
		||||
    protected fetchMembers(loadingMore?: boolean): Promise<any> {
 | 
			
		||||
        this.loadMoreError = false;
 | 
			
		||||
 | 
			
		||||
        const limitFrom = loadingMore ? this.members.length : 0;
 | 
			
		||||
 | 
			
		||||
        return this.messagesProvider.getConversationMembers(this.conversationId, limitFrom).then((data) => {
 | 
			
		||||
@ -94,7 +97,7 @@ export class AddonMessagesConversationInfoPage implements OnInit {
 | 
			
		||||
    loadMoreMembers(infiniteComplete?: any): Promise<any> {
 | 
			
		||||
        return this.fetchMembers(true).catch((error) => {
 | 
			
		||||
            this.domUtils.showErrorModalDefault(error, 'Error getting members.');
 | 
			
		||||
            this.canLoadMore = false;
 | 
			
		||||
            this.loadMoreError = true;
 | 
			
		||||
        }).finally(() => {
 | 
			
		||||
            infiniteComplete && infiniteComplete();
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
@ -59,7 +59,7 @@
 | 
			
		||||
                <div *ngIf="favourites.conversations && favourites.expanded">
 | 
			
		||||
                    <ng-container *ngTemplateOutlet="conversationsTemplate; context: {conversations: favourites.conversations}"></ng-container>
 | 
			
		||||
                    <!-- The infinite loading cannot be inside the ng-template, it fails because it doesn't find ion-content. -->
 | 
			
		||||
                    <core-infinite-loading [enabled]="favourites.canLoadMore" (action)="loadMoreConversations(favourites, $event)"></core-infinite-loading>
 | 
			
		||||
                    <core-infinite-loading [enabled]="favourites.canLoadMore" (action)="loadMoreConversations(favourites, $event)" [error]="favourites.loadMoreError"></core-infinite-loading>
 | 
			
		||||
                    <ion-item text-wrap *ngIf="favourites.conversations.length == 0">
 | 
			
		||||
                        <p>{{ 'addon.messages.nofavourites' | translate }}</p>
 | 
			
		||||
                    </ion-item>
 | 
			
		||||
@ -75,7 +75,7 @@
 | 
			
		||||
                <div *ngIf="group.conversations && group.expanded">
 | 
			
		||||
                    <ng-container *ngTemplateOutlet="conversationsTemplate; context: {conversations: group.conversations, avatarOptional: true}"></ng-container>
 | 
			
		||||
                    <!-- The infinite loading cannot be inside the ng-template, it fails because it doesn't find ion-content. -->
 | 
			
		||||
                    <core-infinite-loading [enabled]="group.canLoadMore" (action)="loadMoreConversations(group, $event)"></core-infinite-loading>
 | 
			
		||||
                    <core-infinite-loading [enabled]="group.canLoadMore" (action)="loadMoreConversations(group, $event)" [error]="group.loadMoreError"></core-infinite-loading>
 | 
			
		||||
                    <ion-item text-wrap *ngIf="group.conversations.length == 0">
 | 
			
		||||
                        <p>{{ 'addon.messages.nogroupmessages' | translate }}</p>
 | 
			
		||||
                    </ion-item>
 | 
			
		||||
@ -90,7 +90,7 @@
 | 
			
		||||
                <div *ngIf="individual.conversations && individual.expanded">
 | 
			
		||||
                    <ng-container *ngTemplateOutlet="conversationsTemplate; context: {conversations: individual.conversations}"></ng-container>
 | 
			
		||||
                    <!-- The infinite loading cannot be inside the ng-template, it fails because it doesn't find ion-content. -->
 | 
			
		||||
                    <core-infinite-loading [enabled]="individual.canLoadMore" (action)="loadMoreConversations(individual, $event)"></core-infinite-loading>
 | 
			
		||||
                    <core-infinite-loading [enabled]="individual.canLoadMore" (action)="loadMoreConversations(individual, $event)" [error]="individual.loadMoreError"></core-infinite-loading>
 | 
			
		||||
                    <ion-item text-wrap *ngIf="individual.conversations.length == 0">
 | 
			
		||||
                        <p>{{ 'addon.messages.nomessages' | translate }}</p>
 | 
			
		||||
                    </ion-item>
 | 
			
		||||
 | 
			
		||||
@ -253,6 +253,8 @@ export class AddonMessagesGroupConversationsPage implements OnInit, OnDestroy {
 | 
			
		||||
     * @return {Promise<any>} Promise resolved when done.
 | 
			
		||||
     */
 | 
			
		||||
    fetchDataForOption(option: any, loadingMore?: boolean): Promise<void> {
 | 
			
		||||
        option.loadMoreError = false;
 | 
			
		||||
 | 
			
		||||
        const limitFrom = loadingMore ? option.conversations.length : 0;
 | 
			
		||||
 | 
			
		||||
        return this.messagesProvider.getConversations(option.type, option.favourites, limitFrom).then((data) => {
 | 
			
		||||
@ -353,7 +355,7 @@ export class AddonMessagesGroupConversationsPage implements OnInit, OnDestroy {
 | 
			
		||||
    loadMoreConversations(option: any, infiniteComplete?: any): Promise<any> {
 | 
			
		||||
        return this.fetchDataForOption(option, true).catch((error) => {
 | 
			
		||||
            this.domUtils.showErrorModalDefault(error, 'addon.messages.errorwhileretrievingdiscussions', true);
 | 
			
		||||
            option.canLoadMore = false;
 | 
			
		||||
            option.loadMoreError = true;
 | 
			
		||||
        }).finally(() => {
 | 
			
		||||
            infiniteComplete && infiniteComplete();
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user