Refactor navigation and remove unused navigator extensions across staff features

- Removed background color from CreateOrderView, OneTimeOrderView, and RapidOrderView.
- Updated navigation paths in OneTimeOrderView and other staff authentication pages to use new constants.
- Deleted unused navigator extensions for staff authentication, home, profile, and shifts.
- Refactored navigation in StaffMainModule to use new path constants.
- Cleaned up imports and adjusted navigation calls in various staff-related pages and widgets.
This commit is contained in:
Achintha Isuru
2026-02-04 18:22:39 -05:00
parent b5c3af580c
commit 3b11c49d90
41 changed files with 122 additions and 434 deletions

View File

@@ -1,51 +0,0 @@
import 'package:flutter_modular/flutter_modular.dart';
import 'package:krow_domain/krow_domain.dart';
/// Extension on [IModularNavigator] providing typed navigation helpers
/// for the Staff Home feature (worker home screen).
///
/// Keep routes as small wrappers around `pushNamed` / `navigate` so callers
/// don't need to rely on literal paths throughout the codebase.
extension HomeNavigator on IModularNavigator {
/// Navigates to the worker profile page.
void pushWorkerProfile() {
pushNamed('/worker-main/profile');
}
/// Navigates to the availability page.
void pushAvailability() {
pushNamed('/worker-main/availability');
}
/// Navigates to the messages page.
void pushMessages() {
pushNamed('/messages');
}
/// Navigates to the payments page.
void navigateToPayments() {
navigate('/worker-main/payments');
}
/// Navigates to the shifts listing.
/// Optionally provide a [tab] query param (e.g. `find`).
void pushShifts({String? tab}) {
if (tab == null) {
navigate('/worker-main/shifts');
} else {
navigate('/worker-main/shifts', arguments: <String, dynamic>{
'initialTab': tab,
});
}
}
/// Navigates to the settings page.
void pushSettings() {
pushNamed('/settings');
}
/// Navigates to the shift details page for the given [shift].
void pushShiftDetails(Shift shift) {
pushNamed('/worker-main/shift-details/${shift.id}', arguments: shift);
}
}

View File

@@ -5,7 +5,7 @@ import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_modular/flutter_modular.dart';
import 'package:lucide_icons/lucide_icons.dart';
import 'package:staff_home/src/presentation/blocs/home_cubit.dart';
import 'package:staff_home/src/presentation/navigation/home_navigator.dart';
import 'package:krow_core/core.dart';
import 'package:staff_home/src/presentation/widgets/home_page/empty_state_widget.dart';
import 'package:staff_home/src/presentation/widgets/home_page/home_header.dart';
import 'package:staff_home/src/presentation/widgets/home_page/placeholder_banner.dart';
@@ -69,7 +69,7 @@ class WorkerHomePage extends StatelessWidget {
bg: UiColors.bgHighlight,
accent: UiColors.primary,
onTap: () {
Modular.to.pushWorkerProfile();
Modular.to.toProfile();
},
);
},
@@ -85,21 +85,21 @@ class WorkerHomePage extends StatelessWidget {
child: QuickActionItem(
icon: LucideIcons.search,
label: quickI18n.find_shifts,
onTap: () => Modular.to.pushShifts(),
onTap: () => Modular.to.toShifts(),
),
),
Expanded(
child: QuickActionItem(
icon: LucideIcons.calendar,
label: quickI18n.availability,
onTap: () => Modular.to.pushAvailability(),
onTap: () => Modular.to.toAvailability(),
),
),
Expanded(
child: QuickActionItem(
icon: LucideIcons.dollarSign,
label: quickI18n.earnings,
onTap: () => Modular.to.navigateToPayments(),
onTap: () => Modular.to.toPayments(),
),
),
],
@@ -132,7 +132,7 @@ class WorkerHomePage extends StatelessWidget {
EmptyStateWidget(
message: emptyI18n.no_shifts_today,
actionLink: emptyI18n.find_shifts_cta,
onAction: () => Modular.to.pushShifts(tab: 'find'),
onAction: () => Modular.to.toShifts(initialTab: 'find'),
)
else
Column(

View File

@@ -4,7 +4,7 @@ import 'package:lucide_icons/lucide_icons.dart';
import 'package:design_system/design_system.dart';
import 'package:core_localization/core_localization.dart';
import 'package:staff_home/src/presentation/navigation/home_navigator.dart';
import 'package:krow_core/core.dart';
/// Card widget for displaying pending payment information, using design system tokens.
@@ -16,7 +16,7 @@ class PendingPaymentCard extends StatelessWidget {
Widget build(BuildContext context) {
final pendingI18n = t.staff.home.pending_payment;
return GestureDetector(
onTap: () => Modular.to.navigateToPayments(),
onTap: () => Modular.to.toPayments(),
child: Container(
padding: const EdgeInsets.all(UiConstants.space4),
decoration: BoxDecoration(

View File

@@ -4,7 +4,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_modular/flutter_modular.dart';
import 'package:krow_domain/krow_domain.dart';
import 'package:lucide_icons/lucide_icons.dart';
import 'package:staff_home/src/presentation/navigation/home_navigator.dart';
import 'package:krow_core/core.dart';
class RecommendedShiftCard extends StatelessWidget {
final Shift shift;

View File

@@ -5,7 +5,7 @@ import 'package:intl/intl.dart';
import 'package:design_system/design_system.dart';
import 'package:krow_domain/krow_domain.dart';
import '../navigation/home_navigator.dart';
import 'package:krow_core/core.dart';
class ShiftCard extends StatefulWidget {
final Shift shift;