flutter_registration/lib/src/registration_screen.dart

58 lines
1.6 KiB
Dart
Raw Normal View History

2022-09-20 15:51:22 +02:00
import 'package:flutter/material.dart';
import 'package:flutter_registration/flutter_registration.dart';
import 'package:flutter_registration/src/auth_screen.dart';
class RegistrationScreen extends StatelessWidget {
const RegistrationScreen({
required this.registrationOptions,
2022-09-20 15:51:22 +02:00
super.key,
});
final RegistrationOptions registrationOptions;
2022-09-20 15:51:22 +02:00
@override
Widget build(BuildContext context) {
var translations = registrationOptions.registrationTranslations;
2022-09-20 15:51:22 +02:00
void showError(String error) => showDialog<String>(
context: context,
builder: (BuildContext context) => AlertDialog(
content: Text(error),
actions: <Widget>[
TextButton(
onPressed: () => Navigator.pop(
context,
translations.closeBtn,
),
child: Text(
translations.closeBtn,
),
2022-09-20 15:51:22 +02:00
),
],
),
);
void register(values) => registrationOptions.registrationRepository
2022-09-22 11:48:04 +02:00
.register(values)
2022-09-20 15:51:22 +02:00
.then(
(_) => registrationOptions.afterRegistration(),
2022-09-20 15:51:22 +02:00
)
.catchError(
(error) {
showError(
error.toString(),
);
},
);
return AuthScreen(
steps: registrationOptions.registrationSteps,
2022-09-22 11:48:04 +02:00
onFinish: register,
title: translations.title,
submitBtnTitle: translations.registerBtn,
nextBtnTitle: translations.nextStepBtn,
previousBtnTitle: translations.previousStepBtn,
2022-09-20 15:51:22 +02:00
);
}
}