diff --git a/lib/features/documents/archive_item_component.dart b/lib/features/documents/archive_item_component.dart deleted file mode 100644 index 9ec58ac2..00000000 --- a/lib/features/documents/archive_item_component.dart +++ /dev/null @@ -1 +0,0 @@ -part of 'index.dart'; diff --git a/lib/features/documents/category_item_component.dart b/lib/features/documents/category_item_component.dart deleted file mode 100644 index 9ec58ac2..00000000 --- a/lib/features/documents/category_item_component.dart +++ /dev/null @@ -1 +0,0 @@ -part of 'index.dart'; diff --git a/lib/features/documents/document_item_component.dart b/lib/features/documents/document_item_component.dart deleted file mode 100644 index 9ec58ac2..00000000 --- a/lib/features/documents/document_item_component.dart +++ /dev/null @@ -1 +0,0 @@ -part of 'index.dart'; diff --git a/lib/features/documents/document_page_bloc.dart b/lib/features/documents/document_page_bloc.dart deleted file mode 100644 index 9ec58ac2..00000000 --- a/lib/features/documents/document_page_bloc.dart +++ /dev/null @@ -1 +0,0 @@ -part of 'index.dart'; diff --git a/lib/features/documents/document_page_model.dart b/lib/features/documents/document_page_model.dart deleted file mode 100644 index 9ec58ac2..00000000 --- a/lib/features/documents/document_page_model.dart +++ /dev/null @@ -1 +0,0 @@ -part of 'index.dart'; diff --git a/lib/features/documents/document_page_widget.dart b/lib/features/documents/document_page_widget.dart deleted file mode 100644 index 9ec58ac2..00000000 --- a/lib/features/documents/document_page_widget.dart +++ /dev/null @@ -1 +0,0 @@ -part of 'index.dart'; diff --git a/lib/features/documents/document_screen_manager.dart b/lib/features/documents/document_screen_manager.dart deleted file mode 100644 index 9ec58ac2..00000000 --- a/lib/features/documents/document_screen_manager.dart +++ /dev/null @@ -1 +0,0 @@ -part of 'index.dart'; diff --git a/lib/features/documents/document_screen_viewer.dart b/lib/features/documents/document_screen_viewer.dart deleted file mode 100644 index 9ec58ac2..00000000 --- a/lib/features/documents/document_screen_viewer.dart +++ /dev/null @@ -1 +0,0 @@ -part of 'index.dart'; diff --git a/lib/features/documents/documents.dart b/lib/features/documents/documents.dart index 68b244d1..c1983505 100644 --- a/lib/features/documents/documents.dart +++ b/lib/features/documents/documents.dart @@ -18,14 +18,13 @@ import 'package:rxdart/rxdart.dart' as rx; part 'documents.rxb.g.dart'; /// ----------------------------------------------- -/// [TypeDefs] +/// [TypeDefs] ----------------------------------- /// ----------------------------------------------- typedef DocumentKey = GlobalKey; /// ----------------------------------------------- - -/// [Page] +/// [Pages] --------------------------------------- /// ----------------------------------------------- class DocumentPage extends StatefulPage { @@ -79,9 +78,139 @@ class DocumentPageState extends PageState { } } +/// ----------------------------------------------- +/// [Screens] ------------------------------------ /// ----------------------------------------------- -/// [Model] +class DocumentManagerScreen extends StatelessScreen { + final DocumentPageModel model; + final DocumentPageState state; + + const DocumentManagerScreen({ + super.key, + required this.model, + required this.state, + }); + + @override + Widget build(BuildContext context) { + final String title = FFLocalizations.of(context).getVariableText( + enText: 'Documents', + ptText: 'Documentos', + ); + final theme = FlutterFlowTheme.of(context); + action() => Navigator.pop(context); + + return Scaffold( + backgroundColor: theme.primaryBackground, + appBar: buildAppBar(title, context, action), + body: buildBody(context), + ); + } + + Widget buildBody(BuildContext context) { + final SizedBox space = SizedBox(height: 30); + return Column( + children: [ + Expanded( + child: EnhancedListView( + key: model.vehicleScreenManager, + headerBuilder: model.itemHeaderBuilder, + headerItems: model.generateHeaderItems, + bodyBuilder: model.itemBodyBuilder, + bodyItems: model.generateBodyItems, + footerBuilder: model.itemFooterBuilder, + footerItems: model.generateFooterItems, + ), + ), + ] // + .addToStart(space) + .addToEnd(space), + ); + } +} + +class DocumentViewScreen extends StatefulScreen { + const DocumentViewScreen({ + super.key, + required this.doc, + required this.bloc, + }); + + final (Document, Uri) doc; + final DocumentPageBlocType bloc; + + @override + ScreenState createState() => _DocumentViewScreenState(); +} + +class _DocumentViewScreenState extends ScreenState { + @override + Widget build(BuildContext context) { + final String title = widget.doc.$1.description; + final theme = FlutterFlowTheme.of(context); + final locale = FFLocalizations.of(context); + + backAction() => widget.bloc.events.unselectDocument(); + infoAction() => DetailsComponentWidget( + buttons: [], + statusHashMap: [], + labelsHashMap: Map.from({ + locale.getVariableText( + enText: 'Description', + ptText: 'Descrição', + ): widget.doc.$1.description, + locale.getVariableText( + enText: 'Type', + ptText: 'Tipo', + ): widget.doc.$1.type, + locale.getVariableText( + enText: 'Category', + ptText: 'Categoria', + ): widget.doc.$1.category.title, + locale.getVariableText( + enText: 'Person', + ptText: 'Pessoa', + ): widget.doc.$1.person, + locale.getVariableText( + enText: 'Property', + ptText: 'Propriedade', + ): widget.doc.$1.property, + locale.getVariableText( + enText: 'Created At', + ptText: 'Criado em', + ): widget.doc.$1.createdAt, + locale.getVariableText( + enText: 'Updated At', + ptText: 'Atualizado em', + ): widget.doc.$1.updatedAt, + }), + ); + + return PopScope( + canPop: false, + onPopInvokedWithResult: (didPop, result) => backAction(), + child: Scaffold( + backgroundColor: theme.primaryBackground, + appBar: buildAppBar(title, context, backAction, infoAction), + body: buildBody(context), + ), + ); + } + + Widget buildBody(BuildContext context) { + // final PDFViewerKey _viewerKey = PDFViewerKey(); + + return ReadView( + // search: _viewerKey, + title: widget.doc.$1.description, + url: widget.doc.$2.toString(), + ); + } +} + +/// ----------------------------------------------- +/// [Models] -------------------------------------- /// ----------------------------------------------- class DocumentPageModel extends FlutterFlowModel { @@ -346,7 +475,7 @@ class DocumentPageModel extends FlutterFlowModel { } /// ----------------------------------------------- -/// [BLoC] +/// [BLoCs] --------------------------------------- /// ----------------------------------------------- extension RxdartStartWithExtension on Stream { @@ -390,142 +519,7 @@ class DocumentPageBloc extends $DocumentPageBloc { } /// ----------------------------------------------- -/// [Screens] -/// ----------------------------------------------- - -/// [DocumentManagerScreen] - -class DocumentManagerScreen extends StatelessScreen { - final DocumentPageModel model; - final DocumentPageState state; - - const DocumentManagerScreen({ - super.key, - required this.model, - required this.state, - }); - - @override - Widget build(BuildContext context) { - final String title = FFLocalizations.of(context).getVariableText( - enText: 'Documents', - ptText: 'Documentos', - ); - final theme = FlutterFlowTheme.of(context); - action() => Navigator.pop(context); - - return Scaffold( - backgroundColor: theme.primaryBackground, - appBar: buildAppBar(title, context, action), - body: buildBody(context), - ); - } - - Widget buildBody(BuildContext context) { - final SizedBox space = SizedBox(height: 30); - return Column( - children: [ - Expanded( - child: EnhancedListView( - key: model.vehicleScreenManager, - headerBuilder: model.itemHeaderBuilder, - headerItems: model.generateHeaderItems, - bodyBuilder: model.itemBodyBuilder, - bodyItems: model.generateBodyItems, - footerBuilder: model.itemFooterBuilder, - footerItems: model.generateFooterItems, - ), - ), - ] // - .addToStart(space) - .addToEnd(space), - ); - } -} - -/// [DocumentViewScreen] - -class DocumentViewScreen extends StatefulScreen { - const DocumentViewScreen({ - super.key, - required this.doc, - required this.bloc, - }); - - final (Document, Uri) doc; - final DocumentPageBlocType bloc; - - @override - ScreenState createState() => _DocumentViewScreenState(); -} - -class _DocumentViewScreenState extends ScreenState { - @override - Widget build(BuildContext context) { - final String title = widget.doc.$1.description; - final theme = FlutterFlowTheme.of(context); - final locale = FFLocalizations.of(context); - - backAction() => widget.bloc.events.unselectDocument(); - infoAction() => DetailsComponentWidget( - buttons: [], - statusHashMap: [], - labelsHashMap: Map.from({ - locale.getVariableText( - enText: 'Description', - ptText: 'Descrição', - ): widget.doc.$1.description, - locale.getVariableText( - enText: 'Type', - ptText: 'Tipo', - ): widget.doc.$1.type, - locale.getVariableText( - enText: 'Category', - ptText: 'Categoria', - ): widget.doc.$1.category.title, - locale.getVariableText( - enText: 'Person', - ptText: 'Pessoa', - ): widget.doc.$1.person, - locale.getVariableText( - enText: 'Property', - ptText: 'Propriedade', - ): widget.doc.$1.property, - locale.getVariableText( - enText: 'Created At', - ptText: 'Criado em', - ): widget.doc.$1.createdAt, - locale.getVariableText( - enText: 'Updated At', - ptText: 'Atualizado em', - ): widget.doc.$1.updatedAt, - }), - ); - - return PopScope( - canPop: false, - onPopInvokedWithResult: (didPop, result) => backAction(), - child: Scaffold( - backgroundColor: theme.primaryBackground, - appBar: buildAppBar(title, context, backAction, infoAction), - body: buildBody(context), - ), - ); - } - - Widget buildBody(BuildContext context) { - // final PDFViewerKey _viewerKey = PDFViewerKey(); - - return ReadView( - // search: _viewerKey, - title: widget.doc.$1.description, - url: widget.doc.$2.toString(), - ); - } -} - -/// ----------------------------------------------- -/// [Interfaces] +/// [Interfaces] --------------------------------- /// ----------------------------------------------- abstract interface class Archive extends Entity {} @@ -590,7 +584,7 @@ interface class Category extends Archive { } /// ----------------------------------------------- -/// [Widgets] +/// [Components] ------------------------------------- /// ----------------------------------------------- // ignore: must_be_immutable diff --git a/lib/shared/widgets/enhanced_list_view.dart b/lib/shared/widgets/enhanced_list_view.dart index 5dde8550..66e62fbe 100644 --- a/lib/shared/widgets/enhanced_list_view.dart +++ b/lib/shared/widgets/enhanced_list_view.dart @@ -1,25 +1,23 @@ part of 'widgets.dart'; -/// [TypeDefs] +/// [TypeDefs] ---------------------------------------------------- -typedef EnhancedListViewKey - = GlobalKey>; +typedef EnhancedListViewKey + = GlobalKey< + EnhancedListViewState>; +typedef PaginatedListViewHeaderBuilder = Widget Function( + Future> Function() headerItems); +typedef PaginatedListViewBodyBuilder = Widget Function( + BuildContext context, BodyType item, int index); +typedef PaginatedListViewFooterBuilder = Widget Function( + Future> Function() footerItems); +typedef Query = QueryType?; +typedef BodyItemsBuilder = Future> + Function(int page, int pageSize, QueryType query); +typedef HeaderItemsBuilder = Future> Function(); +typedef FooterItemsBuilder = Future> Function(); -typedef PaginatedListViewHeaderBuilder = Widget Function( - Future> Function() headerItems); -typedef PaginatedListViewBodyBuilder = Widget Function( - BuildContext context, T item, int index); -typedef PaginatedListViewFooterBuilder = Widget Function( - Future> Function() footerItems); - -typedef Query = T?; - -typedef BodyItemsBuilder = Future> Function( - int page, int pageSize, Q query); -typedef HeaderItemsBuilder = Future> Function(); -typedef FooterItemsBuilder = Future> Function(); - -/// [Extensions] +/// [Extensions] ---------------------------------------------------- extension PaginatedListMergeExtensions on Stream>> { Stream> mergeWithPaginatedList( @@ -72,9 +70,7 @@ extension QueryBlocStreamExtensions on Stream { }); } -/// [Widgets] - -/// [EnhancedListView] +/// [Interfaces] ---------------------------------------------------- interface class EnhancedPaginatedList extends PaginatedList { @override @@ -145,13 +141,29 @@ interface class EnhancedPaginatedList extends PaginatedList { Future awaitLoad() async => Future.value(); } -abstract interface class EnhancedListViewBase - extends StatefulWidget { +abstract interface class EnhancedListViewBase extends StatefulWidget { const EnhancedListViewBase({super.key}); } -abstract interface class EnhancedListViewBaseState - extends State {} +abstract interface class EnhancedListViewBaseState + extends State< + EnhancedListViewBase> {} + +/// [Mixins] ---------------------------------------------------- + +mixin EnhancedListViewMixin { + late EnhancedListViewBloc bloc; + + void filterBodyItems(QueryType query) => bloc.filterBodyItems(query); + + void filterHeaderItems(QueryType query) => bloc.filterHeaderItems(query); + + void filterFooterItems(QueryType query) => bloc.filterFooterItems(query); +} + +/// [Widgets] ---------------------------------------------------- class EnhancedListView extends EnhancedListViewBase { @@ -162,7 +174,7 @@ class EnhancedListView final FooterItemsBuilder? footerItems; final PaginatedListViewFooterBuilder? footerBuilder; - EnhancedListView({ + const EnhancedListView({ Key? key, required this.bodyItems, required this.bodyBuilder, @@ -179,10 +191,8 @@ class EnhancedListView } class EnhancedListViewState - extends State< - EnhancedListView> { - late EnhancedListViewBloc bloc; - + extends State> + with EnhancedListViewMixin { @override void initState() { super.initState(); @@ -197,12 +207,6 @@ class EnhancedListViewState bloc.events.loadFooterItems(); } - void filterBodyItems(Query query) => bloc.filterBodyItems(query); - - void filterHeaderItems(Query query) => bloc.filterHeaderItems(query); - - void filterFooterItems(Query query) => bloc.filterFooterItems(query); - @override Widget build(BuildContext context) { final header = StreamBuilder>( @@ -272,7 +276,7 @@ class EnhancedListViewState } } -/// [Utils] +/// [Utils] ---------------------------------------------------- class EnhancedListTile extends StatelessWidget { const EnhancedListTile( @@ -336,7 +340,7 @@ class AuthorizationError implements Exception { AuthorizationError(this.message); } -/// [State Management] +/// [Blocs] ---------------------------------------------------- Stream get loadingState => Stream.empty(); Stream get errorState => Stream.empty(); @@ -345,23 +349,25 @@ abstract class EnhancedListViewRepository { int page, int pageSize, PaginatedListViewBodyBuilder builder); } -abstract class EnhancedListViewEvents { +abstract class EnhancedListViewEvents { void loadBodyItems({bool reset = false, dynamic query = null}); void loadHeaderItems(); void loadFooterItems(); } -abstract class EnhancedListViewStates { - Stream> get bodyItems; - Stream> get headerItems; - Stream> get footerItems; +abstract class EnhancedListViewStates { + Stream> get bodyItems; + Stream> get headerItems; + Stream> get footerItems; Stream get isLoading; Stream get errors; } -@RxBloc() -class EnhancedListViewBloc - extends $EnhancedListViewBloc { +class EnhancedListViewBloc + extends $EnhancedListViewBloc { EnhancedListViewBloc({ required this.bodyItemsBuilder, required this.headerItemsBuilder, @@ -384,24 +390,24 @@ class EnhancedListViewBloc .addTo(_compositeSubscription); } - final BodyItemsBuilder bodyItemsBuilder; - final HeaderItemsBuilder headerItemsBuilder; - final FooterItemsBuilder footerItemsBuilder; + final BodyItemsBuilder bodyItemsBuilder; + final HeaderItemsBuilder headerItemsBuilder; + final FooterItemsBuilder footerItemsBuilder; - final _bodyItems = BehaviorSubject>.seeded([]); + final _bodyItems = BehaviorSubject>.seeded([]); - final _headerItems = BehaviorSubject>.seeded([]); + final _headerItems = BehaviorSubject>.seeded([]); - final _footerItems = BehaviorSubject>.seeded([]); + final _footerItems = BehaviorSubject>.seeded([]); final _isLoading = BehaviorSubject.seeded(false); final _errors = BehaviorSubject(); - Stream> _fetchBodyItems(bool reset, Q? query) async* { + Stream> _fetchBodyItems(bool reset, QueryType? query) async* { try { _isLoading.add(true); final items = await bodyItemsBuilder(1, 10, query); - yield items.whereType().toList(); + yield items.whereType().toList(); } catch (e) { _errors.add(e.toString()); } finally { @@ -409,11 +415,11 @@ class EnhancedListViewBloc } } - Stream> _fetchHeaderItems() async* { + Stream> _fetchHeaderItems() async* { try { _isLoading.add(true); final items = await headerItemsBuilder(); - yield items.whereType().toList(); + yield items.whereType().toList(); } catch (e) { _errors.add(e.toString()); } finally { @@ -421,11 +427,11 @@ class EnhancedListViewBloc } } - Stream> _fetchFooterItems() async* { + Stream> _fetchFooterItems() async* { try { _isLoading.add(true); final items = await footerItemsBuilder(); - yield items.whereType().toList(); + yield items.whereType().toList(); } catch (e) { _errors.add(e.toString()); } finally { @@ -433,15 +439,15 @@ class EnhancedListViewBloc } } - void filterBodyItems(Q query) { + void filterBodyItems(QueryType query) { _$loadBodyItemsEvent.add((query: query, reset: true)); } - void filterHeaderItems(Q query) { + void filterHeaderItems(QueryType query) { _$loadHeaderItemsEvent.add(null); } - void filterFooterItems(Q query) { + void filterFooterItems(QueryType query) { _$loadFooterItemsEvent.add(null); } @@ -456,13 +462,112 @@ class EnhancedListViewBloc } @override - Stream> _mapToBodyItemsState() => _bodyItems.stream; + Stream> _mapToBodyItemsState() => _bodyItems.stream; @override Stream _mapToErrorsState() => _errors.stream; @override - Stream> _mapToFooterItemsState() => _footerItems.stream; + Stream> _mapToFooterItemsState() => _footerItems.stream; @override - Stream> _mapToHeaderItemsState() => _headerItems.stream; + Stream> _mapToHeaderItemsState() => _headerItems.stream; @override Stream _mapToIsLoadingState() => _isLoading.stream; } + +abstract class EnhancedListViewBlocType extends RxBlocTypeBase { + EnhancedListViewEvents get events; + EnhancedListViewStates get states; +} + +abstract class $EnhancedListViewBloc extends RxBlocBase + implements + EnhancedListViewEvents, + EnhancedListViewStates, + EnhancedListViewBlocType { + final _compositeSubscription = CompositeSubscription(); + + /// Тhe [Subject] where events sink to by calling [loadBodyItems] + final _$loadBodyItemsEvent = PublishSubject<({bool reset, dynamic query})>(); + + /// Тhe [Subject] where events sink to by calling [loadHeaderItems] + final _$loadHeaderItemsEvent = PublishSubject(); + + /// Тhe [Subject] where events sink to by calling [loadFooterItems] + final _$loadFooterItemsEvent = PublishSubject(); + + /// The state of [bodyItems] implemented in [_mapToBodyItemsState] + late final Stream> _bodyItemsState = _mapToBodyItemsState(); + + /// The state of [headerItems] implemented in [_mapToHeaderItemsState] + late final Stream> _headerItemsState = + _mapToHeaderItemsState(); + + /// The state of [footerItems] implemented in [_mapToFooterItemsState] + late final Stream> _footerItemsState = + _mapToFooterItemsState(); + + /// The state of [isLoading] implemented in [_mapToIsLoadingState] + late final Stream _isLoadingState = _mapToIsLoadingState(); + + /// The state of [errors] implemented in [_mapToErrorsState] + late final Stream _errorsState = _mapToErrorsState(); + + @override + void loadBodyItems({ + bool reset = false, + dynamic query = null, + }) => + _$loadBodyItemsEvent.add(( + reset: reset, + query: query, + )); + + @override + void loadHeaderItems() => _$loadHeaderItemsEvent.add(null); + + @override + void loadFooterItems() => _$loadFooterItemsEvent.add(null); + + @override + Stream> get bodyItems => _bodyItemsState; + + @override + Stream> get headerItems => _headerItemsState; + + @override + Stream> get footerItems => _footerItemsState; + + @override + Stream get isLoading => _isLoadingState; + + @override + Stream get errors => _errorsState; + + Stream> _mapToBodyItemsState(); + + Stream> _mapToHeaderItemsState(); + + Stream> _mapToFooterItemsState(); + + Stream _mapToIsLoadingState(); + + Stream _mapToErrorsState(); + + @override + EnhancedListViewEvents get events => this; + + @override + EnhancedListViewStates get states => this; + + @override + void dispose() { + _$loadBodyItemsEvent.close(); + _$loadHeaderItemsEvent.close(); + _$loadFooterItemsEvent.close(); + _compositeSubscription.dispose(); + super.dispose(); + } +} + +// ignore: unused_element +typedef _LoadBodyItemsEventArgs = ({bool reset, dynamic query}); diff --git a/lib/shared/widgets/widgets.dart b/lib/shared/widgets/widgets.dart index 4237da5a..05fb8a12 100644 --- a/lib/shared/widgets/widgets.dart +++ b/lib/shared/widgets/widgets.dart @@ -3,6 +3,7 @@ import 'dart:io'; import 'package:auto_size_text/auto_size_text.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_pdfview/flutter_pdfview.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:http/http.dart' as http; import 'package:hub/flutter_flow/index.dart'; diff --git a/lib/shared/widgets/widgets.rxb.g.dart b/lib/shared/widgets/widgets.rxb.g.dart index 44258652..4dd0c665 100644 --- a/lib/shared/widgets/widgets.rxb.g.dart +++ b/lib/shared/widgets/widgets.rxb.g.dart @@ -1,108 +1,108 @@ -// dart format width=80 -// GENERATED CODE - DO NOT MODIFY BY HAND +// // dart format width=80 +// // GENERATED CODE - DO NOT MODIFY BY HAND -// ************************************************************************** -// Generator: RxBlocGeneratorForAnnotation -// ************************************************************************** +// // ************************************************************************** +// // Generator: RxBlocGeneratorForAnnotation +// // ************************************************************************** part of 'widgets.dart'; -/// Used as a contractor for the bloc, events and states classes -/// @nodoc -abstract class EnhancedListViewBlocType extends RxBlocTypeBase { - EnhancedListViewEvents get events; - EnhancedListViewStates get states; -} +// /// Used as a contractor for the bloc, events and states classes +// /// @nodoc +// abstract class EnhancedListViewBlocType extends RxBlocTypeBase { +// EnhancedListViewEvents get events; +// EnhancedListViewStates get states; +// } -/// [$EnhancedListViewBloc] extended by the [EnhancedListViewBloc] -/// @nodoc -abstract class $EnhancedListViewBloc extends RxBlocBase - implements - EnhancedListViewEvents, - EnhancedListViewStates, - EnhancedListViewBlocType { - final _compositeSubscription = CompositeSubscription(); +// /// [$EnhancedListViewBloc] extended by the [EnhancedListViewBloc] +// /// @nodoc +// abstract class $EnhancedListViewBloc extends RxBlocBase +// implements +// EnhancedListViewEvents, +// EnhancedListViewStates, +// EnhancedListViewBlocType { +// final _compositeSubscription = CompositeSubscription(); - /// Тhe [Subject] where events sink to by calling [loadBodyItems] - final _$loadBodyItemsEvent = PublishSubject<({bool reset, dynamic query})>(); +// /// Тhe [Subject] where events sink to by calling [loadBodyItems] +// final _$loadBodyItemsEvent = PublishSubject<({bool reset, dynamic query})>(); - /// Тhe [Subject] where events sink to by calling [loadHeaderItems] - final _$loadHeaderItemsEvent = PublishSubject(); +// /// Тhe [Subject] where events sink to by calling [loadHeaderItems] +// final _$loadHeaderItemsEvent = PublishSubject(); - /// Тhe [Subject] where events sink to by calling [loadFooterItems] - final _$loadFooterItemsEvent = PublishSubject(); +// /// Тhe [Subject] where events sink to by calling [loadFooterItems] +// final _$loadFooterItemsEvent = PublishSubject(); - /// The state of [bodyItems] implemented in [_mapToBodyItemsState] - late final Stream> _bodyItemsState = _mapToBodyItemsState(); +// /// The state of [bodyItems] implemented in [_mapToBodyItemsState] +// late final Stream> _bodyItemsState = _mapToBodyItemsState(); - /// The state of [headerItems] implemented in [_mapToHeaderItemsState] - late final Stream> _headerItemsState = _mapToHeaderItemsState(); +// /// The state of [headerItems] implemented in [_mapToHeaderItemsState] +// late final Stream> _headerItemsState = _mapToHeaderItemsState(); - /// The state of [footerItems] implemented in [_mapToFooterItemsState] - late final Stream> _footerItemsState = _mapToFooterItemsState(); +// /// The state of [footerItems] implemented in [_mapToFooterItemsState] +// late final Stream> _footerItemsState = _mapToFooterItemsState(); - /// The state of [isLoading] implemented in [_mapToIsLoadingState] - late final Stream _isLoadingState = _mapToIsLoadingState(); +// /// The state of [isLoading] implemented in [_mapToIsLoadingState] +// late final Stream _isLoadingState = _mapToIsLoadingState(); - /// The state of [errors] implemented in [_mapToErrorsState] - late final Stream _errorsState = _mapToErrorsState(); +// /// The state of [errors] implemented in [_mapToErrorsState] +// late final Stream _errorsState = _mapToErrorsState(); - @override - void loadBodyItems({ - bool reset = false, - dynamic query = null, - }) => - _$loadBodyItemsEvent.add(( - reset: reset, - query: query, - )); +// @override +// void loadBodyItems({ +// bool reset = false, +// dynamic query = null, +// }) => +// _$loadBodyItemsEvent.add(( +// reset: reset, +// query: query, +// )); - @override - void loadHeaderItems() => _$loadHeaderItemsEvent.add(null); +// @override +// void loadHeaderItems() => _$loadHeaderItemsEvent.add(null); - @override - void loadFooterItems() => _$loadFooterItemsEvent.add(null); +// @override +// void loadFooterItems() => _$loadFooterItemsEvent.add(null); - @override - Stream> get bodyItems => _bodyItemsState; +// @override +// Stream> get bodyItems => _bodyItemsState; - @override - Stream> get headerItems => _headerItemsState; +// @override +// Stream> get headerItems => _headerItemsState; - @override - Stream> get footerItems => _footerItemsState; +// @override +// Stream> get footerItems => _footerItemsState; - @override - Stream get isLoading => _isLoadingState; +// @override +// Stream get isLoading => _isLoadingState; - @override - Stream get errors => _errorsState; +// @override +// Stream get errors => _errorsState; - Stream> _mapToBodyItemsState(); +// Stream> _mapToBodyItemsState(); - Stream> _mapToHeaderItemsState(); +// Stream> _mapToHeaderItemsState(); - Stream> _mapToFooterItemsState(); +// Stream> _mapToFooterItemsState(); - Stream _mapToIsLoadingState(); +// Stream _mapToIsLoadingState(); - Stream _mapToErrorsState(); +// Stream _mapToErrorsState(); - @override - EnhancedListViewEvents get events => this; +// @override +// EnhancedListViewEvents get events => this; - @override - EnhancedListViewStates get states => this; +// @override +// EnhancedListViewStates get states => this; - @override - void dispose() { - _$loadBodyItemsEvent.close(); - _$loadHeaderItemsEvent.close(); - _$loadFooterItemsEvent.close(); - _compositeSubscription.dispose(); - super.dispose(); - } -} +// @override +// void dispose() { +// _$loadBodyItemsEvent.close(); +// _$loadHeaderItemsEvent.close(); +// _$loadFooterItemsEvent.close(); +// _compositeSubscription.dispose(); +// super.dispose(); +// } +// } -// ignore: unused_element -typedef _LoadBodyItemsEventArgs = ({bool reset, dynamic query}); +// // ignore: unused_element +// typedef _LoadBodyItemsEventArgs = ({bool reset, dynamic query}); diff --git a/pubspec.yaml b/pubspec.yaml index 7283c1df..3badfc91 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -37,6 +37,8 @@ dependencies: fpdart: ^1.1.1 # Pacotes de UI + flutter_pdfview: ^1.4.0 + pdfx: ^2.8.0 auto_size_text: 3.0.0 barcode_widget: ^2.0.4 infinite_scroll_pagination: ^4.1.0 @@ -55,7 +57,6 @@ dependencies: percent_indicator: ^4.2.3 page_transition: ^2.2.1 share_plus: ^10.1.4 - pdfx: ^2.8.0 dropdown_button2: ^2.3.9 # Firebase