form 0.0.1 copy "form: ^0.0.1" to clipboard
form: ^0.0.1 copied to clipboard

outdated

Easy form validation and state management

example/lib/main.dart

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

void main() => runApp(App());

class App extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text("Form")),
        body: HomePage(),
      ),
    );
  }
}

class HomePage extends StatefulWidget {
  @override
  _HomePageState createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  final form = GlobalKey<FormState>();

  TextEditingController username;
  TextEditingController password;

  @override
  void initState() {
    super.initState();

    username = TextEditingController()
      ..validators({
        Validators.required: "This field is required",
        Validators.minLength(6):
            "This field should not have less than 6 characters",
      });

    password = TextEditingController()
      ..validators({
        Validators.required: "This field is required",
        Validators.minLength(6):
            "This field should not have less than 6 characters",
      });
  }

  @override
  void dispose() {
    username.dispose();
    password.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Center(
      child: Form(
        key: form,
        child: Column(
          children: [
            Input(
              controller: username,
              decoration: InputDecoration(
                labelText: "Username",
              ),
            ),
            Input(
              controller: password,
              decoration: InputDecoration(
                labelText: "Password",
              ),
            ),
            SizedBox(height: 16),
            RaisedButton(
              onPressed: submit,
              child: Text("Submit"),
            ),
          ],
        ),
      ),
    );
  }

  void submit() {
    if (form.validate()) {
      Scaffold.of(context)
        ..removeCurrentSnackBar()
        ..showSnackBar(SnackBar(
          content: Text("Submitted"),
        ));
    } else {
      if (username.hasError) print(username.errorText);
      if (password.hasError) print(password.errorText);
    }
  }
}
8
likes
0
pub points
39%
popularity

Publisher

unverified uploader

Easy form validation and state management

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

flutter, validators

More

Packages that depend on form