import 'package:flutter/material.dart'; import 'package:go_router/go_router.dart'; import 'package:provider/provider.dart'; import 'package:pshared/provider/pfe/provider.dart'; import 'package:pweb/app/router/pages.dart'; import 'package:pweb/pages/signup/form/content.dart'; import 'package:pweb/pages/signup/form/controllers.dart'; import 'package:pweb/pages/signup/form/form.dart'; import 'package:pweb/widgets/error/snackbar.dart'; import 'package:pweb/generated/i18n/app_localizations.dart'; class SignUpFormState extends State { late final SignUpFormControllers controllers; final _formKey = GlobalKey(); bool _autoValidateMode = false; @override void initState() { super.initState(); controllers = SignUpFormControllers(); } Future signUp( BuildContext context, VoidCallback onSignUp, void Function(Object e) onError, ) async { final pfeProvider = Provider.of(context, listen: false); setState(() { _autoValidateMode = true; }); if (!(_formKey.currentState?.validate() ?? false)) { return null; } try { // final account = await pfeProvider.signUp( // companyName: controllers.companyName.text.trim(), // description: controllers.description.text.trim().isEmpty // ? null // : controllers.description.text.trim(), // firstName: controllers.firstName.text.trim(), // lastName: controllers.lastName.text.trim(), // email: controllers.email.text.trim(), // password: controllers.password.text, // ); onSignUp(); return 'ok'; } catch (e) { onError(pfeProvider.error ?? e); } return null; } void handleSignUp() => signUp( context, () { context.goNamed( Pages.sfactor.name, queryParameters: {'from': 'signup'}, ); }, (e) => postNotifyUserOfErrorX( context: context, errorSituation: AppLocalizations.of(context)!.errorSignUp, exception: e, ), ); void handleLogin() => navigate(context, Pages.login); @override void dispose() { controllers.dispose(); super.dispose(); } @override Widget build(BuildContext context) => SignUpFormContent( formKey: _formKey, controllers: controllers, autoValidateMode: _autoValidateMode, onSignUp: handleSignUp, onLogin: handleLogin, ); }