flutter_registration/lib/src/registration_screen.dart

61 lines
1.8 KiB
Dart
Raw Normal View History

2022-11-01 09:19:20 +01:00
// SPDX-FileCopyrightText: 2022 Iconica
//
// SPDX-License-Identifier: BSD-3-Clause
import 'dart:collection';
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
Future<void> register({
required HashMap<String, dynamic> values,
2023-10-03 14:38:52 +02:00
required void Function(int? pageToReturn) onError,
}) async {
try {
var registered =
await registrationOptions.registrationRepository.register(values);
if (registered == null) {
registrationOptions.afterRegistration();
2023-09-19 11:16:43 +02:00
} else {
2023-10-03 14:38:52 +02:00
var pageToReturn = registrationOptions.onError?.call(registered);
2023-10-03 14:38:52 +02:00
onError(pageToReturn);
}
} catch (e) {
2023-10-03 14:38:52 +02:00
onError(0);
}
}
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
return AuthScreen(
steps: registrationOptions.registrationSteps,
2022-09-28 09:23:41 +02:00
customAppBar: registrationOptions.customAppbarBuilder?.call(
translations.title,
),
2022-09-22 11:48:04 +02:00
onFinish: register,
title: translations.title,
submitBtnTitle: translations.registerBtn,
nextBtnTitle: translations.nextStepBtn,
previousBtnTitle: translations.previousStepBtn,
nextButtonBuilder: registrationOptions.nextButtonBuilder,
previousButtonBuilder: registrationOptions.previousButtonBuilder,
2023-09-19 11:16:43 +02:00
customBackgroundColor: registrationOptions.backgroundColor,
titleWidget: registrationOptions.titleWidget,
loginButton: registrationOptions.loginButton,
2022-09-20 15:51:22 +02:00
);
}
}