NyFormWidget class abstract
NyFormWidget is an abstract StatefulWidget for building forms declaratively.
Extend this class and override fields to define your form structure. The form class IS the widget — no separate NyFormData subclass or wrapper needed.
Example:
class ProfileForm extends NyFormWidget {
ProfileForm({super.key, super.submitButton, super.onSubmit, super.onFailure});
@override
List<dynamic> fields() => [
Field.text("username"),
Field.text("bio"),
];
static NyFormActions get actions => const NyFormActions('ProfileForm');
}
// Usage:
ProfileForm(
submitButton: Button.primary(text: "Submit"),
onSubmit: (data) { ... },
)
// Actions:
ProfileForm.actions.updateField('username', 'JohnDoe');
ProfileForm.actions.submit(onSuccess: (data) => print(data));
Learn more: https://nylo.dev/docs/7.x/forms
- Inheritance
-
- Object
- DiagnosticableTree
- Widget
- StatefulWidget
- NyFormWidget
- Available extensions
Constructors
-
NyFormWidget({Key? key, double crossAxisSpacing = 10, double mainAxisSpacing = 10, Map<
String, dynamic> ? initialData, dynamic onChanged(Field field, dynamic value)?, Widget? header, Widget? submitButton, double headerSpacing = 10, double submitButtonSpacing = 10, LoadingStyle? loadingStyle, bool locked = false, dynamic onSubmit(dynamic data)?, dynamic onFailure(dynamic error)?, String? name})
Properties
- crossAxisSpacing → double
-
The cross axis spacing for form fields
final
-
The footer widget
final
-
The footer spacing
final
- formName → String
-
Form name — defaults to runtimeType.toString()
no setter
- hashCode → int
-
The hash code for this object.
no setterinherited
- header → Widget?
-
The header widget
final
- headerSpacing → double
-
The header spacing
final
- init → dynamic Function()?
-
Override for async initial data loading
no setter
-
initialData
→ Map<
String, dynamic> ? -
Initial data to populate form fields
final
- key → Key?
-
Controls how one widget replaces another widget in the tree.
finalinherited
- loadingStyle → LoadingStyle?
-
The loading style
final
- locked → bool
-
Lock the form to prevent interaction
final
- mainAxisSpacing → double
-
The main axis spacing for form fields
final
- onChanged → dynamic Function(Field field, dynamic value)?
-
Callback invoked when any field value changes
final
- onFailure → dynamic Function(dynamic error)?
-
Callback invoked with validation errors when validation fails.
final
- onSubmit → dynamic Function(dynamic data)?
-
Callback invoked with the form data when validation passes.
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- submitButton → Widget?
-
The submit button widget
final
- submitButtonSpacing → double
-
The submit button spacing
final
Methods
-
connectiveOr(
{required Widget offline}) → Widget -
Available on Widget, provided by the ConnectiveExtension extension
Wraps the widget in a Connective that shows an offline placeholder. -
createElement(
) → StatefulElement -
Creates a StatefulElement to manage this widget's location in the tree.
inherited
-
createState(
) → State< StatefulWidget> -
Creates the mutable state for this widget at a given location in the tree.
override
-
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
-
faderBottom(
{double strength = 0.2, Color color = Colors.black}) → FadeOverlay -
Available on StatefulWidget, provided by the NyStatefulExt extension
Make gradient fader from the bottom of the widget.strengthranges from 0.0 (subtle) to 1.0 (strong). -
faderFrom(
{double strength = 0.2, Color color = Colors.black, AlignmentGeometry begin = Alignment.topCenter, AlignmentGeometry end = Alignment.bottomCenter}) → FadeOverlay -
Available on StatefulWidget, provided by the NyStatefulExt extension
Make gradient fader with custom alignment.strengthranges from 0.0 (subtle) to 1.0 (strong). -
faderLeft(
{double strength = 0.2, Color color = Colors.black}) → FadeOverlay -
Available on StatefulWidget, provided by the NyStatefulExt extension
Make gradient fader from the left of the widget.strengthranges from 0.0 (subtle) to 1.0 (strong). -
faderRight(
{double strength = 0.2, Color color = Colors.black}) → FadeOverlay -
Available on StatefulWidget, provided by the NyStatefulExt extension
Make gradient fader from the right of the widget.strengthranges from 0.0 (subtle) to 1.0 (strong). -
faderTop(
{double strength = 0.2, Color color = Colors.black}) → FadeOverlay -
Available on StatefulWidget, provided by the NyStatefulExt extension
Make gradient fader from the top of the widget.strengthranges from 0.0 (subtle) to 1.0 (strong). -
fields(
) → List - Override to define form fields
-
flexible(
{Key? key, int flex = 1, FlexFit fit = FlexFit.loose}) → Flexible -
Available on StatefulWidget, provided by the NyStatefulExt extension
Make a StatefulWidget Flexible. -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
onChange(
String field, Map< String, dynamic> data) → void - Override for custom field change handling
-
onlyOffline(
) → Widget -
Available on Widget, provided by the ConnectiveExtension extension
Only shows the widget when offline, otherwise shows nothing. -
onlyOnline(
) → Widget -
Available on Widget, provided by the ConnectiveExtension extension
Only shows the widget when online, otherwise shows nothing. -
pullable(
{required Future< void> onRefresh()?, PullableConfig? pullableConfig}) → Widget -
Available on Widget, provided by the NyWidgetExt extension
Make a widget pullable using the Pullable widget. -
toDiagnosticsNode(
{String? name, DiagnosticsTreeStyle? style}) → DiagnosticsNode -
Returns a debug representation of the object that is used by debugging
tools and by DiagnosticsNode.toStringDeep.
inherited
-
toSkeleton(
{Key? key, bool? ignoreContainers, bool? justifyMultiLineText, Color? containersColor, bool ignorePointers = true, bool enabled = true, PaintingEffect? effect, TextBoneBorderRadius? textBoneBorderRadius}) → Skeletonizer -
Available on Widget, provided by the NyWidgetExt extension
Make a widget a skeleton using theSkeletonizerpackage. -
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
Static Methods
-
state(
String stateName) → String - Get the state name
-
stateClearData(
String stateName) → void - Clear all data in the form
-
stateRefresh(
String stateName) → void - Refresh the state of the form
-
stateRefreshForm(
String stateName) → void - Refresh the form fields
-
stateSetOptions(
String stateName, String key, dynamic value) → void - Set field options in the form
-
stateSetValue(
String stateName, String key, dynamic value) → void - Set field in the form
-
submit(
String name, {required dynamic onSuccess(dynamic value), dynamic onFailure(List< FormValidationError> )?, bool showToastError = true}) → void - Submit the form