Saltearse al contenido

Paginator

Clase genérica para la paginación de datos en la app. Esta clase se encarga de realizar solicitudes a la API para obtener datos paginados, gestionar la carga incremental, actualizar y recargar la lista de elementos, y notificar a los listeners sobre los cambios en su estado.

Importación

import 'package:togie/utils/paginator.dart';

Métodos

MétodoDescripción
callApi({int page = 1, int? perPage}) Realiza una solicitud a la API para obtener datos paginados.
loadMore() Carga más datos de la siguiente página. Si no se están cargando datos, incrementa la página y agrega los nuevos elementos a la lista.
resetList() Reinicia la lista de datos, resetea la página actual a 1 y realiza una nueva solicitud a la API.
reloadList() Recarga la lista de datos con un elemento adicional, actualizando el estado a onReloading.
refresh() Vuelve a cargar la lista de datos desde el inicio, actualizando el estado a onUpdating.
updateParameters(String newParameters) Actualiza los parámetros extras para la consulta a la API y notifica a los listeners del cambio de estado.

Propiedades

PropiedadTipoDescripción
listList<T>Lista dinámica que almacena los datos cargados.
countintCantidad de elementos en la lista.
currentPageintNúmero de página actual.
isLoadingboolIndica si se están cargando datos.
disopsableboolIndica si se debe deshabilitar el paginador.
parametersMap<String, dynamic> Mapa de parámetros extraídos y parseados para la solicitud a la API.
statusPaginatorStatus Estado actual del paginador, que puede ser none, onUpdating o onReloading.

Ejemplo de uso:

final Paginator<Model> _previusEvents = Paginator<Model>(
endPoint: "/endpoint",
modelConstructor: Model,
extraParameters: "...",
disposable: false,
);