- Added ReviewOrderPage to handle order review before submission. - Created ReviewOrderArguments model to pass data between pages. - Implemented schedule sections for one-time, recurring, and permanent orders. - Enhanced navigation flow to confirm order submission after review. - Refactored order submission logic in OneTimeOrderPage, PermanentOrderPage, and RecurringOrderPage. - Introduced utility functions for time parsing and scheduling. - Created reusable widgets for displaying order information in the review section. - Updated navigation methods to use popSafe for safer back navigation. - Added MainActivity for Android platform integration.
1.7 KiB
1.7 KiB
Architecture Reviewer Memory
Project Structure Confirmed
- Feature packages:
apps/mobile/packages/features/<app>/<feature>/ - Domain:
apps/mobile/packages/domain/ - Design system:
apps/mobile/packages/design_system/ - Core:
apps/mobile/packages/core/ - Data Connect:
apps/mobile/packages/data_connect/ client_orders_commonis atapps/mobile/packages/features/client/orders/orders_common/(shared across order features)
BLoC Registration Pattern
- BLoCs registered with
i.add<>()(transient) per CLAUDE.md -- NOT singletons - This means
BlocProvider(create:)is CORRECT (notBlocProvider.value()) SafeBlocmixin exists in core alongsideBlocErrorHandler
Known Pre-existing Issues (create_order feature)
- All 3 order BLoCs make direct
_service.connectorcalls for loading vendors, hubs, roles, and managers instead of going through use cases/repositories (CRITICAL per rules, but pre-existing) firebase_data_connectandfirebase_authare listed as direct dependencies inclient_create_order/pubspec.yaml(should only be indata_connectpackage)- All 3 order pages use
Modular.to.pop()instead ofModular.to.popSafe()for the back button
Design System Tokens
- Colors:
UiColors.* - Typography:
UiTypography.* - Spacing:
UiConstants.space*(e.g.,space3,space4,space6) - App bar:
UiAppBar
Review Patterns (grep-based checks)
Color(0xfor hardcoded colorsTextStyle(for custom text stylesNavigator.for direct navigator usageimport.*features/for cross-feature imports (must be zero)_service.connectorin BLoC files for direct data connect callsModular.to.pop()for unsafe navigation (should bepopSafe())