-
Notifications
You must be signed in to change notification settings - Fork 42
/
main_screen.dart
72 lines (62 loc) · 1.51 KB
/
main_screen.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import 'package:flutter/material.dart';
import 'package:firebase_authentication/signup_signin_screen.dart';
import 'package:firebase_authentication/auth.dart';
import 'package:firebase_authentication/home_screen.dart';
class MainScreen extends StatefulWidget {
MainScreen({this.auth});
final BaseAuth auth;
@override
State<StatefulWidget> createState() => new _MainScreenState();
}
enum AuthStatus {
SIGNED_OUT,
SIGNED_IN,
}
class _MainScreenState extends State<MainScreen> {
AuthStatus authStatus = AuthStatus.SIGNED_OUT;
String _userId = "";
@override
void initState() {
super.initState();
widget.auth.getCurrentUser().then((user) {
setState(() {
if (user != null) {
_userId = user;
}
authStatus =
user == null ? AuthStatus.SIGNED_OUT : AuthStatus.SIGNED_IN;
});
});
}
void _onSignedIn() {
widget.auth.getCurrentUser().then((user){
setState(() {
_userId = user;
});
});
setState(() {
authStatus = AuthStatus.SIGNED_IN;
});
}
void _onSignedOut() {
setState(() {
authStatus = AuthStatus.SIGNED_OUT;
_userId = "";
});
}
@override
Widget build(BuildContext context) {
if(authStatus == AuthStatus.SIGNED_OUT) {
return new SignupSigninScreen(
auth: widget.auth,
onSignedIn: _onSignedIn,
);
} else {
return new HomeScreen(
userId: _userId,
auth: widget.auth,
onSignedOut: _onSignedOut,
);
}
}
}