Skip to content

Commit

Permalink
update photo_grid.dart
Browse files Browse the repository at this point in the history
  • Loading branch information
aap01 committed Jun 18, 2022
1 parent fb6da10 commit bd1cf33
Showing 1 changed file with 48 additions and 57 deletions.
105 changes: 48 additions & 57 deletions lib/feature/gallery/presentation/widget/photo_grid.dart
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,10 @@ class _PhotoGridBuilderWidgetState extends State<_PhotoGridBuilderWidget> {
static const _perPage = 10;
int _pageKey = 1;
late Function(int) _pageRequestListener;


@override
void dispose() {
_pagingController.dispose();

super.dispose();
}

Expand All @@ -68,72 +66,68 @@ class _PhotoGridBuilderWidgetState extends State<_PhotoGridBuilderWidget> {
perPage: _perPage,
);
};
_listentToCubit();
_listenToScroll();
super.didChangeDependencies();
}

Widget _photoGridBuilderWidget() {
return RefreshIndicator(
onRefresh: _onRefresh,
child: CustomScrollView(
slivers: [
PagedSliverGrid<int, Photo>(
pagingController: _pagingController,
builderDelegate: PagedChildBuilderDelegate<Photo>(
itemBuilder: (context, item, index) {
return PhotoGridTileWidget(photo: item);
},
firstPageErrorIndicatorBuilder: (context) {
final message = _messageFromFailure(
_pagingController.error,
);
return FullPageError(
message: message,
onTryAgain: _onTryAgain,
);
},
newPageErrorIndicatorBuilder: (context) {
final message = _messageFromFailure(
_pagingController.error,
);
return CellErrorWidget(
message: message,
onTryAgain: _pagingController.retryLastFailedRequest,
);
},
// newPageErrorIndicatorBuilder:
),
gridDelegate: SliverQuiltedGridDelegate(
crossAxisCount: 4,
mainAxisSpacing: 4,
crossAxisSpacing: 4,
repeatPattern: QuiltedGridRepeatPattern.same,
pattern: GridPatternConstants.galleryPattern,
),
)
],
),
);
}

void _listenToScroll() {
_pagingController.addPageRequestListener(_pageRequestListener);
}

void _listentToCubit() {
_photoListCubit.stream.listen(
(state) => {
return BlocListener<PhotoListCubit, PhotoListState>(
listener: (context, state) {
state.when(
initial: () {},
loading: () {},
loaded: _onINewItems,
failed: _onError,
)
);
},
child: RefreshIndicator(
onRefresh: _onRefresh,
child: CustomScrollView(
slivers: [
PagedSliverGrid<int, Photo>(
pagingController: _pagingController,
builderDelegate: PagedChildBuilderDelegate<Photo>(
itemBuilder: (context, item, index) {
return PhotoGridTileWidget(photo: item);
},
firstPageErrorIndicatorBuilder: (context) {
final message = _messageFromFailure(
_pagingController.error,
);
return FullPageError(
message: message,
onTryAgain: _onRefresh,
);
},
newPageErrorIndicatorBuilder: (context) {
final message = _messageFromFailure(
_pagingController.error,
);
return CellErrorWidget(
message: message,
onTryAgain: _pagingController.retryLastFailedRequest,
);
},
// newPageErrorIndicatorBuilder:
),
gridDelegate: SliverQuiltedGridDelegate(
crossAxisCount: 4,
mainAxisSpacing: 4,
crossAxisSpacing: 4,
repeatPattern: QuiltedGridRepeatPattern.same,
pattern: GridPatternConstants.galleryPattern,
),
)
],
),
),
);
}

void _listenToScroll() {
_pagingController.addPageRequestListener(_pageRequestListener);
}

void _onError(GetPhotoListFailure failure) {
final message = _messageFromFailure(failure);
_showSnackbar(message);
Expand Down Expand Up @@ -167,7 +161,4 @@ class _PhotoGridBuilderWidgetState extends State<_PhotoGridBuilderWidget> {
internet: (internetFailure) => MessageConstants.noInternet,
);

_onTryAgain() {
_pagingController.refresh();
}
}

0 comments on commit bd1cf33

Please sign in to comment.