named router with constants to prevent silent bugs
This commit is contained in:
@@ -1,7 +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/routes/routes.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';
|
||||
@@ -111,7 +111,7 @@ class _CustomersContentState extends State<CustomersContent> {
|
||||
return _CustomerTile(
|
||||
customer: customer,
|
||||
onTap: () => context.pushNamed(
|
||||
customerFormRoute,
|
||||
Routes.customerForm,
|
||||
pathParameters: {'id': customer.id!},
|
||||
extra: customer,
|
||||
),
|
||||
|
||||
@@ -1,7 +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/routes/routes.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';
|
||||
@@ -49,7 +49,7 @@ class _LatestOperationsCardContent extends StatelessWidget {
|
||||
side: BorderSide(color: theme.dividerColor.withValues(alpha: 0.5)),
|
||||
),
|
||||
child: InkWell(
|
||||
onTap: () => context.pushNamed(operationsRoute),
|
||||
onTap: () => context.pushNamed(Routes.operations),
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(16.0),
|
||||
child: Column(
|
||||
@@ -136,7 +136,7 @@ class _LatestOperationsCardContent extends StatelessWidget {
|
||||
final operation = state.operations[index];
|
||||
return InkWell(
|
||||
onTap: () => context.pushNamed(
|
||||
operationFormRoute,
|
||||
Routes.operationForm,
|
||||
pathParameters: {'id': operation.id!},
|
||||
extra: operation,
|
||||
),
|
||||
|
||||
@@ -1,7 +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/routes/routes.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,8 +83,9 @@ class HomeScreen extends StatelessWidget {
|
||||
icon: Icons.support_agent_outlined,
|
||||
color: Colors.purple,
|
||||
context: context,
|
||||
onTap: () =>
|
||||
context.pushNamed(ticketsRoute), // <-- Aggiunto!
|
||||
onTap: () => context.pushNamed(
|
||||
Routes.tickets,
|
||||
), // <-- Aggiunto!
|
||||
),
|
||||
]),
|
||||
),
|
||||
@@ -188,7 +189,7 @@ class HomeScreen extends StatelessWidget {
|
||||
onTap: () {
|
||||
// Entriamo nel form! Nessun parametro extra = Nuovo Servizio
|
||||
context.pushNamed(
|
||||
operationFormRoute,
|
||||
Routes.operationForm,
|
||||
pathParameters: {'id': 'New'},
|
||||
);
|
||||
},
|
||||
@@ -200,7 +201,10 @@ class HomeScreen extends StatelessWidget {
|
||||
color: Colors.redAccent,
|
||||
onTap: () {
|
||||
// Andiamo alla lista! (Da lì poi aggiungeremo il tasto "+" per il form)
|
||||
context.pushNamed(ticketFormRoute, pathParameters: {'id': 'New'});
|
||||
context.pushNamed(
|
||||
Routes.ticketForm,
|
||||
pathParameters: {'id': 'New'},
|
||||
);
|
||||
},
|
||||
),
|
||||
const SizedBox(width: 12),
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flux/core/routes/app_router.dart';
|
||||
import 'package:flux/core/routes/routes.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';
|
||||
@@ -66,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.pushNamed(customersRoute),
|
||||
onTap: () => context.pushNamed(Routes.customers),
|
||||
),
|
||||
_buildHubCard(
|
||||
context,
|
||||
|
||||
@@ -2,7 +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/routes/routes.dart';
|
||||
import 'package:flux/core/theme/theme.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
|
||||
@@ -29,7 +29,7 @@ class SettingsView extends StatelessWidget {
|
||||
icon: Icons.business,
|
||||
subtitle: 'Configura i dati aziendali',
|
||||
context: context,
|
||||
onTap: () => context.pushNamed(companySettingsRoute),
|
||||
onTap: () => context.pushNamed(Routes.companySettings),
|
||||
),
|
||||
]),
|
||||
const SizedBox(height: 16),
|
||||
@@ -39,7 +39,7 @@ class SettingsView extends StatelessWidget {
|
||||
title: 'Tema (FLUX Dark)',
|
||||
subtitle: 'Configurazione visiva',
|
||||
context: context,
|
||||
onTap: () => context.pushNamed(themeRoute),
|
||||
onTap: () => context.pushNamed(Routes.themeSettings),
|
||||
),
|
||||
]),
|
||||
const SizedBox(height: 24),
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:flux/core/routes/app_router.dart';
|
||||
import 'package:flux/core/routes/routes.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';
|
||||
@@ -149,7 +149,7 @@ class _TicketListScreenState extends State<TicketListScreen> {
|
||||
),
|
||||
floatingActionButton: FloatingActionButton.extended(
|
||||
onPressed: () {
|
||||
context.pushNamed(ticketFormRoute, pathParameters: {'id': 'New'});
|
||||
context.pushNamed(Routes.ticketForm, pathParameters: {'id': 'New'});
|
||||
},
|
||||
icon: const Icon(Icons.add),
|
||||
label: const Text('Nuovo Ticket'),
|
||||
@@ -286,7 +286,6 @@ class _TicketCard extends StatelessWidget {
|
||||
pathParameters: {'id': ticket.id!},
|
||||
extra:
|
||||
ticket, // <-- LA MAGIA È QUI: Passa l'oggetto intero!
|
||||
|
||||
// Teniamo anche il parametro URL per coerenza di routing
|
||||
);
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user