refactor: enhance date handling and cubit initialization in ViewOrders components
This commit is contained in:
@@ -143,7 +143,19 @@ class ViewOrdersRepositoryImpl implements IViewOrdersRepository {
|
|||||||
}
|
}
|
||||||
|
|
||||||
DateTime _endOfDay(DateTime dateTime) {
|
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) {
|
String _formatTime(fdc.Timestamp? timestamp) {
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ class ViewOrdersPage extends StatelessWidget {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return BlocProvider<ViewOrdersCubit>(
|
return BlocProvider<ViewOrdersCubit>(
|
||||||
|
key: initialDate != null ? ValueKey<String>('view_orders_${initialDate!.toIso8601String()}') : null,
|
||||||
create: (BuildContext context) => Modular.get<ViewOrdersCubit>(),
|
create: (BuildContext context) => Modular.get<ViewOrdersCubit>(),
|
||||||
child: ViewOrdersView(initialDate: initialDate),
|
child: ViewOrdersView(initialDate: initialDate),
|
||||||
);
|
);
|
||||||
@@ -52,16 +53,28 @@ class _ViewOrdersViewState extends State<ViewOrdersView> {
|
|||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
if (widget.initialDate != null) {
|
if (widget.initialDate != null) {
|
||||||
|
// Force initialization of cubit immediately
|
||||||
|
_cubit = BlocProvider.of<ViewOrdersCubit>(context, listen: false);
|
||||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||||
if (!mounted) return;
|
if (!mounted) return;
|
||||||
if (_didInitialJump) return;
|
if (_didInitialJump) return;
|
||||||
_didInitialJump = true;
|
_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
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
if (_cubit == null) {
|
if (_cubit == null) {
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ class ViewOrdersModule extends Module {
|
|||||||
@override
|
@override
|
||||||
void binds(Injector i) {
|
void binds(Injector i) {
|
||||||
// Repositories
|
// Repositories
|
||||||
i.addLazySingleton<IViewOrdersRepository>(
|
i.add<IViewOrdersRepository>(
|
||||||
() => ViewOrdersRepositoryImpl(
|
() => ViewOrdersRepositoryImpl(
|
||||||
firebaseAuth: firebase.FirebaseAuth.instance,
|
firebaseAuth: firebase.FirebaseAuth.instance,
|
||||||
dataConnect: ExampleConnector.instance,
|
dataConnect: ExampleConnector.instance,
|
||||||
@@ -29,8 +29,8 @@ class ViewOrdersModule extends Module {
|
|||||||
);
|
);
|
||||||
|
|
||||||
// UseCases
|
// UseCases
|
||||||
i.addLazySingleton(GetOrdersUseCase.new);
|
i.add(GetOrdersUseCase.new);
|
||||||
i.addLazySingleton(GetAcceptedApplicationsForDayUseCase.new);
|
i.add(GetAcceptedApplicationsForDayUseCase.new);
|
||||||
|
|
||||||
// BLoCs
|
// BLoCs
|
||||||
i.add(
|
i.add(
|
||||||
|
|||||||
Reference in New Issue
Block a user