part of 'index.dart'; class DocumentPageModel extends FlutterFlowModel { DocumentPageModel(); late final GlobalKey> pageKey; late final EnhancedRemoteListViewKey enhancedListViewKey; late final DocumentKey viewerKey; late final PagingController _pagingController; /// ------------ @override void initState(BuildContext context) { pageKey = GlobalKey>(); enhancedListViewKey = EnhancedRemoteListViewKey(); viewerKey = DocumentKey(); _pagingController = PagingController(firstPageKey: 1); } @override void dispose() { _pagingController.dispose(); // isCategorySelected = false; // isDocumentSelected = false; } /// ------------ /// [onView] void onView(Document document, BuildContext context) async { context.read().add(SelectDocumentEvent(document)); } /// [itemBodyBuilder] DocumentItem itemBodyBuilder( BuildContext context, T item, int index) { print('ItemBuilder -> $index'); return DocumentItem( document: item, onPressed: onView, ); } CategoryItem categoryItemBuilder(T? item) { return CategoryItem(category: item! as Category); } /// [itemHeaderBuilder] Widget itemHeaderBuilder(Future> Function() gen) => Builder(builder: (context) { return Column( mainAxisSize: MainAxisSize.max, crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start, children: [ Padding( padding: const EdgeInsets.fromLTRB(15, 0, 50, 0), child: Text( FFLocalizations.of(context).getVariableText( enText: 'Recent Documents', ptText: 'Últimos Documentos'), style: TextStyle( color: FlutterFlowTheme.of(context).primaryText, fontSize: LimitedFontSizeUtil.getHeaderFontSize(context), ), ), ), EnhancedCarouselView( generateItems: gen, itemBuilder: categoryItemBuilder, filter: filter, ), ], ); }); /// [generateBodyItems] Future> generateBodyItems( int pageKey, int pageSize, dynamic query) async { log('generateDocuments: $query'); final List error = [null]; print('Query: ${query is Document}'); final GetDocuments getDocuments = FreAccessWSGlobal.getDocuments; final ApiCallResponse newItems = await getDocuments.call(pageKey, query); if (newItems.jsonBody == null || newItems.jsonBody['error'] == true) { return error; } final List list = newItems.jsonBody['value']['list']; final List docs = list.map((item) { log('-> generateDocuments: $item'); return Document( id: item['id'], description: item['description'], type: item['type'], category: Category( id: item['category']['id'], color: item['category']['color'].toColor(), title: item['category']['description'], ), person: item['person'] ?? '', property: item['property'] ?? '', createdAt: item['createdAt'], updatedAt: item['updatedAt'], ); }).toList(); return docs as List; } /// [generateHeaderItems] Future> generateHeaderItems() async { final List error = [null]; final GetCategories getCategories = FreAccessWSGlobal.getCategories; final ApiCallResponse newItems = await getCategories.call(); if (newItems.jsonBody == null || newItems.jsonBody['error'] == true) { return error; } final List list = newItems.jsonBody['value']; final List categories = list.map((item) { return Category( id: item['id'], color: item['color'].toColor(), title: item['description'], ); }).toList(); log('categories: $categories'); return categories as List; } /// [filter] void filter(T query, BuildContext context) { context .read() .add(FilterCategoryEvent(query as Archive?)); } // { // log('filterByCategories: '); // final state = managerKey.currentState; // if (state != null) { // // safeSetState(() { // // if (isCategorySelected) { // // filter(null); // // isCategorySelected = false; // // } else { // // filter(query); // // isCategorySelected = true; // // } // // }); // } // } /// [onFetchError] void onFetchError(Object e, StackTrace s) { DialogUtil.errorDefault(viewerKey.currentContext!); LogUtil.requestAPIFailed( "proccessRequest.php", "", "Consulta de Veículo", e, s); } }