✅ AUTO FORM VALIDATE ❌
Streamlining Form Management and Input Handling
Auto Form validate simplifies form management in Flutter applications by providing intuitive input handling and validation.
It ensures seamless integration with Flutter's form widgets, enhancing user input experiences while maintaining robust validation and formatting functionalities.
With Auto Form, managing forms becomes straightforward, accelerating development and ensuring data integrity throughout your application.
Streamline your Flutter app's form management with Auto Form for enhanced productivity and user satisfaction.
Installation
flutter pub add auto_form_validate
or
This will add a line like this to your package's pubspec.yaml (and run an implicit flutter pub get): dependencies:
auto_form_validate: ^1.0.1
Start
- Create class and extends by FormController
The FormController extension will provide you with these getters
validator: A function that validates input values. Returns a string error message or null for valid input. regexFilter: A regular expression that defines allowed characters for input validation. formatters: A list of string masks used to format input strings, such as phone numbers or dates. textInputType: Specifies the type of keyboard input for text fields, such as email address, phone.
Class Example
import 'package:auto_form_validate/form_controller.dart';
class PhoneMandatory extends FormController {
PhoneMandatory(super.context);
@override
String? Function(String? value)? get validator => (value) {
if (value == null || value.isEmpty) {
return 'This field is required';
}
return null;
};
@override
List<String> get formaters => ["(##) ####-####"];
@override
TextInputType? get textInputType => TextInputType.number;
@override
RegExp get regexFilter => RegExp(r'[0-9]');
}
Page Form Example
Place a Form as the parent of your form, when validating the form everything will work correctly if you use the AutoFormFild passing the formController as in the example below
import 'package:flutter/material.dart';
class HomePage extends StatefulWidget {
const HomePage({super.key});
@override
State<HomePage> createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
final formKey = GlobalKey<FormState>();
String phone = '';
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('AutoForm Example'),
),
body: Padding(
padding: const EdgeInsets.all(20),
child: Form(
key: formKey,
child: Column(
children: [
//👋
AutoTextFormField(
formController: PhoneMandatory(context),
onChanged: (value) => phone = value,
),
const SizedBox(height: 20),
ElevatedButton(
onPressed: () {
if (formKey.currentState!.validate()) {
log("Phone: $phone ✅");
}
},
child: const Text("Validate")),
],
),
),
),
);
}
}
Contributions
Made with contrib.rocks.