refactor: enhance date handling and cubit initialization in ViewOrders components

This commit is contained in:
Achintha Isuru
2026-01-30 02:52:20 -05:00
parent 2531e7b29e
commit fad1b2dc69
3 changed files with 31 additions and 6 deletions

View File

@@ -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) {

View File

@@ -27,6 +27,7 @@ class ViewOrdersPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return BlocProvider<ViewOrdersCubit>(
key: initialDate != null ? ValueKey<String>('view_orders_${initialDate!.toIso8601String()}') : null,
create: (BuildContext context) => Modular.get<ViewOrdersCubit>(),
child: ViewOrdersView(initialDate: initialDate),
);
@@ -52,16 +53,28 @@ class _ViewOrdersViewState extends State<ViewOrdersView> {
void initState() {
super.initState();
if (widget.initialDate != null) {
// Force initialization of cubit immediately
_cubit = BlocProvider.of<ViewOrdersCubit>(context, listen: false);
WidgetsBinding.instance.addPostFrameCallback((_) {
if (!mounted) return;
if (_didInitialJump) return;
_didInitialJump = true;
_cubit ??= BlocProvider.of<ViewOrdersCubit>(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<ViewOrdersCubit>(context, listen: false);
_cubit?.jumpToDate(widget.initialDate!);
}
}
@override
Widget build(BuildContext context) {
if (_cubit == null) {

View File

@@ -21,7 +21,7 @@ class ViewOrdersModule extends Module {
@override
void binds(Injector i) {
// Repositories
i.addLazySingleton<IViewOrdersRepository>(
i.add<IViewOrdersRepository>(
() => 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(