refresh method

Future<void> refresh({
  1. bool reloadMeta = false,
})

Implementation

Future<void> refresh({bool reloadMeta = false}) async {
  final requestGeneration = ++_requestGeneration;
  _loading = true;
  _error = null;
  notifyListeners();
  try {
    if (_meta == null || reloadMeta) {
      _meta = await _client.loadMeta();
    }
    final results = await Future.wait<dynamic>(<Future<dynamic>>[
      _client.loadRows(
        search: _search,
        status: _statusFilter.apiValue,
      ),
      _client.loadSummary(),
    ]);
    if (requestGeneration != _requestGeneration) {
      return;
    }
    _rows = List<CatalogRow>.from(results[0] as List<CatalogRow>);
    _summary = results[1] as CatalogSummary;
    _sortRows();
    _error = null;
  } catch (error) {
    if (requestGeneration != _requestGeneration) {
      return;
    }
    _error = error.toString();
  } finally {
    if (requestGeneration == _requestGeneration) {
      _loading = false;
      notifyListeners();
    }
  }
}