OnFormSubmissionBuilder constructor

OnFormSubmissionBuilder({
  1. Key? key,
  2. required InjectedForm listenTo,
  3. required Widget onSubmitting(),
  4. Widget onSubmissionError(
    1. dynamic error,
    2. VoidCallback onRefresh
    )?,
  5. required Widget child,
})

Listen to a InjectedForm and rebuild depending on Form submission state

Implementation

OnFormSubmissionBuilder({
  Key? key,
  required this.listenTo,
  required this.onSubmitting,
  this.onSubmissionError,
  required this.child,
}) : super(
        observers: (_) {
          return [listenTo as ReactiveModelImp];
        },
        // shouldRebuild: (old, current) {
        //   final inj = listenTo as InjectedFormImp;
        //   if (inj.isWaiting) {
        //     inj.onSubmitting?.call();
        //   }
        //   return true;
        // },
        builder: (context, snap, rm) {
          final inj = listenTo as InjectedFormImp;

          if (inj.isWaiting) {
            return onSubmitting();
          }
          if (inj.hasError && onSubmissionError != null) {
            return onSubmissionError(
              inj.error,
              inj.snapValue.snapError!.refresher,
            );
          }
          return child;
        },
        key: key,
      );