diff --git a/lib/presentation/widgets/pagination/infinite_paged_list.dart b/lib/presentation/widgets/pagination/infinite_paged_list.dart new file mode 100644 index 0000000..04c47c3 --- /dev/null +++ b/lib/presentation/widgets/pagination/infinite_paged_list.dart @@ -0,0 +1,31 @@ +import 'package:flutter/material.dart'; +import 'package:infinite_scroll_pagination/infinite_scroll_pagination.dart'; +import 'package:pets_next_door_flutter/core/constants/sizes.dart'; + +class PNDInfinitePagedList extends StatelessWidget { + PNDInfinitePagedList({ + super.key, + required this.pagingController, + required this.builderDelegate, + this.separatorBuilder, + }); + + final PagingController pagingController; + final PagedChildBuilderDelegate builderDelegate; + final IndexedWidgetBuilder? separatorBuilder; + + @override + Widget build(BuildContext context) { + return RefreshIndicator( + child: PagedListView.separated( + pagingController: pagingController, + builderDelegate: builderDelegate, + separatorBuilder: + separatorBuilder ?? (context, index) => gapH16, + ), + onRefresh: () => Future.sync( + () => pagingController.refresh(), + ), + ); + } +} diff --git a/pubspec.yaml b/pubspec.yaml index d856cda..c45a8e5 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -55,6 +55,9 @@ dependencies: path_provider: ^2.1.2 mime: ^1.0.4 + # 페이지네이션 + infinite_scroll_pagination: ^4.0.0 + dev_dependencies: flutter_test: sdk: flutter