fix router

This commit is contained in:
2026-05-09 17:30:51 +02:00
parent 901f63841f
commit 1081609530
4 changed files with 20 additions and 7 deletions

View File

@@ -4,6 +4,7 @@ import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flux/core/blocs/session/session_cubit.dart'; import 'package:flux/core/blocs/session/session_cubit.dart';
import 'package:flux/core/data/core_repository.dart'; import 'package:flux/core/data/core_repository.dart';
import 'package:flux/core/layout/app_shell.dart'; import 'package:flux/core/layout/app_shell.dart';
import 'package:flux/core/widgets/image_upload/blocs/image_upload_cubit.dart';
import 'package:flux/core/widgets/image_upload/ui/image_upload_screen.dart'; import 'package:flux/core/widgets/image_upload/ui/image_upload_screen.dart';
import 'package:flux/core/widgets/set_password_screen.dart'; import 'package:flux/core/widgets/set_password_screen.dart';
import 'package:flux/core/widgets/image_upload/ui/upload_success_screen.dart'; import 'package:flux/core/widgets/image_upload/ui/upload_success_screen.dart';
@@ -27,6 +28,7 @@ import 'package:flux/features/onboarding/blocs/onboarding_cubit.dart';
import 'package:flux/features/onboarding/ui/onboarding_screen.dart'; import 'package:flux/features/onboarding/ui/onboarding_screen.dart';
import 'package:flux/features/attachments/blocs/attachments_bloc.dart'; import 'package:flux/features/attachments/blocs/attachments_bloc.dart';
import 'package:flux/features/operations/blocs/operation_form_cubit.dart'; import 'package:flux/features/operations/blocs/operation_form_cubit.dart';
import 'package:flux/features/operations/blocs/operation_list_cubit.dart';
import 'package:flux/features/operations/models/operation_model.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_form_screen.dart';
import 'package:flux/features/operations/ui/operation_list_screen.dart'; import 'package:flux/features/operations/ui/operation_list_screen.dart';
@@ -168,7 +170,10 @@ class AppRouter {
), ),
GoRoute( GoRoute(
path: '/operations', path: '/operations',
builder: (context, state) => const OperationListScreen(), builder: (context, state) => BlocProvider(
create: (context) => OperationListCubit(),
child: const OperationListScreen(),
),
), ),
GoRoute( GoRoute(
path: '/customers', path: '/customers',
@@ -294,9 +299,15 @@ class AppRouter {
); );
// Creiamo il BLoC "al volo" solo per questa schermata // Creiamo il BLoC "al volo" solo per questa schermata
return BlocProvider( return MultiBlocProvider(
providers: [
BlocProvider<AttachmentsBloc>(
create: (context) => create: (context) =>
AttachmentsBloc(parentId: id, parentType: parentType), AttachmentsBloc(parentId: id, parentType: parentType),
),
BlocProvider(create: (context) => ImageUploadCubit()),
],
child: ImageUploadScreen( child: ImageUploadScreen(
title: 'Caricamento Rapido', title: 'Caricamento Rapido',
companyId: companyId, companyId: companyId,

View File

@@ -135,7 +135,7 @@ class _LatestOperationsCardContent extends StatelessWidget {
final operation = state.operations[index]; final operation = state.operations[index];
return InkWell( return InkWell(
onTap: () => context.push( onTap: () => context.push(
'/operation-form', '/operations/form/id=${operation.id}',
extra: operation, extra: operation,
), ),
child: Padding( child: Padding(

View File

@@ -12,7 +12,9 @@ class OperationListCubit extends Cubit<OperationListState> {
final OperationsRepository _repository = GetIt.I<OperationsRepository>(); final OperationsRepository _repository = GetIt.I<OperationsRepository>();
final SessionCubit _sessionCubit = GetIt.I<SessionCubit>(); final SessionCubit _sessionCubit = GetIt.I<SessionCubit>();
OperationListCubit() : super(const OperationListState()); OperationListCubit() : super(const OperationListState()) {
loadOperations(refresh: true);
}
Future<void> loadOperations({bool refresh = false}) async { Future<void> loadOperations({bool refresh = false}) async {
if (state.status == OperationListStatus.loading) return; if (state.status == OperationListStatus.loading) return;

View File

@@ -158,7 +158,7 @@ class _OperationListScreenState extends State<OperationListScreen> {
), ),
trailing: const Icon(Icons.chevron_right), trailing: const Icon(Icons.chevron_right),
onTap: () => context.pushNamed( onTap: () => context.pushNamed(
'operation-form', 'operations/form/id=${operation.id}',
extra: operation, // <-- LA MAGIA È QUI: Passa l'oggetto intero! extra: operation, // <-- LA MAGIA È QUI: Passa l'oggetto intero!
// Teniamo anche il parametro URL per coerenza di routing // Teniamo anche il parametro URL per coerenza di routing
queryParameters: operation.id != null queryParameters: operation.id != null