Skip to content

Commit

Permalink
query_page.dart refactored
Browse files Browse the repository at this point in the history
  • Loading branch information
yukiterunamaana committed Jun 15, 2024
1 parent b4a5e65 commit 58b133a
Show file tree
Hide file tree
Showing 3 changed files with 76 additions and 80 deletions.
7 changes: 7 additions & 0 deletions lib/pages/query_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,13 @@ class QueryPageWidget extends StatefulWidget {
class QueryPageWidgetState extends State<QueryPageWidget> {
final PagingController<int, FeedStatusWidget> pagingController =
PagingController(firstPageKey: 1);
// static const List<Tab> _tabs = [
// Tab(text: 'All'), column view
// Tab(text: 'Accounts'),
// Tab(text: 'Hashtags'),
// Tab(text: 'Statuses'),
// ];
// late TabController _tabController;

@override
void initState() {
Expand Down
77 changes: 0 additions & 77 deletions lib/pages/search_feeds/public_feed.dart

This file was deleted.

72 changes: 69 additions & 3 deletions lib/pages/search_feeds/public_feeds_aggregator.dart
Original file line number Diff line number Diff line change
@@ -1,12 +1,78 @@
import 'package:aadj/pages/search_feeds/public_feed.dart';
import 'package:aadj/widgets/post_view.dart';
import 'package:flutter/material.dart';
import 'package:infinite_scroll_pagination/infinite_scroll_pagination.dart';

import '../../core/globals.dart';
import '../../widgets/post_in_feed_widget.dart';
import '../../core/globals.dart';
import '../../widgets/post_in_feed_widget.dart';

class PublicFeedWidget extends StatefulWidget {
final bool remote;
final bool local;
const PublicFeedWidget(
{super.key, required this.remote, required this.local});

@override
PublicFeedWidgetState createState() => PublicFeedWidgetState();
}

class PublicFeedWidgetState extends State<PublicFeedWidget> {
final PagingController<int, FeedStatusWidget> pagingController =
PagingController(firstPageKey: 1);

@override
void initState() {
super.initState();
pagingController.addPageRequestListener((pageKey) {
fetchPage(pageKey);
});
}

@override
void dispose() {
pagingController.dispose();
super.dispose();
}

Future<void> fetchPage(int pageKey) async {
try {
final response = await mstdn.v1.timelines.lookupPublicTimeline(
onlyLocal: widget.local, onlyRemote: widget.remote);
List responseList = response.data;
final postList = responseList
.map((data) => FeedStatusWidget(
statusId: data.id,
))
.toList();
final isLastPage = postList.length < postsPerRequest;
if (isLastPage) {
pagingController.appendLastPage(postList);
debugPrint('Last page');
} else {
final nextPageKey = pageKey + 1;
pagingController.appendPage(postList, nextPageKey);
}
} catch (error) {
debugPrint('error! $error');
pagingController.error = error;
}
}

@override
Widget build(BuildContext context) => Scaffold(
body: RefreshIndicator(
onRefresh: () => Future.sync(pagingController.refresh),
child: PagedListView<int, FeedStatusWidget>(
pagingController: pagingController,
builderDelegate: PagedChildBuilderDelegate<FeedStatusWidget>(
animateTransitions: true,
itemBuilder: (context, item, index) => FeedStatusWidget(
statusId: item.statusId,
),
),
),
),
);
}

class PublicFeedAggregatorWidget extends StatefulWidget {
const PublicFeedAggregatorWidget({super.key});
Expand Down

0 comments on commit 58b133a

Please sign in to comment.