MOBILE-3947 chore: Change IonRefresher type to HTMLIonRefresherElement

main
Pau Ferrer Ocaña 2023-11-07 13:30:51 +01:00
parent 4ebec029ba
commit feb8a78ecc
80 changed files with 91 additions and 160 deletions

View File

@ -13,7 +13,6 @@
// limitations under the License.
import { Component, OnDestroy, OnInit } from '@angular/core';
import { IonRefresher } from '@ionic/angular';
import { CoreTimeUtils } from '@services/utils/time';
import { CoreDomUtils } from '@services/utils/dom';
import { CoreSites } from '@services/sites';
@ -130,7 +129,7 @@ export class AddonBadgesIssuedBadgePage implements OnInit, OnDestroy {
*
* @param refresher Refresher.
*/
async refreshBadges(refresher?: IonRefresher): Promise<void> {
async refreshBadges(refresher?: HTMLIonRefresherElement): Promise<void> {
await CoreUtils.ignoreErrors(Promise.all([
AddonBadges.invalidateUserBadges(this.courseId, this.userId),
]));

View File

@ -13,7 +13,6 @@
// limitations under the License.
import { AfterViewInit, Component, OnDestroy, ViewChild } from '@angular/core';
import { IonRefresher } from '@ionic/angular';
import { AddonBadges, AddonBadgesUserBadge } from '../../services/badges';
import { CoreTimeUtils } from '@services/utils/time';
import { CoreDomUtils } from '@services/utils/dom';
@ -90,7 +89,7 @@ export class AddonBadgesUserBadgesPage implements AfterViewInit, OnDestroy {
*
* @param refresher Refresher.
*/
async refreshBadges(refresher?: IonRefresher): Promise<void> {
async refreshBadges(refresher?: HTMLIonRefresherElement): Promise<void> {
await CoreUtils.ignoreErrors(
AddonBadges.invalidateUserBadges(
this.badges.getSource().COURSE_ID,

View File

@ -31,7 +31,7 @@ import { CoreUtils } from '@services/utils/utils';
import { CoreDomUtils } from '@services/utils/dom';
import { CoreTextUtils } from '@services/utils/text';
import { AddonCourseCompletion } from '@addons/coursecompletion/services/coursecompletion';
import { IonRefresher, IonSearchbar } from '@ionic/angular';
import { IonSearchbar } from '@ionic/angular';
import { CoreNavigator } from '@services/navigator';
import { PageLoadWatcher } from '@classes/page-load-watcher';
import { PageLoadsManager } from '@classes/page-loads-manager';
@ -191,7 +191,7 @@ export class AddonBlockMyOverviewComponent extends CoreBlockBaseComponent implem
* @param done Function to call when done.
* @returns Promise resolved when done.
*/
async doRefresh(refresher?: IonRefresher, done?: () => void): Promise<void> {
async doRefresh(refresher?: HTMLIonRefresherElement, done?: () => void): Promise<void> {
if (this.loaded) {
return this.refreshContent().finally(() => {
refresher?.complete();

View File

@ -19,7 +19,6 @@ import { CoreComments } from '@features/comments/services/comments';
import { CoreMainMenuDeepLinkManager } from '@features/mainmenu/classes/deep-link-manager';
import { CoreTag } from '@features/tag/services/tag';
import { CoreUser, CoreUserProfile } from '@features/user/services/user';
import { IonRefresher } from '@ionic/angular';
import { CoreAnalytics, CoreAnalyticsEventType } from '@services/analytics';
import { CoreNavigator } from '@services/navigator';
import { CoreSites } from '@services/sites';
@ -272,7 +271,7 @@ export class AddonBlogEntriesPage implements OnInit {
*
* @param refresher Refresher instance.
*/
refresh(refresher?: IonRefresher): void {
refresh(refresher?: HTMLIonRefresherElement): void {
const promises = this.entries.map((entry) =>
CoreComments.invalidateCommentsData('user', entry.userid, this.component, entry.id, 'format_blog'));

View File

@ -13,7 +13,6 @@
// limitations under the License.
import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core';
import { IonRefresher } from '@ionic/angular';
import { CoreNetwork } from '@services/network';
import { CoreEventObserver, CoreEvents } from '@singletons/events';
import { CoreSites } from '@services/sites';
@ -301,7 +300,7 @@ export class AddonCalendarDayPage implements OnInit, OnDestroy {
* @param done Function to call when done.
* @returns Promise resolved when done.
*/
async doRefresh(refresher?: IonRefresher, done?: () => void): Promise<void> {
async doRefresh(refresher?: HTMLIonRefresherElement, done?: () => void): Promise<void> {
if (!this.loaded) {
return;
}

View File

@ -14,7 +14,6 @@
import { Component, OnInit, OnDestroy, ViewChild, ElementRef } from '@angular/core';
import { FormControl, FormGroup, FormBuilder, Validators } from '@angular/forms';
import { IonRefresher } from '@ionic/angular';
import { CoreEvents } from '@singletons/events';
import { CoreGroup, CoreGroups } from '@services/groups';
import { CoreSites } from '@services/sites';
@ -383,7 +382,7 @@ export class AddonCalendarEditEventPage implements OnInit, OnDestroy, CanLeave {
*
* @param refresher Refresher.
*/
refreshData(refresher?: IonRefresher): void {
refreshData(refresher?: HTMLIonRefresherElement): void {
const promises = [
AddonCalendar.invalidateAccessInformation(this.courseId),
AddonCalendar.invalidateAllowedEventTypes(this.courseId),

View File

@ -13,7 +13,6 @@
// limitations under the License.
import { Component, OnDestroy, OnInit } from '@angular/core';
import { IonRefresher } from '@ionic/angular';
import { AlertOptions } from '@ionic/core';
import {
AddonCalendar,
@ -419,7 +418,7 @@ export class AddonCalendarEventPage implements OnInit, OnDestroy {
* @param showErrors Whether to show sync errors to the user.
* @returns Promise resolved when done.
*/
async doRefresh(refresher?: IonRefresher, done?: () => void, showErrors= false): Promise<void> {
async doRefresh(refresher?: HTMLIonRefresherElement, done?: () => void, showErrors= false): Promise<void> {
if (!this.eventLoaded) {
return;
}

View File

@ -13,7 +13,6 @@
// limitations under the License.
import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core';
import { IonRefresher } from '@ionic/angular';
import { CoreNetwork } from '@services/network';
import { CoreEventObserver, CoreEvents } from '@singletons/events';
import { CoreSites } from '@services/sites';
@ -263,7 +262,7 @@ export class AddonCalendarIndexPage implements OnInit, OnDestroy {
* @param showErrors Whether to show sync errors to the user.
* @returns Promise resolved when done.
*/
async doRefresh(refresher?: IonRefresher, done?: () => void, showErrors?: boolean): Promise<void> {
async doRefresh(refresher?: HTMLIonRefresherElement, done?: () => void, showErrors?: boolean): Promise<void> {
if (!this.loaded) {
return;
}

View File

@ -13,7 +13,6 @@
// limitations under the License.
import { AfterViewInit, Component, OnDestroy, ViewChild } from '@angular/core';
import { IonRefresher } from '@ionic/angular';
import { CoreDomUtils } from '@services/utils/dom';
import { CoreSplitViewComponent } from '@components/split-view/split-view';
import {
@ -121,7 +120,7 @@ export class AddonCompetencyCompetenciesPage implements AfterViewInit, OnDestroy
*
* @param refresher Refresher.
*/
async refreshCompetencies(refresher?: IonRefresher): Promise<void> {
async refreshCompetencies(refresher?: HTMLIonRefresherElement): Promise<void> {
await this.competencies.getSource().invalidateCache();
this.competencies.getSource().setDirty(true);

View File

@ -30,7 +30,6 @@ import {
AddonCompetencyProvider,
} from '@addons/competency/services/competency';
import { CoreNavigator } from '@services/navigator';
import { IonRefresher } from '@ionic/angular';
import { ContextLevel } from '@/core/constants';
import { CoreUtils } from '@services/utils/utils';
import { ADDON_COMPETENCY_SUMMARY_PAGE } from '@addons/competency/competency.module';
@ -173,7 +172,7 @@ export class AddonCompetencyCompetencyPage implements OnInit, OnDestroy {
*
* @param refresher Refresher.
*/
async refreshCompetency(refresher: IonRefresher): Promise<void> {
async refreshCompetency(refresher: HTMLIonRefresherElement): Promise<void> {
const source = this.competencies.getSource();
await CoreUtils.ignoreErrors(

View File

@ -15,7 +15,6 @@
import { Component, OnInit } from '@angular/core';
import { ContextLevel } from '@/core/constants';
import { AddonCompetencySummary, AddonCompetency } from '@addons/competency/services/competency';
import { IonRefresher } from '@ionic/angular';
import { CoreNavigator } from '@services/navigator';
import { CoreDomUtils } from '@services/utils/dom';
import { CoreUtils } from '@services/utils/utils';
@ -113,7 +112,7 @@ export class AddonCompetencyCompetencySummaryPage implements OnInit {
*
* @param refresher Refresher.
*/
refreshCompetency(refresher: IonRefresher): void {
refreshCompetency(refresher: HTMLIonRefresherElement): void {
AddonCompetency.invalidateCompetencySummary(this.competencyId).finally(() => {
this.fetchCompetency().finally(() => {
refresher?.complete();

View File

@ -18,7 +18,6 @@ import {
AddonCompetencyDataForCourseCompetenciesPageCompetency,
} from '@addons/competency/services/competency';
import { CoreUserProfile } from '@features/user/services/user';
import { IonRefresher } from '@ionic/angular';
import { CoreNavigator } from '@services/navigator';
import { CoreDomUtils } from '@services/utils/dom';
import { ContextLevel } from '@/core/constants';
@ -148,7 +147,7 @@ export class AddonCompetencyCourseCompetenciesPage implements OnInit, OnDestroy
*
* @param refresher Refresher.
*/
async refreshCourseCompetencies(refresher?: IonRefresher): Promise<void> {
async refreshCourseCompetencies(refresher?: HTMLIonRefresherElement): Promise<void> {
await this.competencies.getSource().invalidateCache();
this.fetchCourseCompetencies().finally(() => {

View File

@ -17,7 +17,6 @@ import { CoreDomUtils } from '@services/utils/dom';
import { AddonCompetencyDataForPlanPageCompetency, AddonCompetencyDataForPlanPageWSResponse } from '../../services/competency';
import { CoreNavigator } from '@services/navigator';
import { CoreUserProfile } from '@features/user/services/user';
import { IonRefresher } from '@ionic/angular';
import { CoreSwipeNavigationItemsManager } from '@classes/items-management/swipe-navigation-items-manager';
import { CoreRoutedItemsManagerSourcesTracker } from '@classes/items-management/routed-items-manager-sources-tracker';
import { AddonCompetencyPlansSource } from '@addons/competency/classes/competency-plans-source';
@ -111,7 +110,7 @@ export class AddonCompetencyPlanPage implements OnInit, OnDestroy {
*
* @param refresher Refresher.
*/
async refreshLearningPlan(refresher: IonRefresher): Promise<void> {
async refreshLearningPlan(refresher: HTMLIonRefresherElement): Promise<void> {
await this.competencies.getSource().invalidateCache();
this.fetchLearningPlan().finally(() => {

View File

@ -13,7 +13,6 @@
// limitations under the License.
import { AfterViewInit, Component, OnDestroy, ViewChild } from '@angular/core';
import { IonRefresher } from '@ionic/angular';
import { CoreDomUtils } from '@services/utils/dom';
import { CoreSplitViewComponent } from '@components/split-view/split-view';
import { CoreNavigator } from '@services/navigator';
@ -86,7 +85,7 @@ export class AddonCompetencyPlanListPage implements AfterViewInit, OnDestroy {
*
* @param refresher Refresher.
*/
async refreshLearningPlans(refresher: IonRefresher): Promise<void> {
async refreshLearningPlans(refresher: HTMLIonRefresherElement): Promise<void> {
await this.plans.getSource().invalidateCache();
this.plans.getSource().setDirty(true);

View File

@ -18,7 +18,6 @@ import {
} from '@addons/coursecompletion/services/coursecompletion';
import { Component, OnInit } from '@angular/core';
import { CoreUser, CoreUserProfile } from '@features/user/services/user';
import { IonRefresher } from '@ionic/angular';
import { CoreAnalytics, CoreAnalyticsEventType } from '@services/analytics';
import { CoreNavigator } from '@services/navigator';
import { CoreSites } from '@services/sites';
@ -112,7 +111,7 @@ export class AddonCourseCompletionReportPage implements OnInit {
*
* @param refresher Refresher instance.
*/
async refreshCompletion(refresher?: IonRefresher): Promise<void> {
async refreshCompletion(refresher?: HTMLIonRefresherElement): Promise<void> {
await AddonCourseCompletion.invalidateCourseCompletion(this.courseId, this.userId).finally(() => {
this.fetchCompletion().finally(() => {
refresher?.complete();

View File

@ -13,7 +13,6 @@
// limitations under the License.
import { Component, OnDestroy, OnInit } from '@angular/core';
import { IonRefresher } from '@ionic/angular';
import { CoreDomUtils } from '@services/utils/dom';
import { CorePushNotifications } from '@features/pushnotifications/services/pushnotifications';
@ -123,7 +122,7 @@ export class AddonMessageOutputAirnotifierDevicesPage implements OnInit, OnDestr
*
* @param refresher Refresher.
*/
async refreshDevices(refresher: IonRefresher): Promise<void> {
async refreshDevices(refresher: HTMLIonRefresherElement): Promise<void> {
try {
await CoreUtils.ignoreErrors(AddonMessageOutputAirnotifier.invalidateUserDevices());

View File

@ -13,7 +13,6 @@
// limitations under the License.
import { Component, Input, OnInit } from '@angular/core';
import { IonRefresher } from '@ionic/angular';
import {
AddonMessagesConversationFormatted,
AddonMessagesConversationMember,
@ -116,7 +115,7 @@ export class AddonMessagesConversationInfoComponent implements OnInit {
* @param refresher Refresher.
* @returns Promise resolved when done.
*/
async refreshData(refresher?: IonRefresher): Promise<void> {
async refreshData(refresher?: HTMLIonRefresherElement): Promise<void> {
const promises: Promise<void>[] = [];
promises.push(AddonMessages.invalidateConversation(this.conversationId));

View File

@ -13,7 +13,6 @@
// limitations under the License.
import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';
import { IonRefresher } from '@ionic/angular';
import { CoreSites } from '@services/sites';
import {
AddonMessagesProvider,
@ -129,7 +128,7 @@ export class AddonMessagesContacts35Page implements OnInit, OnDestroy {
* @param refresher Refresher.
* @returns Promise resolved when done.
*/
async refreshData(refresher?: IonRefresher): Promise<void> {
async refreshData(refresher?: HTMLIonRefresherElement): Promise<void> {
try {
if (this.searchString) {
// User has searched, update the search.

View File

@ -23,7 +23,6 @@ import {
import { CoreNavigator } from '@services/navigator';
import { CoreScreen } from '@services/screen';
import { CoreDomUtils } from '@services/utils/dom';
import { IonRefresher } from '@ionic/angular';
import { CoreSplitViewComponent } from '@components/split-view/split-view';
/**
@ -216,7 +215,7 @@ export class AddonMessagesContactsPage implements OnInit, OnDestroy {
* @param refresher Refresher.
* @returns Promise resolved when done.
*/
async refreshData(refresher?: IonRefresher): Promise<void> {
async refreshData(refresher?: HTMLIonRefresherElement): Promise<void> {
try {
if (this.selected == 'confirmed') {
// No need to invalidate contacts, we always try to get the latest.

View File

@ -29,7 +29,6 @@ import { CorePushNotificationsNotificationBasicData } from '@features/pushnotifi
import { CorePushNotificationsDelegate } from '@features/pushnotifications/services/push-delegate';
import { Subscription } from 'rxjs';
import { Translate } from '@singletons';
import { IonRefresher } from '@ionic/angular';
import { CoreNavigator } from '@services/navigator';
import { CoreScreen } from '@services/screen';
import { CoreMainMenuDeepLinkManager } from '@features/mainmenu/classes/deep-link-manager';
@ -166,7 +165,7 @@ export class AddonMessagesDiscussions35Page implements OnInit, OnDestroy {
* @param refreshUnreadCounts Whteher to refresh unread counts.
* @returns Promise resolved when done.
*/
async refreshData(refresher?: IonRefresher, refreshUnreadCounts: boolean = true): Promise<void> {
async refreshData(refresher?: HTMLIonRefresherElement, refreshUnreadCounts: boolean = true): Promise<void> {
const promises: Promise<void>[] = [];
promises.push(AddonMessages.invalidateDiscussionsCache(this.siteId));

View File

@ -13,7 +13,7 @@
// limitations under the License.
import { Component, OnInit, OnDestroy, ViewChild, ElementRef } from '@angular/core';
import { IonContent, IonRefresher } from '@ionic/angular';
import { IonContent } from '@ionic/angular';
import { CoreEventObserver, CoreEvents } from '@singletons/events';
import { CoreSites } from '@services/sites';
import {
@ -719,7 +719,7 @@ export class AddonMessagesGroupConversationsPage implements OnInit, OnDestroy {
* @param refreshUnreadCounts Whether to refresh unread counts.
* @returns Promise resolved when done.
*/
async refreshData(refresher?: IonRefresher, refreshUnreadCounts: boolean = true): Promise<void> {
async refreshData(refresher?: HTMLIonRefresherElement, refreshUnreadCounts: boolean = true): Promise<void> {
// Don't invalidate conversations and so, they always try to get latest data.
try {
await AddonMessages.invalidateContactRequestsCountCache(this.siteId);

View File

@ -25,7 +25,6 @@ import { CoreEvents } from '@singletons/events';
import { CoreSites } from '@services/sites';
import { CoreDomUtils } from '@services/utils/dom';
import { CoreConstants } from '@/core/constants';
import { IonRefresher } from '@ionic/angular';
import { AddonNotificationsPreferencesNotificationProcessorState } from '@addons/notifications/services/notifications';
import { CorePlatform } from '@services/platform';
@ -251,7 +250,7 @@ export class AddonMessagesSettingsPage implements OnInit, OnDestroy {
*
* @param refresher Refresher.
*/
refreshPreferences(refresher?: IonRefresher): void {
refreshPreferences(refresher?: HTMLIonRefresherElement): void {
AddonMessages.invalidateMessagePreferences().finally(() => {
this.fetchPreferences().finally(() => {
refresher?.complete();

View File

@ -16,7 +16,6 @@ import { Component, OnDestroy, AfterViewInit, ViewChild } from '@angular/core';
import { CoreListItemsManager } from '@classes/items-management/list-items-manager';
import { CoreRoutedItemsManagerSourcesTracker } from '@classes/items-management/routed-items-manager-sources-tracker';
import { CoreSplitViewComponent } from '@components/split-view/split-view';
import { IonRefresher } from '@ionic/angular';
import { CoreGroupInfo } from '@services/groups';
import { CoreNavigator } from '@services/navigator';
import { CoreSites } from '@services/sites';
@ -208,7 +207,7 @@ export class AddonModAssignSubmissionListPage implements AfterViewInit, OnDestro
*
* @param refresher Refresher.
*/
refreshList(refresher?: IonRefresher): void {
refreshList(refresher?: HTMLIonRefresherElement): void {
this.refreshAllData(true).finally(() => {
refresher?.complete();
});

View File

@ -18,7 +18,6 @@ import { CoreRoutedItemsManagerSourcesTracker } from '@classes/items-management/
import { CoreSwipeNavigationItemsManager } from '@classes/items-management/swipe-navigation-items-manager';
import { CoreCourse } from '@features/course/services/course';
import { CanLeave } from '@guards/can-leave';
import { IonRefresher } from '@ionic/angular';
import { CoreNavigator } from '@services/navigator';
import { CoreScreen } from '@services/screen';
import { CoreDomUtils } from '@services/utils/dom';
@ -210,7 +209,7 @@ export class AddonModAssignSubmissionReviewPage implements OnInit, OnDestroy, Ca
*
* @param refresher Refresher.
*/
refreshSubmission(refresher?: IonRefresher): void {
refreshSubmission(refresher?: HTMLIonRefresherElement): void {
this.refreshAllData().finally(() => {
refresher?.complete();
});

View File

@ -24,7 +24,6 @@ import { CoreCourse } from '@features/course/services/course';
import { CoreCourseModuleData } from '@features/course/services/course-helper';
import { CoreCourseModulePrefetchDelegate } from '@features/course/services/module-prefetch-delegate';
import { CoreTag, CoreTagItem } from '@features/tag/services/tag';
import { IonRefresher } from '@ionic/angular';
import { CoreNetwork } from '@services/network';
import { CoreNavigator } from '@services/navigator';
import { CoreDomUtils } from '@services/utils/dom';
@ -232,7 +231,7 @@ export class AddonModBookContentsPage implements OnInit, OnDestroy {
* @param refresher Refresher.
* @returns Promise resolved when done.
*/
async doRefresh(refresher?: IonRefresher): Promise<void> {
async doRefresh(refresher?: HTMLIonRefresherElement): Promise<void> {
if (this.manager) {
await CoreUtils.ignoreErrors(Promise.all([
this.manager.getSource().invalidateContent(),

View File

@ -14,7 +14,6 @@
import { Component, OnInit } from '@angular/core';
import { CoreUser } from '@features/user/services/user';
import { IonRefresher } from '@ionic/angular';
import { CoreNavigator } from '@services/navigator';
import { CoreSites } from '@services/sites';
import { CoreDomUtils } from '@services/utils/dom';
@ -158,7 +157,7 @@ export class AddonModChatSessionMessagesPage implements OnInit {
*
* @param refresher Refresher.
*/
async refreshMessages(refresher: IonRefresher): Promise<void> {
async refreshMessages(refresher: HTMLIonRefresherElement): Promise<void> {
try {
await CoreUtils.ignoreErrors(AddonModChat.invalidateSessionMessages(this.chatId, this.sessionStart, this.groupId));

View File

@ -16,7 +16,6 @@ import { AfterViewInit, Component, OnDestroy, OnInit, ViewChild } from '@angular
import { CoreListItemsManager } from '@classes/items-management/list-items-manager';
import { CoreRoutedItemsManagerSourcesTracker } from '@classes/items-management/routed-items-manager-sources-tracker';
import { CoreSplitViewComponent } from '@components/split-view/split-view';
import { IonRefresher } from '@ionic/angular';
import { CoreGroupInfo } from '@services/groups';
import { CoreNavigator } from '@services/navigator';
import { CoreDomUtils } from '@services/utils/dom';
@ -143,7 +142,7 @@ export class AddonModChatSessionsPage implements OnInit, AfterViewInit, OnDestro
*
* @param refresher Refresher.
*/
async refreshSessions(refresher: IonRefresher): Promise<void> {
async refreshSessions(refresher: HTMLIonRefresherElement): Promise<void> {
try {
this.sessions.getSource().setDirty(true);

View File

@ -17,7 +17,7 @@ import { CoreCommentsCommentsComponent } from '@features/comments/components/com
import { CoreComments } from '@features/comments/services/comments';
import { CoreCourse } from '@features/course/services/course';
import { CoreRatingInfo } from '@features/rating/services/rating';
import { IonContent, IonRefresher } from '@ionic/angular';
import { IonContent } from '@ionic/angular';
import { CoreGroups, CoreGroupInfo } from '@services/groups';
import { CoreNavigator } from '@services/navigator';
import { CoreSites } from '@services/sites';
@ -286,7 +286,7 @@ export class AddonModDataEntryPage implements OnInit, OnDestroy {
*
* @param refresher Refresher.
*/
refreshDatabase(refresher?: IonRefresher): void {
refreshDatabase(refresher?: HTMLIonRefresherElement): void {
if (!this.entryLoaded) {
return;
}

View File

@ -18,7 +18,6 @@ import { CoreRoutedItemsManagerSourcesTracker } from '@classes/items-management/
import { CoreListItemsManager } from '@classes/items-management/list-items-manager';
import { CorePromisedValue } from '@classes/promised-value';
import { CoreSplitViewComponent } from '@components/split-view/split-view';
import { IonRefresher } from '@ionic/angular';
import { CoreGroupInfo } from '@services/groups';
import { CoreNavigator } from '@services/navigator';
import { CoreDomUtils } from '@services/utils/dom';
@ -175,7 +174,7 @@ export class AddonModFeedbackAttemptsPage implements AfterViewInit, OnDestroy {
*
* @param refresher Refresher.
*/
async refreshFeedback(refresher: IonRefresher): Promise<void> {
async refreshFeedback(refresher: HTMLIonRefresherElement): Promise<void> {
const attempts = await this.promisedAttempts;
try {

View File

@ -13,7 +13,6 @@
// limitations under the License.
import { Component, OnInit } from '@angular/core';
import { IonRefresher } from '@ionic/angular';
import { CoreGroupInfo, CoreGroups } from '@services/groups';
import { CoreNavigator } from '@services/navigator';
import { CoreDomUtils } from '@services/utils/dom';
@ -174,7 +173,7 @@ export class AddonModFeedbackNonRespondentsPage implements OnInit {
*
* @param refresher Refresher.
*/
async refreshFeedback(refresher: IonRefresher): Promise<void> {
async refreshFeedback(refresher: HTMLIonRefresherElement): Promise<void> {
try {
const promises: Promise<void>[] = [];

View File

@ -23,7 +23,7 @@ import { CoreRatingOffline } from '@features/rating/services/rating-offline';
import { CoreRatingSyncProvider } from '@features/rating/services/rating-sync';
import { CoreUser } from '@features/user/services/user';
import { CanLeave } from '@guards/can-leave';
import { IonContent, IonRefresher } from '@ionic/angular';
import { IonContent } from '@ionic/angular';
import { CoreNetwork } from '@services/network';
import { CoreNavigator } from '@services/navigator';
import { CoreScreen } from '@services/screen';
@ -650,7 +650,7 @@ export class AddonModForumDiscussionPage implements OnInit, AfterViewInit, OnDes
* @param showErrors If show errors to the user of hide them.
* @returns Promise resolved when done.
*/
async doRefresh(refresher?: IonRefresher | null, done?: () => void, showErrors: boolean = false): Promise<void> {
async doRefresh(refresher?: HTMLIonRefresherElement | null, done?: () => void, showErrors: boolean = false): Promise<void> {
if (this.discussionLoaded) {
await this.refreshPosts(true, showErrors).finally(() => {
refresher?.complete();

View File

@ -34,7 +34,6 @@ import { CoreSync } from '@services/sync';
import { AddonModForumDiscussionOptions, AddonModForumOffline } from '@addons/mod/forum/services/forum-offline';
import { CoreUtils } from '@services/utils/utils';
import { AddonModForumHelper } from '@addons/mod/forum/services/forum-helper';
import { IonRefresher } from '@ionic/angular';
import { CoreFileUploader } from '@features/fileuploader/services/fileuploader';
import { CoreTextUtils } from '@services/utils/text';
import { CanLeave } from '@guards/can-leave';
@ -453,7 +452,7 @@ export class AddonModForumNewDiscussionPage implements OnInit, OnDestroy, CanLea
*
* @param refresher Refresher.
*/
refreshGroups(refresher?: IonRefresher): void {
refreshGroups(refresher?: HTMLIonRefresherElement): void {
const promises = [
CoreGroups.invalidateActivityGroupMode(this.cmId),
CoreGroups.invalidateActivityAllowedGroups(this.cmId),

View File

@ -24,7 +24,6 @@ import { CoreComments } from '@features/comments/services/comments';
import { CoreRatingInfo } from '@features/rating/services/rating';
import { CoreTag } from '@features/tag/services/tag';
import { FileEntry } from '@ionic-native/file/ngx';
import { IonRefresher } from '@ionic/angular';
import { CoreNavigator } from '@services/navigator';
import { CoreNetwork } from '@services/network';
import { CoreDomUtils, ToastDuration } from '@services/utils/dom';
@ -228,7 +227,7 @@ export class AddonModGlossaryEntryPage implements OnInit, OnDestroy {
* @param refresher Refresher.
* @returns Promise resolved when done.
*/
async doRefresh(refresher?: IonRefresher): Promise<void> {
async doRefresh(refresher?: HTMLIonRefresherElement): Promise<void> {
if (this.onlineEntry && this.glossary?.allowcomments && this.onlineEntry.id > 0 && this.commentsEnabled && this.comments) {
// Refresh comments asynchronously (without blocking the current promise).
CoreUtils.ignoreErrors(this.comments.doRefresh());

View File

@ -13,7 +13,6 @@
// limitations under the License.
import { Component, OnInit } from '@angular/core';
import { IonRefresher } from '@ionic/angular';
import { CoreUser, CoreUserProfile } from '@features/user/services/user';
import { CoreNavigator } from '@services/navigator';
@ -94,7 +93,7 @@ export class AddonModH5PActivityAttemptResultsPage implements OnInit {
*
* @param refresher Refresher.
*/
doRefresh(refresher: IonRefresher): void {
doRefresh(refresher: HTMLIonRefresherElement): void {
this.refreshData().finally(() => {
refresher.complete();
});

View File

@ -13,7 +13,6 @@
// limitations under the License.
import { Component, OnInit } from '@angular/core';
import { IonRefresher } from '@ionic/angular';
import { CoreUser, CoreUserProfile } from '@features/user/services/user';
import { CoreNavigator } from '@services/navigator';
@ -97,7 +96,7 @@ export class AddonModH5PActivityUserAttemptsPage implements OnInit {
*
* @param refresher Refresher.
*/
doRefresh(refresher: IonRefresher): void {
doRefresh(refresher: HTMLIonRefresherElement): void {
this.refreshData().finally(() => {
refresher.complete();
});

View File

@ -14,7 +14,6 @@
import { Component, OnInit } from '@angular/core';
import { CoreUser, CoreUserProfile } from '@features/user/services/user';
import { IonRefresher } from '@ionic/angular';
import { CoreNavigator } from '@services/navigator';
import { CoreDomUtils } from '@services/utils/dom';
@ -90,7 +89,7 @@ export class AddonModH5PActivityUsersAttemptsPage implements OnInit {
*
* @param refresher Refresher.
*/
doRefresh(refresher: IonRefresher): void {
doRefresh(refresher: HTMLIonRefresherElement): void {
this.refreshData().finally(() => {
refresher.complete();
});

View File

@ -20,7 +20,6 @@ import { CoreCourseResourceDownloadResult } from '@features/course/classes/main-
import { CoreCourse } from '@features/course/services/course';
import { CoreCourseModuleData } from '@features/course/services/course-helper';
import { CoreCourseModulePrefetchDelegate } from '@features/course/services/module-prefetch-delegate';
import { IonRefresher } from '@ionic/angular';
import { CoreNetwork } from '@services/network';
import { CoreNavigator } from '@services/navigator';
import { CoreDomUtils } from '@services/utils/dom';
@ -214,7 +213,7 @@ export class AddonModImscpViewPage implements OnInit {
* @param refresher Refresher.
* @returns Promise resolved when done.
*/
async doRefresh(refresher?: IonRefresher): Promise<void> {
async doRefresh(refresher?: HTMLIonRefresherElement): Promise<void> {
await CoreUtils.ignoreErrors(Promise.all([
AddonModImscp.invalidateContent(this.cmId, this.courseId),
CoreCourseModulePrefetchDelegate.invalidateCourseUpdates(this.courseId), // To detect if IMSCP was updated.

View File

@ -13,7 +13,6 @@
// limitations under the License.
import { Component, OnInit } from '@angular/core';
import { IonRefresher } from '@ionic/angular';
import { CoreError } from '@classes/errors/error';
import { CoreUser } from '@features/user/services/user';
@ -114,7 +113,7 @@ export class AddonModLessonUserRetakePage implements OnInit {
*
* @param refresher Refresher.
*/
doRefresh(refresher: IonRefresher): void {
doRefresh(refresher: HTMLIonRefresherElement): void {
this.refreshData().finally(() => {
refresher?.complete();
});

View File

@ -15,7 +15,6 @@
import { isSafeNumber } from '@/core/utils/types';
import { Component, OnInit } from '@angular/core';
import { CoreError } from '@classes/errors/error';
import { IonRefresher } from '@ionic/angular';
import { CoreNavigator } from '@services/navigator';
import { CoreDomUtils } from '@services/utils/dom';
import { CoreUtils } from '@services/utils/utils';
@ -75,7 +74,7 @@ export class AddonModQuizAttemptPage implements OnInit {
*
* @param refresher Refresher.
*/
doRefresh(refresher: IonRefresher): void {
doRefresh(refresher: HTMLIonRefresherElement): void {
this.refreshData().finally(() => {
refresher.complete();
});

View File

@ -15,7 +15,7 @@
import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';
import { CoreQuestionQuestionParsed } from '@features/question/services/question';
import { CoreQuestionHelper } from '@features/question/services/question-helper';
import { IonContent, IonRefresher } from '@ionic/angular';
import { IonContent } from '@ionic/angular';
import { CoreNavigator } from '@services/navigator';
import { CoreDomUtils } from '@services/utils/dom';
import { CoreUtils } from '@services/utils/utils';
@ -222,7 +222,7 @@ export class AddonModQuizReviewPage implements OnInit {
*
* @param refresher Refresher
*/
async refreshData(refresher: IonRefresher): Promise<void> {
async refreshData(refresher: HTMLIonRefresherElement): Promise<void> {
const promises: Promise<void>[] = [];
promises.push(AddonModQuiz.invalidateQuizData(this.courseId));

View File

@ -18,7 +18,6 @@ import { CoreCourse } from '@features/course/services/course';
import { CoreGradesHelper, CoreGradesMenuItem } from '@features/grades/services/grades-helper';
import { CoreUser, CoreUserProfile } from '@features/user/services/user';
import { CanLeave } from '@guards/can-leave';
import { IonRefresher } from '@ionic/angular';
import { CoreNavigator } from '@services/navigator';
import { CoreSites } from '@services/sites';
import { CoreSync } from '@services/sync';
@ -343,7 +342,7 @@ export class AddonModWorkshopAssessmentPage implements OnInit, OnDestroy, CanLea
*
* @param refresher Refresher.
*/
refreshAssessment(refresher: IonRefresher): void {
refreshAssessment(refresher: HTMLIonRefresherElement): void {
if (this.loaded) {
this.refreshAllData().finally(() => {
refresher?.complete();

View File

@ -20,7 +20,7 @@ import { CoreCourseModuleData } from '@features/course/services/course-helper';
import { CoreGradesHelper, CoreGradesMenuItem } from '@features/grades/services/grades-helper';
import { CoreUser, CoreUserProfile } from '@features/user/services/user';
import { CanLeave } from '@guards/can-leave';
import { IonContent, IonRefresher } from '@ionic/angular';
import { IonContent } from '@ionic/angular';
import { CoreNavigator } from '@services/navigator';
import { CoreSites } from '@services/sites';
import { CoreSync } from '@services/sync';
@ -460,7 +460,7 @@ export class AddonModWorkshopSubmissionPage implements OnInit, OnDestroy, CanLea
*
* @param refresher Refresher.
*/
refreshSubmission(refresher: IonRefresher): void {
refreshSubmission(refresher: HTMLIonRefresherElement): void {
if (this.loaded) {
this.refreshAllData().finally(() => {
refresher?.complete();

View File

@ -20,7 +20,7 @@ import { AddonNotesSync, AddonNotesSyncProvider } from '@addons/notes/services/n
import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';
import { CoreAnimations } from '@components/animations';
import { CoreUser, CoreUserProfile } from '@features/user/services/user';
import { IonContent, IonRefresher } from '@ionic/angular';
import { IonContent } from '@ionic/angular';
import { CoreAnalytics, CoreAnalyticsEventType } from '@services/analytics';
import { CoreNavigator } from '@services/navigator';
import { CoreSites } from '@services/sites';
@ -156,7 +156,7 @@ export class AddonNotesListPage implements OnInit, OnDestroy {
* @param showSyncErrors Whether to display sync errors or not.
* @param refresher Refresher instance.
*/
refreshNotes(showSyncErrors: boolean, refresher?: IonRefresher): void {
refreshNotes(showSyncErrors: boolean, refresher?: HTMLIonRefresherElement): void {
this.refreshIcon = CoreConstants.ICON_LOADING;
this.syncIcon = CoreConstants.ICON_LOADING;

View File

@ -13,7 +13,6 @@
// limitations under the License.
import { AfterViewInit, Component, OnDestroy, ViewChild } from '@angular/core';
import { IonRefresher } from '@ionic/angular';
import { Subscription } from 'rxjs';
import { CoreDomUtils } from '@services/utils/dom';
@ -205,7 +204,7 @@ export class AddonNotificationsListPage implements AfterViewInit, OnDestroy {
*
* @param refresher Refresher.
*/
async refreshNotifications(refresher?: IonRefresher): Promise<void> {
async refreshNotifications(refresher?: HTMLIonRefresherElement): Promise<void> {
await CoreUtils.ignoreErrors(AddonNotifications.invalidateNotificationsList());
await CoreUtils.ignoreErrors(this.fetchNotifications(true));

View File

@ -13,7 +13,6 @@
// limitations under the License.
import { Component, OnInit, OnDestroy } from '@angular/core';
import { IonRefresher } from '@ionic/angular';
import { CoreConfig } from '@services/config';
import { CoreLocalNotifications } from '@services/local-notifications';
@ -192,7 +191,7 @@ export class AddonNotificationsSettingsPage implements OnInit, OnDestroy {
*
* @param refresher Refresher.
*/
async refreshPreferences(refresher?: IonRefresher): Promise<void> {
async refreshPreferences(refresher?: HTMLIonRefresherElement): Promise<void> {
try {
await CoreUtils.ignoreErrors(AddonNotifications.invalidateNotificationPreferences());

View File

@ -13,7 +13,6 @@
// limitations under the License.
import { Component, OnDestroy, OnInit } from '@angular/core';
import { IonRefresher } from '@ionic/angular';
import { Md5 } from 'ts-md5/dist/md5';
import { CoreNetwork } from '@services/network';
@ -140,7 +139,7 @@ export class AddonPrivateFilesIndexPage implements OnInit, OnDestroy {
*
* @param refresher Refresher.
*/
refreshData(refresher?: IonRefresher): void {
refreshData(refresher?: HTMLIonRefresherElement): void {
this.refreshFiles().finally(() => {
refresher?.complete();
});

View File

@ -19,7 +19,6 @@ import { CoreCourse, CoreCourseBlock } from '@features/course/services/course';
import { CoreBlockHelper } from '../../services/block-helper';
import { CoreBlockComponent } from '../block/block';
import { CoreUtils } from '@services/utils/utils';
import { IonRefresher } from '@ionic/angular';
import { CoreCoursesDashboard } from '@features/courses/services/dashboard';
import { CoreTextUtils } from '@services/utils/text';
import { CoreDom } from '@singletons/dom';
@ -110,7 +109,7 @@ export class CoreBlockSideBlocksComponent implements OnInit {
*
* @param refresher Refresher.
*/
async doRefresh(refresher?: IonRefresher): Promise<void> {
async doRefresh(refresher?: HTMLIonRefresherElement): Promise<void> {
await CoreUtils.ignoreErrors(this.invalidateBlocks());
await this.loadContent().finally(() => {

View File

@ -26,7 +26,7 @@ import {
CoreCommentsSync,
CoreCommentsSyncProvider,
} from '@features/comments/services/comments-sync';
import { IonContent, IonRefresher } from '@ionic/angular';
import { IonContent } from '@ionic/angular';
import { ContextLevel, CoreConstants } from '@/core/constants';
import { CoreNavigator } from '@services/navigator';
import { NgZone, Translate } from '@singletons';
@ -249,7 +249,7 @@ export class CoreCommentsViewerPage implements OnInit, OnDestroy {
* @param refresher Refresher.
* @returns Resolved when done.
*/
async refreshComments(showErrors: boolean, refresher?: IonRefresher): Promise<void> {
async refreshComments(showErrors: boolean, refresher?: HTMLIonRefresherElement): Promise<void> {
this.commentsLoaded = false;
this.refreshIcon = CoreConstants.ICON_LOADING;
this.syncIcon = CoreConstants.ICON_LOADING;

View File

@ -15,7 +15,6 @@
import { CoreConstants } from '@/core/constants';
import { OnInit, OnDestroy, Input, Output, EventEmitter, Component, Optional, Inject } from '@angular/core';
import { CoreAnyError } from '@classes/errors/error';
import { IonRefresher } from '@ionic/angular';
import { CoreNetwork } from '@services/network';
import { CoreSites } from '@services/sites';
import { CoreDomUtils } from '@services/utils/dom';
@ -121,7 +120,7 @@ export class CoreCourseModuleMainResourceComponent implements OnInit, OnDestroy,
* @param showErrors If show errors to the user of hide them.
* @returns Promise resolved when done.
*/
async doRefresh(refresher?: IonRefresher | null, showErrors = false): Promise<void> {
async doRefresh(refresher?: HTMLIonRefresherElement | null, showErrors = false): Promise<void> {
if (!this.module) {
// Module can be undefined if course format changes from single activity to weekly/topics.
return;

View File

@ -39,7 +39,7 @@ import {
} from '@features/course/services/course-helper';
import { CoreCourseFormatDelegate } from '@features/course/services/format-delegate';
import { CoreEventObserver, CoreEvents } from '@singletons/events';
import { IonContent, IonRefresher } from '@ionic/angular';
import { IonContent } from '@ionic/angular';
import { CoreUtils } from '@services/utils/utils';
import { CoreCourseCourseIndexComponent, CoreCourseIndexSectionWithModule } from '../course-index/course-index';
import { CoreBlockHelper } from '@features/block/services/block-helper';
@ -567,7 +567,7 @@ export class CoreCourseFormatComponent implements OnInit, OnChanges, OnDestroy {
* @param afterCompletionChange Whether the refresh is due to a completion change.
* @returns Promise resolved when done.
*/
async doRefresh(refresher?: IonRefresher, done?: () => void, afterCompletionChange?: boolean): Promise<void> {
async doRefresh(refresher?: HTMLIonRefresherElement, done?: () => void, afterCompletionChange?: boolean): Promise<void> {
const promises = this.dynamicComponents?.map(async (component) => {
await component.callComponentMethod('doRefresh', refresher, done, afterCompletionChange);
}) || [];

View File

@ -18,7 +18,6 @@ import { CoreCourseModuleDelegate } from '@features/course/services/module-deleg
import { CoreCourseUnsupportedModuleComponent } from '@features/course/components/unsupported-module/unsupported-module';
import { CoreDynamicComponent } from '@components/dynamic-component/dynamic-component';
import { CoreCourseAnyCourseData } from '@features/courses/services/courses';
import { IonRefresher } from '@ionic/angular';
import { CoreCourseModuleCompletionData, CoreCourseSection } from '@features/course/services/course-helper';
import { CoreCourse } from '@features/course/services/course';
import type { CoreCourseModuleMainActivityComponent } from '@features/course/classes/main-activity-component';
@ -80,7 +79,7 @@ export class CoreCourseFormatSingleActivityComponent implements OnChanges {
* @param afterCompletionChange Whether the refresh is due to a completion change.
* @returns Promise resolved when done.
*/
async doRefresh(refresher?: IonRefresher, done?: () => void, afterCompletionChange?: boolean): Promise<void> {
async doRefresh(refresher?: HTMLIonRefresherElement, done?: () => void, afterCompletionChange?: boolean): Promise<void> {
if (afterCompletionChange) {
// Don't refresh the view after a completion change since completion isn't displayed.
return;

View File

@ -13,7 +13,7 @@
// limitations under the License.
import { Component, ViewChild, OnInit, OnDestroy, forwardRef, ChangeDetectorRef } from '@angular/core';
import { IonContent, IonRefresher } from '@ionic/angular';
import { IonContent } from '@ionic/angular';
import { CoreDomUtils } from '@services/utils/dom';
import { CoreUtils } from '@services/utils/utils';
@ -291,7 +291,7 @@ export class CoreCourseContentsPage implements OnInit, OnDestroy, CoreRefreshCon
* @param refresher Refresher.
* @returns Promise resolved when done.
*/
async doRefresh(refresher?: IonRefresher): Promise<void> {
async doRefresh(refresher?: HTMLIonRefresherElement): Promise<void> {
await CoreUtils.ignoreErrors(this.invalidateData());
try {

View File

@ -13,7 +13,7 @@
// limitations under the License.
import { Component, OnDestroy, OnInit, Input, ViewChild, ElementRef } from '@angular/core';
import { ActionSheetButton, IonRefresher } from '@ionic/angular';
import { ActionSheetButton } from '@ionic/angular';
import { CoreEventObserver, CoreEvents } from '@singletons/events';
import { CoreSites } from '@services/sites';
import { CoreDomUtils } from '@services/utils/dom';
@ -402,7 +402,7 @@ export class CoreCourseSummaryPage implements OnInit, OnDestroy {
*
* @param refresher The refresher if this was triggered by a Pull To Refresh.
*/
async refreshData(refresher?: IonRefresher): Promise<void> {
async refreshData(refresher?: HTMLIonRefresherElement): Promise<void> {
const promises: Promise<void>[] = [];
promises.push(CoreCourses.invalidateUserCourses());

View File

@ -20,7 +20,6 @@ import { CoreCourseModuleDelegate } from '@features/course/services/module-deleg
import { CoreCourseHelper, CoreCourseSection } from '@features/course/services/course-helper';
import { CoreNavigator } from '@services/navigator';
import { CoreConstants } from '@/core/constants';
import { IonRefresher } from '@ionic/angular';
import { CoreUtils } from '@services/utils/utils';
import { CoreTime } from '@singletons/time';
import { CoreAnalytics, CoreAnalyticsEventType } from '@services/analytics';
@ -167,7 +166,7 @@ export class CoreCourseListModTypePage implements OnInit {
*
* @param refresher Refresher.
*/
async refreshData(refresher: IonRefresher): Promise<void> {
async refreshData(refresher: HTMLIonRefresherElement): Promise<void> {
await CoreUtils.ignoreErrors(CoreCourse.invalidateSections(this.courseId));
try {

View File

@ -20,7 +20,6 @@ import {
import { CoreCourse } from '@features/course/services/course';
import { CoreCourseHelper, CoreCourseModuleData, CoreCourseSection } from '@features/course/services/course-helper';
import { CoreCourseModuleDelegate } from '@features/course/services/module-delegate';
import { IonRefresher } from '@ionic/angular';
import { CoreNavigator } from '@services/navigator';
import { CoreSites } from '@services/sites';
import { CoreDomUtils } from '@services/utils/dom';
@ -140,7 +139,7 @@ export class CoreCourseModulePreviewPage implements OnInit {
* @param refresher Refresher.
* @returns Promise resolved when done.
*/
async doRefresh(refresher?: IonRefresher): Promise<void> {
async doRefresh(refresher?: HTMLIonRefresherElement): Promise<void> {
await CoreCourse.invalidateModule(this.module.id);

View File

@ -14,7 +14,6 @@
import { Injectable, Type } from '@angular/core';
import { SafeUrl } from '@angular/platform-browser';
import { IonRefresher } from '@ionic/angular';
import { CoreSite } from '@classes/site';
import { CoreCourseModuleDefaultHandler } from './handlers/default-module';
@ -234,7 +233,7 @@ export interface CoreCourseModuleMainComponent {
* @param showErrors If show errors to the user of hide them.
* @returns Promise resolved when done.
*/
doRefresh(refresher?: IonRefresher | null, showErrors?: boolean): Promise<void>;
doRefresh(refresher?: HTMLIonRefresherElement | null, showErrors?: boolean): Promise<void>;
}
/**

View File

@ -13,7 +13,6 @@
// limitations under the License.
import { Component, OnDestroy, OnInit } from '@angular/core';
import { IonRefresher } from '@ionic/angular';
import { CoreSites } from '@services/sites';
import { CoreDomUtils } from '@services/utils/dom';
import { CoreUtils } from '@services/utils/utils';
@ -163,7 +162,7 @@ export class CoreCoursesCategoriesPage implements OnInit, OnDestroy {
*
* @param refresher Refresher.
*/
refreshCategories(refresher?: IonRefresher): void {
refreshCategories(refresher?: HTMLIonRefresherElement): void {
const promises: Promise<void>[] = [];
promises.push(CoreCourses.invalidateUserCourses());

View File

@ -13,7 +13,6 @@
// limitations under the License.
import { Component, OnDestroy, OnInit, QueryList, ViewChildren } from '@angular/core';
import { IonRefresher } from '@ionic/angular';
import { CoreCourses } from '../../services/courses';
import { CoreEventObserver, CoreEvents } from '@singletons/events';
@ -146,7 +145,7 @@ export class CoreCoursesDashboardPage implements OnInit, OnDestroy {
*
* @param refresher Refresher.
*/
refreshDashboard(refresher: IonRefresher): void {
refreshDashboard(refresher: HTMLIonRefresherElement): void {
const promises: Promise<void>[] = [];
promises.push(CoreCoursesDashboard.invalidateDashboardBlocks());

View File

@ -14,7 +14,6 @@
import { Component, OnDestroy, OnInit } from '@angular/core';
import { CoreCoursesHelper, CoreEnrolledCourseDataWithExtraInfo } from '@features/courses/services/courses-helper';
import { IonRefresher } from '@ionic/angular';
import { CoreNavigator } from '@services/navigator';
import { CoreSites } from '@services/sites';
import { CoreDomUtils } from '@services/utils/dom';
@ -215,7 +214,7 @@ export class CoreCoursesListPage implements OnInit, OnDestroy {
*
* @param refresher Refresher.
*/
refreshCourses(refresher: IonRefresher): void {
refreshCourses(refresher: HTMLIonRefresherElement): void {
const promises: Promise<void>[] = [];
if (!this.searchMode) {

View File

@ -22,7 +22,6 @@ import { CoreBlockDelegate } from '@features/block/services/block-delegate';
import { CoreCourseBlock } from '@features/course/services/course';
import { CoreCoursesDashboard, CoreCoursesDashboardProvider } from '@features/courses/services/dashboard';
import { CoreMainMenuDeepLinkManager } from '@features/mainmenu/classes/deep-link-manager';
import { IonRefresher } from '@ionic/angular';
import { CoreSites } from '@services/sites';
import { CoreDomUtils } from '@services/utils/dom';
import { CoreUtils } from '@services/utils/utils';
@ -181,7 +180,7 @@ export class CoreCoursesMyPage implements OnInit, OnDestroy, AsyncDirective {
*
* @param refresher Refresher.
*/
async refresh(refresher?: IonRefresher): Promise<void> {
async refresh(refresher?: HTMLIonRefresherElement): Promise<void> {
const promises: Promise<void>[] = [];

View File

@ -14,7 +14,6 @@
import { ActivatedRoute, ActivatedRouteSnapshot } from '@angular/router';
import { AfterViewInit, Component, ElementRef, OnDestroy } from '@angular/core';
import { IonRefresher } from '@ionic/angular';
import { CoreDomUtils } from '@services/utils/dom';
import { CoreGrades } from '@features/grades/services/grades';
@ -185,7 +184,7 @@ export class CoreGradesCoursePage implements AfterViewInit, OnDestroy {
*
* @param refresher Refresher.
*/
async refreshGrades(refresher: IonRefresher): Promise<void> {
async refreshGrades(refresher: HTMLIonRefresherElement): Promise<void> {
await CoreUtils.ignoreErrors(CoreGrades.invalidateCourseGradesData(this.courseId, this.userId));
await CoreUtils.ignoreErrors(this.fetchGrades());

View File

@ -19,7 +19,6 @@ import { CoreRoutedItemsManagerSourcesTracker } from '@classes/items-management/
import { CoreSplitViewComponent } from '@components/split-view/split-view';
import { CoreGradesCoursesSource } from '@features/grades/classes/grades-courses-source';
import { CoreGrades } from '@features/grades/services/grades';
import { IonRefresher } from '@ionic/angular';
import { CoreAnalytics, CoreAnalyticsEventType } from '@services/analytics';
import { CoreSites } from '@services/sites';
import { CoreDomUtils } from '@services/utils/dom';
@ -66,7 +65,7 @@ export class CoreGradesCoursesPage implements OnDestroy, AfterViewInit {
*
* @param refresher Refresher.
*/
async refreshCourses(refresher: IonRefresher): Promise<void> {
async refreshCourses(refresher: HTMLIonRefresherElement): Promise<void> {
await CoreUtils.ignoreErrors(CoreGrades.invalidateCoursesGradesData());
await CoreUtils.ignoreErrors(this.courses.reload());

View File

@ -20,7 +20,6 @@ import {
CoreReportBuilderRetrieveReportMapped,
REPORT_ROWS_LIMIT,
} from '@features/reportbuilder/services/reportbuilder';
import { IonRefresher } from '@ionic/angular';
import { CoreAnalytics, CoreAnalyticsEventType } from '@services/analytics';
import { CoreNavigator } from '@services/navigator';
import { CoreScreen } from '@services/screen';
@ -170,7 +169,7 @@ export class CoreReportBuilderReportDetailComponent implements OnInit {
*
* @param ionRefresher ionic refresher.
*/
async refreshReport(ionRefresher?: IonRefresher): Promise<void> {
async refreshReport(ionRefresher?: HTMLIonRefresherElement): Promise<void> {
await CoreUtils.ignoreErrors(CoreReportBuilder.invalidateReport());
this.updateState({ page: 0, canLoadMoreRows: false });
await CoreUtils.ignoreErrors(this.getReport());

View File

@ -17,7 +17,6 @@ import { CoreListItemsManager } from '@classes/items-management/list-items-manag
import { CoreRoutedItemsManagerSourcesTracker } from '@classes/items-management/routed-items-manager-sources-tracker';
import { CoreReportBuilderReportsSource } from '@features/reportbuilder/classes/reports-source';
import { CoreReportBuilder, CoreReportBuilderReport, REPORTS_LIST_LIMIT } from '@features/reportbuilder/services/reportbuilder';
import { IonRefresher } from '@ionic/angular';
import { CoreAnalytics, CoreAnalyticsEventType } from '@services/analytics';
import { CoreNavigator } from '@services/navigator';
import { CoreDomUtils } from '@services/utils/dom';
@ -114,7 +113,7 @@ export class CoreReportBuilderListPage implements AfterViewInit, OnDestroy {
*
* @param ionRefresher ionRefresher.
*/
async refreshReports(ionRefresher?: IonRefresher): Promise<void> {
async refreshReports(ionRefresher?: HTMLIonRefresherElement): Promise<void> {
await CoreUtils.ignoreErrors(CoreReportBuilder.invalidateReportsList());
await CoreUtils.ignoreErrors(this.fetchReports(true));
await ionRefresher?.complete();

View File

@ -22,7 +22,6 @@ import {
} from '@features/search/services/global-search';
import { CoreEvents } from '@singletons/events';
import { ModalController } from '@singletons';
import { IonRefresher } from '@ionic/angular';
import { CoreUtils } from '@services/utils/utils';
type Filter<T=unknown> = T & { checked: boolean };
@ -145,7 +144,7 @@ export class CoreSearchGlobalSearchFiltersComponent implements OnInit {
*
* @param refresher Refresher.
*/
async refreshFilters(refresher?: IonRefresher): Promise<void> {
async refreshFilters(refresher?: HTMLIonRefresherElement): Promise<void> {
await CoreUtils.ignoreErrors(Promise.all([
CoreSearchGlobalSearch.invalidateSearchAreas(),
CoreCourses.invalidateUserCourses(),

View File

@ -13,7 +13,6 @@
// limitations under the License.
import { AfterViewInit, Component, OnDestroy, ViewChild } from '@angular/core';
import { IonRefresher } from '@ionic/angular';
import { CoreSettingsHandlerToDisplay, CoreSettingsPageHandlerToDisplay } from '../../services/settings-delegate';
import { CoreEventObserver, CoreEvents } from '@singletons/events';
@ -140,7 +139,7 @@ export class CoreSitePreferencesPage implements AfterViewInit, OnDestroy {
*
* @param refresher Refresher.
*/
refreshData(refresher?: IonRefresher): void {
refreshData(refresher?: HTMLIonRefresherElement): void {
this.handlers.getSource().setDirty(true);
this.fetchData().finally(() => {
refresher?.complete();

View File

@ -13,7 +13,6 @@
// limitations under the License.
import { Component, OnDestroy, OnInit } from '@angular/core';
import { IonRefresher } from '@ionic/angular';
import { CoreSiteBasicInfo, CoreSites } from '@services/sites';
import { CoreUtils } from '@services/utils/utils';
@ -155,7 +154,7 @@ export class CoreSettingsSpaceUsagePage implements OnInit, OnDestroy {
*
* @param refresher Refresher event.
*/
refreshData(refresher?: IonRefresher): void {
refreshData(refresher?: HTMLIonRefresherElement): void {
this.loadSiteData().finally(() => {
refresher?.complete();
});

View File

@ -14,7 +14,6 @@
import { Component, OnInit, OnDestroy, Input, Output, EventEmitter } from '@angular/core';
import { FileEntry, DirectoryEntry } from '@ionic-native/file/ngx';
import { IonRefresher } from '@ionic/angular';
import { Md5 } from 'ts-md5';
import { CoreSharedFiles } from '@features/sharedfiles/services/sharedfiles';
@ -82,7 +81,7 @@ export class CoreSharedFilesListComponent implements OnInit, OnDestroy {
*
* @param refresher Refresher.
*/
refreshFiles(refresher: IonRefresher): void {
refreshFiles(refresher: HTMLIonRefresherElement): void {
this.loadFiles().finally(() => {
refresher.complete();
});

View File

@ -13,7 +13,6 @@
// limitations under the License.
import { Component, OnDestroy, OnInit } from '@angular/core';
import { IonRefresher } from '@ionic/angular';
import { ActivatedRoute } from '@angular/router';
import { CoreSite, CoreSiteConfig } from '@classes/site';
@ -163,7 +162,7 @@ export class CoreSiteHomeIndexPage implements OnInit, OnDestroy {
*
* @param refresher Refresher.
*/
doRefresh(refresher?: IonRefresher): void {
doRefresh(refresher?: HTMLIonRefresherElement): void {
const promises: Promise<unknown>[] = [];
promises.push(CoreCourse.invalidateSections(this.siteHomeId));

View File

@ -13,7 +13,6 @@
// limitations under the License.
import { Component, OnChanges, Input, ViewChild, HostBinding } from '@angular/core';
import { IonRefresher } from '@ionic/angular';
import { CoreCourseFormatComponent } from '@features/course/components/course-format/course-format';
import { CoreCourseSection } from '@features/course/services/course-helper';
@ -93,7 +92,7 @@ export class CoreSitePluginsCourseFormatComponent implements OnChanges {
* @param afterCompletionChange Whether the refresh is due to a completion change.
* @returns Promise resolved when done.
*/
async doRefresh(refresher?: IonRefresher, done?: () => void, afterCompletionChange?: boolean): Promise<void> {
async doRefresh(refresher?: HTMLIonRefresherElement, done?: () => void, afterCompletionChange?: boolean): Promise<void> {
await this.content?.refreshContent(afterCompletionChange);
}

View File

@ -30,7 +30,6 @@ import {
CoreSitePluginsContent,
CoreSitePluginsCourseModuleHandlerData,
} from '@features/siteplugins/services/siteplugins';
import { IonRefresher } from '@ionic/angular';
import { CoreDomUtils } from '@services/utils/dom';
import { CoreUtils } from '@services/utils/utils';
import { CoreSitePluginsPluginContentComponent, CoreSitePluginsPluginContentLoadedData } from '../plugin-content/plugin-content';
@ -122,7 +121,7 @@ export class CoreSitePluginsModuleIndexComponent implements OnInit, OnDestroy, C
* @param refresher Refresher.
* @returns Promise resolved when done.
*/
async doRefresh(refresher?: IonRefresher | null): Promise<void> {
async doRefresh(refresher?: HTMLIonRefresherElement | null): Promise<void> {
try {
await this.content?.refreshContent(false);
} finally {

View File

@ -13,7 +13,6 @@
// limitations under the License.
import { Component, OnInit, ViewChild } from '@angular/core';
import { IonRefresher } from '@ionic/angular';
import { CoreSitePluginsPluginContentComponent } from '@features/siteplugins/components/plugin-content/plugin-content';
import { CoreSitePlugins, CoreSitePluginsContent } from '@features/siteplugins/services/siteplugins';
@ -70,7 +69,7 @@ export class CoreSitePluginsCourseOptionPage implements OnInit {
*
* @param refresher Refresher.
*/
async refreshData(refresher: IonRefresher): Promise<void> {
async refreshData(refresher: HTMLIonRefresherElement): Promise<void> {
try {
await this.content?.refreshContent(false);
} finally {

View File

@ -13,7 +13,6 @@
// limitations under the License.
import { Component, OnInit, ViewChild } from '@angular/core';
import { IonRefresher } from '@ionic/angular';
import { CoreCourseModuleData } from '@features/course/services/course-helper';
import { CanLeave } from '@guards/can-leave';
@ -73,7 +72,7 @@ export class CoreSitePluginsModuleIndexPage implements OnInit, CanLeave {
*
* @param refresher Refresher.
*/
refreshData(refresher: IonRefresher): void {
refreshData(refresher: HTMLIonRefresherElement): void {
this.content?.doRefresh().finally(() => {
refresher.complete();
});

View File

@ -13,7 +13,6 @@
// limitations under the License.
import { Component, OnInit, ViewChild } from '@angular/core';
import { IonRefresher } from '@ionic/angular';
import { CoreSiteWSPreSets } from '@classes/site';
import { CoreSitePluginsContent } from '@features/siteplugins/services/siteplugins';
@ -61,7 +60,7 @@ export class CoreSitePluginsPluginPage implements OnInit, CanLeave {
*
* @param refresher Refresher.
*/
refreshData(refresher: IonRefresher): void {
refreshData(refresher: HTMLIonRefresherElement): void {
this.content?.refreshContent(false).finally(() => {
refresher.complete();
});

View File

@ -13,7 +13,6 @@
// limitations under the License.
import { Component, OnInit, Type } from '@angular/core';
import { IonRefresher } from '@ionic/angular';
import { CoreDomUtils } from '@services/utils/dom';
import { CoreTag } from '@features/tag/services/tag';
import { ActivatedRoute } from '@angular/router';
@ -153,7 +152,7 @@ export class CoreTagIndexAreaPage implements OnInit {
*
* @param refresher Refresher.
*/
async refreshData(refresher?: IonRefresher): Promise<void> {
async refreshData(refresher?: HTMLIonRefresherElement): Promise<void> {
try {
await CoreTag.invalidateTagIndexPerArea(
this.tagId,

View File

@ -13,7 +13,6 @@
// limitations under the License.
import { Component, OnInit } from '@angular/core';
import { IonRefresher } from '@ionic/angular';
import { CoreDomUtils } from '@services/utils/dom';
import { CoreTag } from '@features/tag/services/tag';
import { CoreTagAreaDelegate } from '@features/tag/services/tag-area-delegate';
@ -149,7 +148,7 @@ export class CoreTagIndexPage implements OnInit {
*
* @param refresher Refresher.
*/
refreshData(refresher?: IonRefresher): void {
refreshData(refresher?: HTMLIonRefresherElement): void {
CoreTag.invalidateTagIndexPerArea(
this.tagId,
this.tagName,

View File

@ -13,7 +13,6 @@
// limitations under the License.
import { Component, OnInit } from '@angular/core';
import { IonRefresher } from '@ionic/angular';
import { CoreApp } from '@services/app';
import { CoreDomUtils } from '@services/utils/dom';
@ -130,7 +129,7 @@ export class CoreTagSearchPage implements OnInit {
*
* @param refresher Refresher event.
*/
refreshData(refresher?: IonRefresher): void {
refreshData(refresher?: HTMLIonRefresherElement): void {
CoreUtils.allPromises([
CoreTag.invalidateTagCollections(),
CoreTag.invalidateTagCloud(this.collectionId, undefined, undefined, this.query),

View File

@ -13,7 +13,6 @@
// limitations under the License.
import { Component, OnDestroy, OnInit } from '@angular/core';
import { IonRefresher } from '@ionic/angular';
import { CoreSites } from '@services/sites';
import { CoreDomUtils } from '@services/utils/dom';
@ -202,7 +201,7 @@ export class CoreUserAboutPage implements OnInit, OnDestroy {
* @param event Event.
* @returns Promise resolved when done.
*/
async refreshUser(event?: IonRefresher): Promise<void> {
async refreshUser(event?: HTMLIonRefresherElement): Promise<void> {
await CoreUtils.ignoreErrors(CoreUser.invalidateUserCache(this.userId));
await this.fetchUser();

View File

@ -13,7 +13,6 @@
// limitations under the License.
import { AfterViewInit, Component, OnDestroy, OnInit, ViewChild } from '@angular/core';
import { IonRefresher } from '@ionic/angular';
import { CoreApp } from '@services/app';
import { CoreDomUtils } from '@services/utils/dom';
@ -136,7 +135,7 @@ export class CoreUserParticipantsPage implements OnInit, AfterViewInit, OnDestro
*
* @param refresher Refresher.
*/
async refreshParticipants(refresher: IonRefresher): Promise<void> {
async refreshParticipants(refresher: HTMLIonRefresherElement): Promise<void> {
await CoreUtils.ignoreErrors(CoreUser.invalidateParticipantsList(this.courseId));
await CoreUtils.ignoreErrors(this.fetchParticipants(true));

View File

@ -14,7 +14,6 @@
import { ActivatedRoute, ActivatedRouteSnapshot } from '@angular/router';
import { Component, OnDestroy, OnInit } from '@angular/core';
import { IonRefresher } from '@ionic/angular';
import { Subscription } from 'rxjs';
import { CoreSite } from '@classes/site';
@ -188,7 +187,7 @@ export class CoreUserProfilePage implements OnInit, OnDestroy {
* @param event Event.
* @returns Promise resolved when done.
*/
async refreshUser(event?: IonRefresher): Promise<void> {
async refreshUser(event?: HTMLIonRefresherElement): Promise<void> {
await CoreUtils.ignoreErrors(Promise.all([
CoreUser.invalidateUserCache(this.userId),
CoreCourses.invalidateUserNavigationOptions(),