fl_formz 0.0.3 copy "fl_formz: ^0.0.3" to clipboard
fl_formz: ^0.0.3 copied to clipboard

Flutter text editing controller that can automatically validate form.

add your schema #

class MyApp extends HookWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return FlSchemaProivder(
      schema: {
        'email': (value) {
          return switch (value) {
            final String text when RegExp(r'^\S+@\S+\.\S+$').hasMatch(text) =>
              null,
            _ => 'Invalid email address'
          };
        },
      },
      child: const MaterialApp(
        home: Scaffold(
          body: MyHome(),
        ),
      ),
    );
  }
}

class MyHome extends HookWidget {
  const MyHome({super.key});

  @override
  Widget build(BuildContext context) {
    return const FlFormBuilder(
      child: Body(),
    );
  }
}

create FlFormTextEditingController and assign it to textField #

class Body extends HookWidget {
  const Body({super.key});

  @override
  Widget build(BuildContext context) {
    final controller = useFlFormTextEditingController(
      name: 'email_controller',
      schemaName: 'email',
    );

    final isFormValid = useIsFormValid();
    final formData = useFormData();

    return Column(
      children: [
        TextFormField(
          controller: controller,
          decoration: InputDecoration(
            errorText: controller.errorMessage,
          ),
        ),
        FilledButton(
          onPressed: !isFormValid ? null : () {},
          child: const Text('Confirm'),
        ),
        Text(formData.toString()),
      ],
    );
  }
}

Available Hooks #

  • useFlFormTextEditingController: create auto dispose [FlFormTextEditingController]
  • useIsFormValid: check nearest [FlForm] to find out is valid or not
  • useFormData: get nearest [FlForm] data in Map format
  • useFormValue: get info of given [FlFormTextEditingController] name and return [FlFormzInput?]
1
likes
150
points
38
downloads

Publisher

unverified uploader

Weekly Downloads

Flutter text editing controller that can automatically validate form.

Repository (GitHub)

Documentation

API reference

License

MIT (license)

Dependencies

flutter, flutter_hooks, formz

More

Packages that depend on fl_formz