@@ -32,6 +32,36 @@ class RegisterScreen extends MultiProviderScreen {
3232 /// {@macro ui.auth.screens.responsive_page.desktop_layout_direction}
3333 final TextDirection ? desktopLayoutDirection;
3434
35+ /// [RegisterScreen] could invoke these actions:
36+ ///
37+ /// * [EmailLinkSignInAction]
38+ /// * [VerifyPhoneAction]
39+ /// * [AuthStateChangeAction]
40+ ///
41+ /// These actions could be used to trigger route transtion or display
42+ /// a dialog.
43+ ///
44+ /// ```dart
45+ /// SignInScreen(
46+ /// actions: [
47+ /// VerifyPhoneAction((context, _) {
48+ /// Navigator.pushNamed(context, '/phone');
49+ /// }),
50+ /// AuthStateChangeAction<SignedIn>((context, state) {
51+ /// if (!state.user!.emailVerified) {
52+ /// Navigator.pushNamed(context, '/verify-email');
53+ /// } else {
54+ /// Navigator.pushReplacementNamed(context, '/profile');
55+ /// }
56+ /// }),
57+ /// EmailLinkSignInAction((context) {
58+ /// Navigator.pushReplacementNamed(context, '/email-link-sign-in');
59+ /// }),
60+ /// ],
61+ /// )
62+ /// ```
63+ final List <FirebaseUIAction >? actions;
64+
3565 /// An email that [EmailForm] should be pre-filled with.
3666 final String ? email;
3767
@@ -62,6 +92,7 @@ class RegisterScreen extends MultiProviderScreen {
6292 Key ? key,
6393 FirebaseAuth ? auth,
6494 List <AuthProvider >? providers,
95+ this .actions,
6596 this .headerMaxExtent,
6697 this .headerBuilder,
6798 this .sideBuilder,
@@ -78,21 +109,24 @@ class RegisterScreen extends MultiProviderScreen {
78109
79110 @override
80111 Widget build (BuildContext context) {
81- return LoginScreen (
82- styles: styles,
83- action: AuthAction .signUp,
84- providers: providers,
85- resizeToAvoidBottomInset: resizeToAvoidBottomInset,
86- auth: auth,
87- headerMaxExtent: headerMaxExtent,
88- headerBuilder: headerBuilder,
89- sideBuilder: sideBuilder,
90- desktopLayoutDirection: desktopLayoutDirection,
91- oauthButtonVariant: oauthButtonVariant,
92- email: email,
93- showAuthActionSwitch: showAuthActionSwitch,
94- subtitleBuilder: subtitleBuilder,
95- footerBuilder: footerBuilder,
112+ return FirebaseUIActions (
113+ actions: actions ?? [],
114+ child: LoginScreen (
115+ styles: styles,
116+ action: AuthAction .signUp,
117+ providers: providers,
118+ resizeToAvoidBottomInset: resizeToAvoidBottomInset,
119+ auth: auth,
120+ headerMaxExtent: headerMaxExtent,
121+ headerBuilder: headerBuilder,
122+ sideBuilder: sideBuilder,
123+ desktopLayoutDirection: desktopLayoutDirection,
124+ oauthButtonVariant: oauthButtonVariant,
125+ email: email,
126+ showAuthActionSwitch: showAuthActionSwitch,
127+ subtitleBuilder: subtitleBuilder,
128+ footerBuilder: footerBuilder,
129+ ),
96130 );
97131 }
98132}
0 commit comments