From 154e7a80d12769de50b3245211156331fac1a31b Mon Sep 17 00:00:00 2001 From: Stein Milder Date: Wed, 28 Sep 2022 09:23:41 +0200 Subject: [PATCH] feat: customAppbarBuilder --- lib/src/auth_screen.dart | 12 +++++++++--- lib/src/config/registration_options.dart | 4 +++- lib/src/registration_screen.dart | 3 +++ 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/lib/src/auth_screen.dart b/lib/src/auth_screen.dart index 0ef61aa..8b52332 100644 --- a/lib/src/auth_screen.dart +++ b/lib/src/auth_screen.dart @@ -11,6 +11,7 @@ class AuthScreen extends StatefulWidget { required this.nextBtnTitle, required this.previousBtnTitle, required this.onFinish, + this.customAppBar, super.key, }) : assert(steps.length > 0, 'At least one step is required'); @@ -23,6 +24,7 @@ class AuthScreen extends StatefulWidget { final String submitBtnTitle; final String nextBtnTitle; final String previousBtnTitle; + final AppBar? customAppBar; @override State createState() => _AuthScreenState(); @@ -34,12 +36,16 @@ class _AuthScreenState extends State { final _animationDuration = const Duration(milliseconds: 300); final _animationCurve = Curves.ease; + AppBar get _appBar => + widget.customAppBar ?? + AppBar( + title: Text(widget.title), + ); + @override Widget build(BuildContext context) => Scaffold( backgroundColor: Theme.of(context).backgroundColor, - appBar: AppBar( - title: Text(widget.title), - ), + appBar: _appBar, body: Form( key: _formKey, child: PageView( diff --git a/lib/src/config/registration_options.dart b/lib/src/config/registration_options.dart index ef49bbc..1b1a874 100644 --- a/lib/src/config/registration_options.dart +++ b/lib/src/config/registration_options.dart @@ -1,4 +1,4 @@ -import 'package:flutter/widgets.dart'; +import 'package:flutter/material.dart'; import 'package:flutter_registration/flutter_registration.dart'; class RegistrationOptions { @@ -7,12 +7,14 @@ class RegistrationOptions { required this.registrationSteps, required this.afterRegistration, this.registrationTranslations = const RegistrationTranslations(), + this.customAppbarBuilder, }); final RegistrationTranslations registrationTranslations; final List registrationSteps; final VoidCallback afterRegistration; final RegistrationRepository registrationRepository; + final AppBar Function(String title)? customAppbarBuilder; static List get defaultSteps => [ AuthStep( diff --git a/lib/src/registration_screen.dart b/lib/src/registration_screen.dart index f8d391b..3669352 100644 --- a/lib/src/registration_screen.dart +++ b/lib/src/registration_screen.dart @@ -32,6 +32,9 @@ class RegistrationScreen extends StatelessWidget { return AuthScreen( steps: registrationOptions.registrationSteps, + customAppBar: registrationOptions.customAppbarBuilder?.call( + translations.title, + ), onFinish: register, title: translations.title, submitBtnTitle: translations.registerBtn,