onboarding completato

This commit is contained in:
2026-04-22 11:05:01 +02:00
parent 35ccd1487b
commit 46058d96c8
13 changed files with 211 additions and 120 deletions

View File

@@ -56,6 +56,7 @@ class _StoreOnboardingFormState extends State<StoreOnboardingForm> {
FluxTextField(
controller: _nameCtrl,
label: "Nome del Negozio",
keyboardType: TextInputType.name,
validator: (value) =>
value == null || value.isEmpty ? "Obbligatorio" : null,
),
@@ -63,6 +64,7 @@ class _StoreOnboardingFormState extends State<StoreOnboardingForm> {
FluxTextField(
controller: _addressCtrl,
keyboardType: TextInputType.streetAddress,
label: "Indirizzo",
validator: (value) =>
value == null || value.isEmpty ? "Obbligatorio" : null,
@@ -115,20 +117,7 @@ class _StoreOnboardingFormState extends State<StoreOnboardingForm> {
borderRadius: BorderRadius.circular(12),
),
),
onPressed: () {
if (_formKey.currentState!.validate()) {
// MIRACOLO DELLA FACTORY EMPTY!
final newStore = StoreModel.empty().copyWith(
nome: _nameCtrl.text.trim(),
indirizzo: _addressCtrl.text.trim(),
comune: _cityCtrl.text.trim(),
cap: _zipCodeCtrl.text.trim(),
// Formattiamo in maiuscolo qui, al momento del salvataggio!
provincia: _provinceCtrl.text.trim().toUpperCase(),
);
context.read<OnboardingCubit>().saveStore(newStore);
}
},
onPressed: () => _submit(),
child: const Text(
"Salva Negozio",
style: TextStyle(fontSize: 16),
@@ -141,6 +130,21 @@ class _StoreOnboardingFormState extends State<StoreOnboardingForm> {
);
}
void _submit() {
if (_formKey.currentState!.validate()) {
// MIRACOLO DELLA FACTORY EMPTY!
final newStore = StoreModel.empty().copyWith(
nome: _nameCtrl.text.trim(),
indirizzo: _addressCtrl.text.trim(),
comune: _cityCtrl.text.trim(),
cap: _zipCodeCtrl.text.trim(),
// Formattiamo in maiuscolo qui, al momento del salvataggio!
provincia: _provinceCtrl.text.trim().toUpperCase(),
);
context.read<OnboardingCubit>().saveStore(newStore);
}
}
// --- WIDGET ESTRATTI PER PULIZIA ---
Widget _buildCityField() {
@@ -169,6 +173,7 @@ class _StoreOnboardingFormState extends State<StoreOnboardingForm> {
// Rende la tastiera del telefono automaticamente maiuscola
textCapitalization: TextCapitalization.characters,
inputFormatters: [LengthLimitingTextInputFormatter(2)],
onSubmitted: (_) => _submit(),
);
}
}