Frontend first draft
This commit is contained in:
94
frontend/pweb/lib/pages/signup/form/state.dart
Normal file
94
frontend/pweb/lib/pages/signup/form/state.dart
Normal file
@@ -0,0 +1,94 @@
|
||||
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<SignUpForm> {
|
||||
late final SignUpFormControllers controllers;
|
||||
final _formKey = GlobalKey<FormState>();
|
||||
bool _autoValidateMode = false;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
controllers = SignUpFormControllers();
|
||||
}
|
||||
|
||||
Future<String?> signUp(
|
||||
BuildContext context,
|
||||
VoidCallback onSignUp,
|
||||
void Function(Object e) onError,
|
||||
) async {
|
||||
final pfeProvider = Provider.of<PfeProvider>(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,
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user