✨ Extended refresh indicator (keyboard based)
This commit is contained in:
		| @@ -9,6 +9,7 @@ import 'package:island/widgets/poll/poll_feedback.dart'; | ||||
| import 'package:material_symbols_icons/symbols.dart'; | ||||
| import 'package:riverpod_annotation/riverpod_annotation.dart'; | ||||
| import 'package:riverpod_paging_utils/riverpod_paging_utils.dart'; | ||||
| import 'package:island/widgets/extended_refresh_indicator.dart'; | ||||
|  | ||||
| part 'poll_list.g.dart'; | ||||
|  | ||||
| @@ -86,7 +87,7 @@ class CreatorPollListScreen extends HookConsumerWidget { | ||||
|         onPressed: () => _createPoll(context), | ||||
|         child: const Icon(Icons.add), | ||||
|       ), | ||||
|       body: RefreshIndicator( | ||||
|       body: ExtendedRefreshIndicator( | ||||
|         onRefresh: () => ref.refresh(pollListNotifierProvider(pubName).future), | ||||
|         child: CustomScrollView( | ||||
|           slivers: [ | ||||
|   | ||||
| @@ -4,6 +4,7 @@ import 'package:go_router/go_router.dart'; | ||||
| import 'package:island/pods/webfeed.dart'; | ||||
| import 'package:island/widgets/app_scaffold.dart'; | ||||
| import 'package:island/widgets/empty_state.dart'; | ||||
| import 'package:island/widgets/extended_refresh_indicator.dart'; | ||||
| import 'package:material_symbols_icons/symbols.dart'; | ||||
|  | ||||
| class WebFeedListScreen extends ConsumerWidget { | ||||
| @@ -20,7 +21,10 @@ class WebFeedListScreen extends ConsumerWidget { | ||||
|       floatingActionButton: FloatingActionButton( | ||||
|         child: const Icon(Symbols.add), | ||||
|         onPressed: () { | ||||
|           context.pushNamed('creatorFeedNew', pathParameters: {'name': pubName}); | ||||
|           context.pushNamed( | ||||
|             'creatorFeedNew', | ||||
|             pathParameters: {'name': pubName}, | ||||
|           ); | ||||
|         }, | ||||
|       ), | ||||
|       body: feedsAsync.when( | ||||
| @@ -32,7 +36,7 @@ class WebFeedListScreen extends ConsumerWidget { | ||||
|               description: 'Add a new web feed to get started', | ||||
|             ); | ||||
|           } | ||||
|           return RefreshIndicator( | ||||
|           return ExtendedRefreshIndicator( | ||||
|             onRefresh: () => ref.refresh(webFeedListProvider(pubName).future), | ||||
|             child: ListView.builder( | ||||
|               padding: EdgeInsets.only(top: 8), | ||||
| @@ -62,7 +66,10 @@ class WebFeedListScreen extends ConsumerWidget { | ||||
|                     ), | ||||
|                     trailing: const Icon(Symbols.chevron_right), | ||||
|                     onTap: () { | ||||
|                       context.pushNamed('creatorFeedEdit', pathParameters: {'name': pubName, 'feedId': feed.id}); | ||||
|                       context.pushNamed( | ||||
|                         'creatorFeedEdit', | ||||
|                         pathParameters: {'name': pubName, 'feedId': feed.id}, | ||||
|                       ); | ||||
|                     }, | ||||
|                   ), | ||||
|                 ); | ||||
|   | ||||
| @@ -9,6 +9,7 @@ import 'package:island/widgets/content/cloud_files.dart'; | ||||
| import 'package:island/widgets/response.dart'; | ||||
| import 'package:material_symbols_icons/symbols.dart'; | ||||
| import 'package:riverpod_annotation/riverpod_annotation.dart'; | ||||
| import 'package:island/widgets/extended_refresh_indicator.dart'; | ||||
|  | ||||
| part 'bots.g.dart'; | ||||
|  | ||||
| @@ -60,7 +61,7 @@ class BotsScreen extends HookConsumerWidget { | ||||
|             ), | ||||
|           ); | ||||
|         } | ||||
|         return RefreshIndicator( | ||||
|         return ExtendedRefreshIndicator( | ||||
|           onRefresh: | ||||
|               () => ref.refresh(botsProvider(publisherName, projectId).future), | ||||
|           child: ListView.builder( | ||||
|   | ||||
| @@ -27,6 +27,7 @@ import 'package:island/pods/network.dart'; | ||||
| import 'package:island/widgets/realm/realm_card.dart'; | ||||
| import 'package:island/widgets/publisher/publisher_card.dart'; | ||||
| import 'package:island/widgets/web_article_card.dart'; | ||||
| import 'package:island/widgets/extended_refresh_indicator.dart'; | ||||
| import 'package:styled_widget/styled_widget.dart'; | ||||
|  | ||||
| part 'explore.g.dart'; | ||||
| @@ -368,7 +369,7 @@ class ExploreScreen extends HookConsumerWidget { | ||||
|  | ||||
|     final isWide = isWideScreen(context); | ||||
|  | ||||
|     return RefreshIndicator( | ||||
|     return ExtendedRefreshIndicator( | ||||
|       onRefresh: () => Future.sync(activitiesNotifier.forceRefresh), | ||||
|       child: PagingHelperView( | ||||
|         provider: activityListNotifierProvider(filter), | ||||
|   | ||||
| @@ -23,6 +23,7 @@ import 'package:material_symbols_icons/symbols.dart'; | ||||
| import 'package:riverpod_annotation/riverpod_annotation.dart'; | ||||
| import 'package:styled_widget/styled_widget.dart'; | ||||
| import 'package:island/widgets/realm/realm_list_tile.dart'; | ||||
| import 'package:island/widgets/extended_refresh_indicator.dart'; | ||||
|  | ||||
| part 'realms.g.dart'; | ||||
|  | ||||
| @@ -90,7 +91,7 @@ class RealmListScreen extends HookConsumerWidget { | ||||
|         }, | ||||
|       ), | ||||
|       floatingActionButtonLocation: TabbedFabLocation(context), | ||||
|       body: RefreshIndicator( | ||||
|       body: ExtendedRefreshIndicator( | ||||
|         child: realms.when( | ||||
|           data: | ||||
|               (value) => Column( | ||||
|   | ||||
		Reference in New Issue
	
	Block a user