feat: address missing features and bugs identified during Milestone 3 demo; improve localization, error handling, and navigation

This commit is contained in:
Achintha Isuru
2026-02-04 16:45:16 -05:00
parent 9f48ed40d7
commit c05261ddd7
28 changed files with 55 additions and 138 deletions

View File

@@ -1,23 +0,0 @@
import 'package:flutter_modular/flutter_modular.dart';
extension ClientCreateOrderNavigator on IModularNavigator {
void pushCreateOrder() {
pushNamed('/client/create-order/');
}
void pushRapidOrder() {
pushNamed('/client/create-order/rapid');
}
void pushOneTimeOrder() {
pushNamed('/client/create-order/one-time');
}
void pushRecurringOrder() {
pushNamed('/client/create-order/recurring');
}
void pushPermanentOrder() {
pushNamed('/client/create-order/permanent');
}
}

View File

@@ -2,6 +2,7 @@ import 'package:core_localization/core_localization.dart';
import 'package:design_system/design_system.dart';
import 'package:flutter/material.dart';
import 'package:flutter_modular/flutter_modular.dart';
import 'package:krow_core/core.dart';
/// Permanent Order Page - Long-term staffing placement.
/// Placeholder for future implementation.
@@ -18,7 +19,7 @@ class PermanentOrderPage extends StatelessWidget {
backgroundColor: UiColors.bgPrimary,
appBar: UiAppBar(
title: labels.title,
onLeadingPressed: () => Modular.to.navigate('/client/create-order/'),
onLeadingPressed: () => Modular.to.navigate(ClientPaths.createOrder),
),
body: Center(
child: Padding(

View File

@@ -2,6 +2,7 @@ import 'package:core_localization/core_localization.dart';
import 'package:design_system/design_system.dart';
import 'package:flutter/material.dart';
import 'package:flutter_modular/flutter_modular.dart';
import 'package:krow_core/core.dart';
/// Recurring Order Page - Ongoing weekly/monthly coverage.
/// Placeholder for future implementation.
@@ -18,7 +19,7 @@ class RecurringOrderPage extends StatelessWidget {
backgroundColor: UiColors.bgPrimary,
appBar: UiAppBar(
title: labels.title,
onLeadingPressed: () => Modular.to.navigate('/client/create-order/'),
onLeadingPressed: () => Modular.to.toClientHome(),
),
body: Center(
child: Padding(

View File

@@ -3,10 +3,10 @@ import 'package:design_system/design_system.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_modular/flutter_modular.dart';
import 'package:krow_core/core.dart';
import 'package:krow_domain/krow_domain.dart';
import '../../blocs/client_create_order_bloc.dart';
import '../../blocs/client_create_order_state.dart';
import '../../navigation/client_create_order_navigator.dart';
import '../../ui_entities/order_type_ui_metadata.dart';
import '../order_type_card.dart';
@@ -43,7 +43,7 @@ class CreateOrderView extends StatelessWidget {
backgroundColor: UiColors.bgPrimary,
appBar: UiAppBar(
title: t.client_create_order.title,
onLeadingPressed: () => Modular.to.navigate('/client-main/home/'),
onLeadingPressed: () => Modular.to.toClientHome(),
),
body: SafeArea(
child: Padding(
@@ -98,16 +98,16 @@ class CreateOrderView extends StatelessWidget {
onTap: () {
switch (type.id) {
case 'rapid':
Modular.to.pushRapidOrder();
Modular.to.toCreateOrderRapid();
break;
case 'one-time':
Modular.to.pushOneTimeOrder();
Modular.to.toCreateOrderOneTime();
break;
case 'recurring':
Modular.to.pushRecurringOrder();
Modular.to.toCreateOrderRecurring();
break;
case 'permanent':
Modular.to.pushPermanentOrder();
Modular.to.toCreateOrderPermanent();
break;
}
},

View File

@@ -3,6 +3,7 @@ import 'package:design_system/design_system.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_modular/flutter_modular.dart';
import 'package:krow_core/core.dart';
import 'package:krow_domain/krow_domain.dart';
import '../../blocs/one_time_order_bloc.dart';
import '../../blocs/one_time_order_event.dart';
@@ -50,7 +51,7 @@ class OneTimeOrderView extends StatelessWidget {
OneTimeOrderHeader(
title: labels.title,
subtitle: labels.subtitle,
onBack: () => Modular.to.navigate('/client/create-order/'),
onBack: () => Modular.to.navigate(ClientPaths.createOrder),
),
Expanded(
child: Center(
@@ -89,7 +90,7 @@ class OneTimeOrderView extends StatelessWidget {
OneTimeOrderHeader(
title: labels.title,
subtitle: labels.subtitle,
onBack: () => Modular.to.navigate('/client/create-order/'),
onBack: () => Modular.to.navigate(ClientPaths.createOrder),
),
Expanded(
child: Stack(

View File

@@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_modular/flutter_modular.dart';
import 'package:intl/intl.dart';
import 'package:krow_core/core.dart';
import '../../blocs/rapid_order_bloc.dart';
import '../../blocs/rapid_order_event.dart';
import '../../blocs/rapid_order_state.dart';
@@ -28,7 +29,7 @@ class RapidOrderView extends StatelessWidget {
title: labels.success_title,
message: labels.success_message,
buttonLabel: labels.back_to_orders,
onDone: () => Modular.to.navigate('/client-main/orders/'),
onDone: () => Modular.to.navigate(ClientPaths.orders),
);
}
@@ -82,7 +83,7 @@ class _RapidOrderFormState extends State<_RapidOrderForm> {
subtitle: labels.subtitle,
date: dateStr,
time: timeStr,
onBack: () => Modular.to.navigate('/client/create-order/'),
onBack: () => Modular.to.navigate(ClientPaths.createOrder),
),
// Content