customers

This commit is contained in:
2026-04-10 11:34:11 +02:00
parent 810d99626a
commit 5920b4c14f
4 changed files with 29 additions and 3 deletions

View File

@@ -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)),

View File

@@ -91,6 +91,7 @@ class _CustomerFormState extends State<CustomerForm> {
const SizedBox(height: 20),
FluxTextField(
label: 'Nome Completo',
autoFocus: true,
icon: Icons.person_outline,
controller: _nomeController,
),
@@ -112,6 +113,7 @@ class _CustomerFormState extends State<CustomerForm> {
label: 'Note',
icon: Icons.notes_outlined,
controller: _noteController,
minLines: 3,
),
const SizedBox(height: 8),
SwitchListTile(

View File

@@ -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',

View File

@@ -119,7 +119,15 @@ class _HomeScreenState extends State<HomeScreen> {
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: