flutter_registration/example/lib/main.dart

99 lines
2.5 KiB
Dart
Raw Permalink Normal View History

2022-11-01 09:19:20 +01:00
// SPDX-FileCopyrightText: 2022 Iconica
//
// SPDX-License-Identifier: BSD-3-Clause
import 'package:flutter/gestures.dart';
2022-09-20 15:51:22 +02:00
import 'package:flutter/material.dart';
import 'package:flutter_registration/flutter_registration.dart';
import 'example_registration_repository.dart';
void main() {
runApp(
MaterialApp(
theme: ThemeData(
inputDecorationTheme: const InputDecorationTheme(
errorStyle: TextStyle(color: Colors.red),
),
),
home: const FlutterRegistrationDemo(),
2022-09-20 15:51:22 +02:00
),
);
}
class FlutterRegistrationDemo extends StatefulWidget {
2024-08-08 10:57:20 +02:00
const FlutterRegistrationDemo({super.key});
2022-09-20 15:51:22 +02:00
@override
State<FlutterRegistrationDemo> createState() =>
_FlutterRegistrationDemoState();
}
class _FlutterRegistrationDemoState extends State<FlutterRegistrationDemo> {
late List<AuthStep> steps;
@override
void initState() {
super.initState();
steps = RegistrationOptions.getDefaultSteps();
steps[1].fields.add(
AuthBoolField(
name: 'termsConditions',
widgetType: BoolWidgetType.checkbox,
validators: [
(value) {
if (value == null || !value) {
return 'Required';
}
return null;
},
],
rightWidget: Text.rich(
TextSpan(
text: 'I agree with the ',
children: <TextSpan>[
TextSpan(
text: 'terms & conditions',
style: const TextStyle(
decoration: TextDecoration.underline,
),
recognizer: TapGestureRecognizer()
..onTap = () {
debugPrint('Open terms and conditions');
},
),
],
),
),
),
);
}
2022-09-20 15:51:22 +02:00
@override
Widget build(BuildContext context) {
return RegistrationScreen(
registrationOptions: RegistrationOptions(
registrationRepository: ExampleRegistrationRepository(),
registrationSteps: steps,
afterRegistration: () {
debugPrint('Registered!');
},
),
2022-09-20 15:51:22 +02:00
);
}
}
class ProtectedScreen extends StatelessWidget {
2024-08-08 10:57:20 +02:00
const ProtectedScreen({super.key});
2022-09-20 15:51:22 +02:00
@override
Widget build(BuildContext context) {
return const Scaffold(
body: Center(
child: Text('FlutterRegistrationDemo'),
),
);
}
}