Line data Source code
1 : import 'package:fast_immutable_collections/fast_immutable_collections.dart';
2 : import 'package:flutter/material.dart';
3 : import 'package:flutter_redux/flutter_redux.dart';
4 : import 'package:flutterfire_ui/auth.dart';
5 :
6 : import '../../../types.dart';
7 : import '../../auth/utils/login_configs.dart';
8 :
9 : class InitialPage<T extends RedFireState> extends StatelessWidget {
10 2 : const InitialPage(Widget homePage, ISet<LoginConfig> logins, {Key? key})
11 : : _homePage = homePage,
12 : _logins = logins,
13 2 : super(key: key);
14 : final Widget _homePage;
15 : final ISet<LoginConfig> _logins;
16 2 : @override
17 : Widget build(BuildContext context) {
18 2 : return StoreConnector<T, AuthUserData?>(
19 : distinct: true,
20 8 : converter: (store) => store.state.auth.userData,
21 2 : builder: (context, userData) {
22 : // User is not signed in
23 : if (userData == null) {
24 0 : return SignInScreen(
25 0 : providerConfigs: _logins
26 0 : .map((element) => element.toFlutterFireConfig())
27 0 : .toList());
28 : }
29 :
30 : // Render the application if authenticated
31 2 : return _homePage;
32 : },
33 : );
34 : }
35 : }
|