MagicForm class
A Form widget that integrates with Magic's validation system.
MagicForm wraps Flutter's Form widget and automatically manages
autovalidateMode based on the controller's server-side validation errors.
Usage with MagicFormData (Recommended)
class _RegisterViewState extends MagicStatefulViewState<AuthController, RegisterView> {
late final form = MagicFormData({
'email': '',
'password': '',
'accept_terms': false,
}, controller: controller);
@override
Widget build(BuildContext context) {
return MagicForm(
formData: form, // Auto-extracts formKey and controller
child: Column(
children: [
form.field('email', rules: [Required(), Email()]),
form.checkbox('accept_terms'),
WButton(
onTap: () {
if (form.validate()) {
controller.register(form.data);
}
},
child: Text('Submit'),
),
],
),
);
}
}
Usage with explicit formKey (Legacy)
MagicForm(
formKey: _formKey,
controller: controller,
child: Column(...),
)
- Inheritance
-
- Object
- DiagnosticableTree
- Widget
- StatelessWidget
- MagicForm
Constructors
-
MagicForm({Key? key, MagicFormData? formData, GlobalKey<
FormState> ? formKey, MagicController? controller, required Widget child, AutovalidateMode? autovalidateMode, VoidCallback? onChanged, WillPopCallback? onWillPop, String? restorationId}) -
Creates a MagicForm.
const
Properties
- autovalidateMode → AutovalidateMode?
-
Optional explicit autovalidate mode.
final
- child → Widget
-
The form content.
final
- controller → MagicController?
-
The controller that may contain server-side validation errors.
final
- formData → MagicFormData?
-
The form data manager (recommended).
final
-
formKey
→ GlobalKey<
FormState> ? -
The form key for accessing form state.
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- key → Key?
-
Controls how one widget replaces another widget in the tree.
finalinherited
- onChanged → VoidCallback?
-
Called when one of the form fields changes.
final
- onWillPop → WillPopCallback?
-
Enables the form to veto attempts by the user to dismiss the
ModalRoute that contains the form.
final
- restorationId → String?
-
Restoration ID to save and restore the state of the Form.
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
build(
BuildContext context) → Widget -
Describes the part of the user interface represented by this widget.
override
-
createElement(
) → StatelessElement -
Creates a StatelessElement to manage this widget's location in the tree.
inherited
-
debugDescribeChildren(
) → List< DiagnosticsNode> -
Returns a list of DiagnosticsNode objects describing this node's
children.
inherited
-
debugFillProperties(
DiagnosticPropertiesBuilder properties) → void -
Add additional properties associated with the node.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toDiagnosticsNode(
{String? name, DiagnosticsTreeStyle? style}) → DiagnosticsNode -
Returns a debug representation of the object that is used by debugging
tools and by DiagnosticsNode.toStringDeep.
inherited
-
toString(
{DiagnosticLevel minLevel = DiagnosticLevel.info}) → String -
A string representation of this object.
inherited
-
toStringDeep(
{String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) → String -
Returns a string representation of this node and its descendants.
inherited
-
toStringShallow(
{String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) → String -
Returns a one-line detailed description of the object.
inherited
-
toStringShort(
) → String -
A short, textual description of this widget.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited