diff --git a/lib/core/widgets/flux_text_field.dart b/lib/core/widgets/flux_text_field.dart index 590514b..eece7af 100644 --- a/lib/core/widgets/flux_text_field.dart +++ b/lib/core/widgets/flux_text_field.dart @@ -6,16 +6,22 @@ class FluxTextField extends StatelessWidget { final String label; final IconData icon; final bool isPassword; + final bool autoFocus; final TextEditingController? controller; final TextInputType? keyboardType; // Aggiunto per flessibilità + final int? minLines; + final int? maxLines; const FluxTextField({ super.key, // Usiamo super.key per Flutter moderno required this.label, required this.icon, this.isPassword = false, + this.autoFocus = false, this.controller, this.keyboardType, + this.minLines, + this.maxLines = 1, }); @override @@ -24,6 +30,10 @@ class FluxTextField extends StatelessWidget { controller: controller, obscureText: isPassword, keyboardType: keyboardType, + autofocus: autoFocus, + minLines: minLines, + // Se minLines è impostato, maxLines deve essere almeno uguale o null (espandibile) + maxLines: minLines != null ? null : maxLines, style: TextStyle(color: context.primaryText), decoration: InputDecoration( prefixIcon: Icon(icon, color: context.accent.withValues(alpha: 0.6)), diff --git a/lib/features/customers/ui/customer_form.dart b/lib/features/customers/ui/customer_form.dart index fedcc08..6de9695 100644 --- a/lib/features/customers/ui/customer_form.dart +++ b/lib/features/customers/ui/customer_form.dart @@ -91,6 +91,7 @@ class _CustomerFormState extends State { const SizedBox(height: 20), FluxTextField( label: 'Nome Completo', + autoFocus: true, icon: Icons.person_outline, controller: _nomeController, ), @@ -112,6 +113,7 @@ class _CustomerFormState extends State { label: 'Note', icon: Icons.notes_outlined, controller: _noteController, + minLines: 3, ), const SizedBox(height: 8), SwitchListTile( diff --git a/lib/features/home_and_dashboard/ui/dashboard_content.dart b/lib/features/home_and_dashboard/ui/dashboard_content.dart index ac7a7c0..9b49d34 100644 --- a/lib/features/home_and_dashboard/ui/dashboard_content.dart +++ b/lib/features/home_and_dashboard/ui/dashboard_content.dart @@ -5,7 +5,13 @@ import 'package:flux/core/theme/theme.dart'; class DashboardContent extends StatelessWidget { final bool isLargeScreen; - const DashboardContent({super.key, this.isLargeScreen = false}); + final Function(int)? onTabRequested; + + const DashboardContent({ + super.key, + this.isLargeScreen = false, + this.onTabRequested, + }); @override Widget build(BuildContext context) { @@ -109,7 +115,7 @@ class DashboardContent extends StatelessWidget { label: 'Clienti', icon: Icons.people, color: Colors.orange, - onTap: () {}, + onTap: () => onTabRequested?.call(1), ), _ActionCard( label: 'Campagne', diff --git a/lib/features/home_and_dashboard/ui/home_screen.dart b/lib/features/home_and_dashboard/ui/home_screen.dart index 068f300..d94217d 100644 --- a/lib/features/home_and_dashboard/ui/home_screen.dart +++ b/lib/features/home_and_dashboard/ui/home_screen.dart @@ -119,7 +119,15 @@ class _HomeScreenState extends State { Widget _buildPageContent(int index, bool isLargeScreen) { switch (index) { case 0: - return DashboardContent(isLargeScreen: isLargeScreen); + return DashboardContent( + isLargeScreen: isLargeScreen, + // Questo pezzo DEVE puntare al setState dello State della HomeScreen + onTabRequested: (targetIndex) { + setState(() { + _selectedIndex = targetIndex; + }); + }, + ); case 1: return const CustomersContent(); case 2: