forked from EVOgeek/Vmeda.Online
		
	MOBILE-4085 course-storage: Add change detection OnPush
This commit is contained in:
		
							parent
							
								
									6b08955ffa
								
							
						
					
					
						commit
						35946f6f31
					
				| @ -13,7 +13,7 @@ | ||||
| // limitations under the License.
 | ||||
| 
 | ||||
| import { CoreConstants } from '@/core/constants'; | ||||
| import { Component, ElementRef, OnDestroy, OnInit } from '@angular/core'; | ||||
| import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, OnDestroy, OnInit } from '@angular/core'; | ||||
| import { CoreCourse, CoreCourseProvider } from '@features/course/services/course'; | ||||
| import { | ||||
|     CoreCourseHelper, | ||||
| @ -41,6 +41,7 @@ import { CoreEventObserver, CoreEvents } from '@singletons/events'; | ||||
|     selector: 'page-addon-storagemanager-course-storage', | ||||
|     templateUrl: 'course-storage.html', | ||||
|     styleUrls: ['course-storage.scss'], | ||||
|     changeDetection: ChangeDetectionStrategy.OnPush, | ||||
| }) | ||||
| export class AddonStorageManagerCourseStoragePage implements OnInit, OnDestroy { | ||||
| 
 | ||||
| @ -71,7 +72,7 @@ export class AddonStorageManagerCourseStoragePage implements OnInit, OnDestroy { | ||||
|     protected isDestroyed = false; | ||||
|     protected isGuest = false; | ||||
| 
 | ||||
|     constructor(protected elementRef: ElementRef) { | ||||
|     constructor(protected elementRef: ElementRef, protected changeDetectorRef: ChangeDetectorRef) { | ||||
|         // Refresh the enabled flags if site is updated.
 | ||||
|         this.siteUpdatedObserver = CoreEvents.on(CoreEvents.SITE_UPDATED, () => { | ||||
|             this.downloadCourseEnabled = !CoreCourses.isDownloadCourseDisabledInSite(); | ||||
| @ -79,7 +80,7 @@ export class AddonStorageManagerCourseStoragePage implements OnInit, OnDestroy { | ||||
| 
 | ||||
|             this.initCoursePrefetch(); | ||||
|             this.initModulePrefetch(); | ||||
| 
 | ||||
|             this.changeDetectorRef.markForCheck(); | ||||
|         }, CoreSites.getCurrentSiteId()); | ||||
|     } | ||||
| 
 | ||||
| @ -135,7 +136,7 @@ export class AddonStorageManagerCourseStoragePage implements OnInit, OnDestroy { | ||||
|             this.initCoursePrefetch(), | ||||
|             this.initModulePrefetch(), | ||||
|         ]); | ||||
| 
 | ||||
|         this.changeDetectorRef.markForCheck(); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
| @ -313,12 +314,13 @@ export class AddonStorageManagerCourseStoragePage implements OnInit, OnDestroy { | ||||
|             } | ||||
| 
 | ||||
|             module.calculatingSize = true; | ||||
|             this.changeDetectorRef.markForCheck(); | ||||
| 
 | ||||
|             if (!section) { | ||||
|                 section = this.sections.find((section) => section.modules.some((mod) => mod.id === module.id)); | ||||
|                 if (section) { | ||||
|                     section.calculatingSize = true; | ||||
| 
 | ||||
|                     this.changeDetectorRef.markForCheck(); | ||||
|                 } | ||||
|             } | ||||
| 
 | ||||
| @ -336,7 +338,7 @@ export class AddonStorageManagerCourseStoragePage implements OnInit, OnDestroy { | ||||
|                 // Ignore errors, it shouldn't happen.
 | ||||
|             } finally { | ||||
|                 module.calculatingSize = false; | ||||
| 
 | ||||
|                 this.changeDetectorRef.markForCheck(); | ||||
|             } | ||||
|         })); | ||||
| 
 | ||||
| @ -344,7 +346,7 @@ export class AddonStorageManagerCourseStoragePage implements OnInit, OnDestroy { | ||||
|         if (section) { | ||||
|             section.calculatingSize = false; | ||||
|         } | ||||
| 
 | ||||
|         this.changeDetectorRef.markForCheck(); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
| @ -490,7 +492,7 @@ export class AddonStorageManagerCourseStoragePage implements OnInit, OnDestroy { | ||||
| 
 | ||||
|             await this.updateModulesSizes(modules, section); | ||||
|             CoreCourseHelper.calculateSectionsStatus(this.sections, this.courseId, false, false); | ||||
| 
 | ||||
|             this.changeDetectorRef.markForCheck(); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
| @ -525,7 +527,7 @@ export class AddonStorageManagerCourseStoragePage implements OnInit, OnDestroy { | ||||
|      */ | ||||
|     async prefecthSection(section: AddonStorageManagerCourseSection): Promise<void> { | ||||
|         section.isCalculating = true; | ||||
| 
 | ||||
|         this.changeDetectorRef.markForCheck(); | ||||
|         try { | ||||
|             await CoreCourseHelper.confirmDownloadSizeSection(this.courseId, section, this.sections); | ||||
| 
 | ||||
| @ -538,18 +540,19 @@ export class AddonStorageManagerCourseStoragePage implements OnInit, OnDestroy { | ||||
|                 } | ||||
|             } finally { | ||||
|                 await this.updateModulesSizes(section.modules, section); | ||||
| 
 | ||||
|                 this.changeDetectorRef.markForCheck(); | ||||
|             } | ||||
|         } catch (error) { | ||||
|             // User cancelled or there was an error calculating the size.
 | ||||
|             if (!this.isDestroyed && error) { | ||||
|                 CoreDomUtils.showErrorModal(error); | ||||
|                 this.changeDetectorRef.markForCheck(); | ||||
| 
 | ||||
|                 return; | ||||
|             } | ||||
|         } finally { | ||||
|             section.isCalculating = false; | ||||
| 
 | ||||
|             this.changeDetectorRef.markForCheck(); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
| @ -606,7 +609,7 @@ export class AddonStorageManagerCourseStoragePage implements OnInit, OnDestroy { | ||||
|         module.downloadStatus = status; | ||||
| 
 | ||||
|         module.handlerData?.updateStatus?.(status); | ||||
| 
 | ||||
|         this.changeDetectorRef.markForCheck(); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
| @ -646,7 +649,7 @@ export class AddonStorageManagerCourseStoragePage implements OnInit, OnDestroy { | ||||
|         this.prefetchCourseData.icon = statusData.icon; | ||||
|         this.prefetchCourseData.statusTranslatable = statusData.statusTranslatable; | ||||
|         this.prefetchCourseData.loading = statusData.loading; | ||||
| 
 | ||||
|         this.changeDetectorRef.markForCheck(); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
| @ -668,7 +671,7 @@ export class AddonStorageManagerCourseStoragePage implements OnInit, OnDestroy { | ||||
|         } | ||||
| 
 | ||||
|         try { | ||||
| 
 | ||||
|             this.changeDetectorRef.markForCheck(); | ||||
|             await CoreCourseHelper.confirmAndPrefetchCourse( | ||||
|                 this.prefetchCourseData, | ||||
|                 course, | ||||
| @ -677,7 +680,7 @@ export class AddonStorageManagerCourseStoragePage implements OnInit, OnDestroy { | ||||
|                     isGuest: this.isGuest, | ||||
|                 }, | ||||
|             ); | ||||
| 
 | ||||
|             this.changeDetectorRef.markForCheck(); | ||||
|         } catch (error) { | ||||
|             if (this.isDestroyed) { | ||||
|                 return; | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user