This commit is contained in:
2026-05-13 12:41:07 +02:00
parent 216fd85888
commit efb82b0d4a
15 changed files with 657 additions and 50 deletions

View File

@@ -23,6 +23,7 @@ import 'package:flux/features/master_data/products/ui/products_screen.dart';
import 'package:flux/features/master_data/providers/blocs/provider_cubit.dart';
import 'package:flux/features/master_data/providers/ui/providers_master_data_screen.dart';
import 'package:flux/features/master_data/staff/blocs/staff_cubit.dart';
import 'package:flux/features/master_data/staff/models/staff_member_model.dart';
import 'package:flux/features/master_data/staff/ui/staff_screen.dart';
import 'package:flux/features/master_data/store/ui/stores_screen.dart';
import 'package:flux/features/onboarding/blocs/onboarding_cubit.dart';
@@ -33,14 +34,13 @@ import 'package:flux/features/operations/blocs/operation_list_cubit.dart';
import 'package:flux/features/operations/models/operation_model.dart';
import 'package:flux/features/operations/ui/operation_form_screen.dart';
import 'package:flux/features/operations/ui/operation_list_screen.dart';
import 'package:flux/features/settings/settings_view.dart';
import 'package:flux/features/settings/settings_screen.dart';
import 'package:flux/features/settings/theme_settings_view.dart';
import 'package:flux/features/tickets/blocs/ticket_form_cubit.dart';
import 'package:flux/features/tickets/blocs/ticket_list_cubit.dart';
import 'package:flux/features/tickets/models/ticket_model.dart';
import 'package:flux/features/tickets/ui/ticket_form_screen.dart';
import 'package:flux/features/tickets/ui/ticket_list_screen.dart';
import 'package:flux/features/tracking/blocs/tracking_cubit.dart';
import 'package:get_it/get_it.dart';
import 'package:go_router/go_router.dart';
@@ -171,7 +171,7 @@ class AppRouter {
GoRoute(
path: '/settings',
name: Routes.settings,
builder: (context, state) => const SettingsView(),
builder: (context, state) => const SettingsScreen(),
routes: [
GoRoute(
path: 'themeSettings',
@@ -213,15 +213,12 @@ class AppRouter {
builder: (context, state) {
// 1. Leggiamo l'ID dall'URL
final String pathId = state.pathParameters['id'] ?? 'new';
final record =
state.extra
as ({StaffMemberModel createdBy, TicketModel ticket});
// 2. Leggiamo l'oggetto dalla RAM (se arriviamo da un tap interno all'app)
final TicketModel? ticketFromExtra = state.extra as TicketModel?;
// 3. Capiamo se è un nuovo ticket o una modifica
final String? realTicketId = pathId == 'new' ? null : pathId;
context.read<StaffCubit>().loadStaffForStore(
GetIt.I.get<SessionCubit>().state.currentStore!.id!,
);
context.read<CustomersCubit>().loadCustomers();
context.read<ProductsCubit>().loadModels();
context.read<ProductsCubit>().loadBrands();
@@ -235,19 +232,11 @@ class AppRouter {
),
),
BlocProvider(create: (context) => TicketFormCubit()),
BlocProvider(
create: (context) => TrackingCubit(
repo: repo,
parentId: parentId,
parentType: parentType,
companyId: companyId,
),
),
],
child: TicketFormScreen(
ticketId: realTicketId,
existingTicket: ticketFromExtra,
existingTicket: record.ticket,
),
);
},
@@ -277,6 +266,7 @@ class AppRouter {
name: Routes.operationForm,
builder: (context, state) {
final String pathId = state.pathParameters['id'] ?? 'new';
final OperationModel? operationFromExtra =
state.extra as OperationModel?;
final String? realOperationId = pathId == 'new' ? null : pathId;
@@ -301,7 +291,12 @@ class AppRouter {
parentType: AttachmentParentType.operation,
),
),
BlocProvider(create: (context) => OperationFormCubit()),
BlocProvider(
create: (context) => OperationFormCubit(
createdById: createdById,
createdByName: createdByName,
),
),
],
child: OperationFormScreen(
operationId: realOperationId,