diff --git a/apps/mobile/packages/features/client/view_orders/lib/src/data/repositories/view_orders_repository_impl.dart b/apps/mobile/packages/features/client/view_orders/lib/src/data/repositories/view_orders_repository_impl.dart index 00b5cb2d..3480235e 100644 --- a/apps/mobile/packages/features/client/view_orders/lib/src/data/repositories/view_orders_repository_impl.dart +++ b/apps/mobile/packages/features/client/view_orders/lib/src/data/repositories/view_orders_repository_impl.dart @@ -143,7 +143,19 @@ class ViewOrdersRepositoryImpl implements IViewOrdersRepository { } DateTime _endOfDay(DateTime dateTime) { - return DateTime(dateTime.year, dateTime.month, dateTime.day, 23, 59, 59); + // We add the current microseconds to ensure the query variables are unique + // each time we fetch, bypassing any potential Data Connect caching. + final DateTime now = DateTime.now(); + return DateTime( + dateTime.year, + dateTime.month, + dateTime.day, + 23, + 59, + 59, + now.millisecond, + now.microsecond, + ); } String _formatTime(fdc.Timestamp? timestamp) { diff --git a/apps/mobile/packages/features/client/view_orders/lib/src/presentation/pages/view_orders_page.dart b/apps/mobile/packages/features/client/view_orders/lib/src/presentation/pages/view_orders_page.dart index a676e6ee..3ae2cade 100644 --- a/apps/mobile/packages/features/client/view_orders/lib/src/presentation/pages/view_orders_page.dart +++ b/apps/mobile/packages/features/client/view_orders/lib/src/presentation/pages/view_orders_page.dart @@ -27,6 +27,7 @@ class ViewOrdersPage extends StatelessWidget { @override Widget build(BuildContext context) { return BlocProvider( + key: initialDate != null ? ValueKey('view_orders_${initialDate!.toIso8601String()}') : null, create: (BuildContext context) => Modular.get(), child: ViewOrdersView(initialDate: initialDate), ); @@ -52,16 +53,28 @@ class _ViewOrdersViewState extends State { void initState() { super.initState(); if (widget.initialDate != null) { + // Force initialization of cubit immediately + _cubit = BlocProvider.of(context, listen: false); WidgetsBinding.instance.addPostFrameCallback((_) { if (!mounted) return; if (_didInitialJump) return; _didInitialJump = true; - _cubit ??= BlocProvider.of(context); - _cubit!.jumpToDate(widget.initialDate!); + _cubit?.jumpToDate(widget.initialDate!); }); } } + @override + void didUpdateWidget(ViewOrdersView oldWidget) { + super.didUpdateWidget(oldWidget); + if (widget.initialDate != null && + widget.initialDate != oldWidget.initialDate) { + _cubit ??= BlocProvider.of(context, listen: false); + _cubit?.jumpToDate(widget.initialDate!); + } + } + + @override Widget build(BuildContext context) { if (_cubit == null) { diff --git a/apps/mobile/packages/features/client/view_orders/lib/src/view_orders_module.dart b/apps/mobile/packages/features/client/view_orders/lib/src/view_orders_module.dart index 4702aebc..ceac0b36 100644 --- a/apps/mobile/packages/features/client/view_orders/lib/src/view_orders_module.dart +++ b/apps/mobile/packages/features/client/view_orders/lib/src/view_orders_module.dart @@ -21,7 +21,7 @@ class ViewOrdersModule extends Module { @override void binds(Injector i) { // Repositories - i.addLazySingleton( + i.add( () => ViewOrdersRepositoryImpl( firebaseAuth: firebase.FirebaseAuth.instance, dataConnect: ExampleConnector.instance, @@ -29,8 +29,8 @@ class ViewOrdersModule extends Module { ); // UseCases - i.addLazySingleton(GetOrdersUseCase.new); - i.addLazySingleton(GetAcceptedApplicationsForDayUseCase.new); + i.add(GetOrdersUseCase.new); + i.add(GetAcceptedApplicationsForDayUseCase.new); // BLoCs i.add(