Frontend first draft

This commit is contained in:
Arseni
2025-11-13 15:06:15 +03:00
parent e47f343afb
commit ddb54ddfdc
504 changed files with 25498 additions and 1 deletions

View 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,
);
}