change routes with names

This commit is contained in:
2026-05-09 19:32:40 +02:00
parent 1081609530
commit 5f39d5b1ad
8 changed files with 83 additions and 26 deletions

View File

@@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flux/core/blocs/session/session_cubit.dart';
import 'package:flux/core/routes/app_router.dart';
import 'package:flux/core/theme/theme.dart';
import 'package:flux/features/customers/blocs/customers_cubit.dart';
import 'package:flux/features/customers/models/customer_model.dart';
@@ -109,8 +110,9 @@ class _CustomersContentState extends State<CustomersContent> {
final customer = state.customers[index];
return _CustomerTile(
customer: customer,
onTap: () => context.push(
'/customer/${customer.id}',
onTap: () => context.pushNamed(
customerFormRoute,
pathParameters: {'id': customer.id!},
extra: customer,
),
);

View File

@@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flux/core/blocs/session/session_cubit.dart';
import 'package:flux/core/routes/app_router.dart';
import 'package:flux/core/theme/theme.dart';
import 'package:flux/core/utils/extensions.dart';
import 'package:flux/features/home/latest_store_operations/bloc/latest_store_operations_bloc.dart';
@@ -48,7 +49,7 @@ class _LatestOperationsCardContent extends StatelessWidget {
side: BorderSide(color: theme.dividerColor.withValues(alpha: 0.5)),
),
child: InkWell(
onTap: () => context.push('/operations'),
onTap: () => context.pushNamed(operationsRoute),
child: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
@@ -134,8 +135,9 @@ class _LatestOperationsCardContent extends StatelessWidget {
itemBuilder: (context, index) {
final operation = state.operations[index];
return InkWell(
onTap: () => context.push(
'/operations/form/id=${operation.id}',
onTap: () => context.pushNamed(
operationFormRoute,
pathParameters: {'id': operation.id!},
extra: operation,
),
child: Padding(

View File

@@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flux/core/blocs/session/session_cubit.dart';
import 'package:flux/core/routes/app_router.dart';
import 'package:flux/core/theme/theme.dart';
import 'package:flux/core/utils/extensions.dart';
import 'package:flux/features/home/latest_store_operations/ui/latest_store_operations_card.dart';
@@ -83,7 +84,7 @@ class HomeScreen extends StatelessWidget {
color: Colors.purple,
context: context,
onTap: () =>
context.push('/tickets'), // <-- Aggiunto!
context.pushNamed(ticketsRoute), // <-- Aggiunto!
),
]),
),
@@ -186,7 +187,10 @@ class HomeScreen extends StatelessWidget {
color: Colors.blue,
onTap: () {
// Entriamo nel form! Nessun parametro extra = Nuovo Servizio
context.push('/operations/form/new');
context.pushNamed(
operationFormRoute,
pathParameters: {'id': 'New'},
);
},
),
const SizedBox(width: 12),
@@ -196,7 +200,7 @@ class HomeScreen extends StatelessWidget {
color: Colors.redAccent,
onTap: () {
// Andiamo alla lista! (Da lì poi aggiungeremo il tasto "+" per il form)
context.push('/tickets/form/new');
context.pushNamed(ticketFormRoute, pathParameters: {'id': 'New'});
},
),
const SizedBox(width: 12),

View File

@@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:flux/core/routes/app_router.dart';
import 'package:go_router/go_router.dart';
// Mantieni i tuoi import per il tema se usi le estensioni (es. context.accent)
// import 'package:flux/core/theme/theme.dart';
@@ -65,7 +66,7 @@ class MasterDataHubScreen extends StatelessWidget {
color: Colors.orange,
// Usiamo .push() perché avevamo detto che i clienti
// stanno FUORI dalla Shell (niente BottomBar)
onTap: () => context.push('/customers'),
onTap: () => context.pushNamed(customersRoute),
),
_buildHubCard(
context,

View File

@@ -2,6 +2,7 @@
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flux/core/blocs/session/session_cubit.dart';
import 'package:flux/core/routes/app_router.dart';
import 'package:flux/core/theme/theme.dart';
import 'package:go_router/go_router.dart';
@@ -28,7 +29,7 @@ class SettingsView extends StatelessWidget {
icon: Icons.business,
subtitle: 'Configura i dati aziendali',
context: context,
onTap: () => context.push('/master-data/company-settings'),
onTap: () => context.pushNamed(companySettingsRoute),
),
]),
const SizedBox(height: 16),
@@ -38,7 +39,7 @@ class SettingsView extends StatelessWidget {
title: 'Tema (FLUX Dark)',
subtitle: 'Configurazione visiva',
context: context,
onTap: () => context.push('/settings/theme'),
onTap: () => context.pushNamed(themeRoute),
),
]),
const SizedBox(height: 24),

View File

@@ -1,9 +1,11 @@
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flux/core/routes/app_router.dart';
import 'package:flux/features/tickets/blocs/ticket_list_cubit.dart';
import 'package:flux/features/tickets/blocs/ticket_list_state.dart';
import 'package:flux/features/tickets/models/ticket_model.dart';
import 'package:flux/features/tickets/models/ticket_status_extension.dart';
import 'package:go_router/go_router.dart';
class TicketListScreen extends StatefulWidget {
const TicketListScreen({super.key});
@@ -147,7 +149,7 @@ class _TicketListScreenState extends State<TicketListScreen> {
),
floatingActionButton: FloatingActionButton.extended(
onPressed: () {
// TODO: Navigare alla creazione di un nuovo ticket
context.pushNamed(ticketFormRoute, pathParameters: {'id': 'New'});
},
icon: const Icon(Icons.add),
label: const Text('Nuovo Ticket'),
@@ -279,7 +281,14 @@ class _TicketCard extends StatelessWidget {
],
),
onTap: () {
// TODO: Aprire il dettaglio del ticket!
context.pushNamed(
'ticket-form',
pathParameters: {'id': ticket.id!},
extra:
ticket, // <-- LA MAGIA È QUI: Passa l'oggetto intero!
// Teniamo anche il parametro URL per coerenza di routing
);
},
),
),