usePagingController<PageKeyType, ItemType> function

PagingController<PageKeyType, ItemType> usePagingController<PageKeyType, ItemType>({
  1. required PageKeyType firstPageKey,
  2. int? invisibleItemsThreshold,
  3. List<Object?>? keys,
  4. FutureOr<void> onPageRequest(
    1. PageKeyType pageKey,
    2. PagingController<PageKeyType, ItemType> pagingController
    )?,
})

Implementation

PagingController<PageKeyType, ItemType>
    usePagingController<PageKeyType, ItemType>({
  required final PageKeyType firstPageKey,
  final int? invisibleItemsThreshold,
  List<Object?>? keys,
  FutureOr<void> Function(PageKeyType pageKey,
          PagingController<PageKeyType, ItemType> pagingController)?
      onPageRequest,
}) {
  final controller = use(
    _PagingControllerHook<PageKeyType, ItemType>(
      firstPageKey: firstPageKey,
      invisibleItemsThreshold: invisibleItemsThreshold,
      keys: keys,
    ),
  );

  useEffect(() {
    listener(PageKeyType pageKey) => onPageRequest?.call(pageKey, controller);
    controller.addPageRequestListener(listener);
    return () => controller.removePageRequestListener(listener);
  }, [onPageRequest]);

  return controller;
}