smart_textform_validator 1.0.4 copy "smart_textform_validator: ^1.0.4" to clipboard
smart_textform_validator: ^1.0.4 copied to clipboard

A simple and reusable Flutter package for validating text form fields. Includes common validators like required, email, password strength, min/max length, pattern match, and more. Also provides a fl [...]

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:smart_textform_validator/smart_textform_validator.dart';

void main() => runApp(const ExampleApp());

class ExampleApp extends StatelessWidget {
  const ExampleApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Validator Example',
      home: Scaffold(
        appBar: AppBar(title: const Text('Validator Example')),
        body: const Padding(
          padding: EdgeInsets.all(16.0),
          child: ExampleForm(),
        ),
      ),
    );
  }
}

class ExampleForm extends StatefulWidget {
  const ExampleForm({super.key});

  @override
  State<ExampleForm> createState() => _ExampleFormState();
}

class _ExampleFormState extends State<ExampleForm> {
  final _formKey = GlobalKey<FormState>();
  final _confirmPassword = TextEditingController();

  @override
  Widget build(BuildContext context) {
    return Form(
      key: _formKey,
      child: Column(
        children: [
          TextFormField(
            decoration: const InputDecoration(labelText: 'Email'),
            validator: ValidatorBuilder().required().email().build(),
          ),
          const SizedBox(height: 16),
          TextFormField(
            decoration: const InputDecoration(labelText: 'Password'),
            obscureText: true,
            validator:
                ValidatorBuilder().required().password().minLength(8).build(),
            onChanged: (_) => setState(() {}),
          ),
          const SizedBox(height: 16),
          TextFormField(
            controller: _confirmPassword,
            decoration: const InputDecoration(labelText: 'Confirm Password'),
            obscureText: true,
            validator: ValidatorBuilder()
                .required()
                .match(() => _confirmPassword.text)
                .build(),
          ),
          const SizedBox(height: 24),
          ElevatedButton(
            onPressed: () {
              if (_formKey.currentState?.validate() ?? false) {
                ScaffoldMessenger.of(context).showSnackBar(
                  const SnackBar(content: Text('All fields valid!')),
                );
              }
            },
            child: const Text('Submit'),
          )
        ],
      ),
    );
  }
}
18
likes
150
points
37
downloads

Publisher

unverified uploader

Weekly Downloads

A simple and reusable Flutter package for validating text form fields. Includes common validators like required, email, password strength, min/max length, pattern match, and more. Also provides a fluent API via ValidatorBuilder.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

flutter

More

Packages that depend on smart_textform_validator