feat(view_orders): enhance date navigation and improve ViewOrdersCubit instantiation
This commit is contained in:
@@ -175,8 +175,9 @@ extension ClientNavigator on IModularNavigator {
|
||||
|
||||
/// Navigates to the order details page to a specific date.
|
||||
void toOrdersSpecificDate(DateTime date) {
|
||||
navigate(
|
||||
pushNamedAndRemoveUntil(
|
||||
ClientPaths.orders,
|
||||
(_) => false,
|
||||
arguments: <String, DateTime>{'initialDate': date},
|
||||
);
|
||||
}
|
||||
|
||||
@@ -27,8 +27,8 @@ class ViewOrdersPage extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return BlocProvider<ViewOrdersCubit>(
|
||||
create: (BuildContext context) => Modular.get<ViewOrdersCubit>(),
|
||||
return BlocProvider<ViewOrdersCubit>.value(
|
||||
value: Modular.get<ViewOrdersCubit>(),
|
||||
child: ViewOrdersView(initialDate: initialDate),
|
||||
);
|
||||
}
|
||||
@@ -66,6 +66,14 @@ class _ViewOrdersViewState extends State<ViewOrdersView> {
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void didUpdateWidget(ViewOrdersView oldWidget) {
|
||||
super.didUpdateWidget(oldWidget);
|
||||
if (widget.initialDate != oldWidget.initialDate && widget.initialDate != null) {
|
||||
_cubit?.jumpToDate(widget.initialDate!);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return BlocConsumer<ViewOrdersCubit, ViewOrdersState>(
|
||||
|
||||
@@ -27,7 +27,7 @@ class ViewOrdersModule extends Module {
|
||||
i.add(GetAcceptedApplicationsForDayUseCase.new);
|
||||
|
||||
// BLoCs
|
||||
i.add(ViewOrdersCubit.new);
|
||||
i.addSingleton(ViewOrdersCubit.new);
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -37,9 +37,11 @@ class ViewOrdersModule extends Module {
|
||||
child: (BuildContext context) {
|
||||
final Object? args = Modular.args.data;
|
||||
DateTime? initialDate;
|
||||
|
||||
// Try parsing from args.data first
|
||||
if (args is DateTime) {
|
||||
initialDate = args;
|
||||
} else if (args is Map<String, dynamic>) {
|
||||
} else if (args is Map<String, dynamic> && args['initialDate'] != null) {
|
||||
final Object? rawDate = args['initialDate'];
|
||||
if (rawDate is DateTime) {
|
||||
initialDate = rawDate;
|
||||
@@ -47,6 +49,15 @@ class ViewOrdersModule extends Module {
|
||||
initialDate = DateTime.tryParse(rawDate);
|
||||
}
|
||||
}
|
||||
|
||||
// Fallback to query params
|
||||
if (initialDate == null) {
|
||||
final String? queryDate = Modular.args.queryParams['initialDate'];
|
||||
if (queryDate != null && queryDate.isNotEmpty) {
|
||||
initialDate = DateTime.tryParse(queryDate);
|
||||
}
|
||||
}
|
||||
|
||||
return ViewOrdersPage(initialDate: initialDate);
|
||||
},
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user