4
2
Fork 0

fix: some navigator scoping issues

pull/55/head
Sudharshan S. 2019-07-01 21:20:24 +08:00
parent a68cb347e0
commit 3e15375784
Signed by: sudharshan
GPG Key ID: C861C97AAF3D9559
4 changed files with 22 additions and 20 deletions

View File

@ -2,6 +2,7 @@ import "package:flutter/material.dart";
import "../../services/login_manager.dart";
import "../../services/conversation_manager.dart";
import "./widgets/welcome_page.dart";
import "./widgets/login_page.dart";
import "./widgets/otp_page.dart";
@ -46,17 +47,8 @@ class Welcome extends StatelessWidget {
LoginPage(loginManager: loginManager);
break;
case "welcome/otp":
builder = (BuildContext _) =>
OtpPage(buttonCallback: (String otp) async {
final authToken = await loginManager.processOtp(otp);
final user = await loginManager.getUser();
await ConversationManager.init(authToken);
if (user.firstName == "" && user.lastName == "") {
Navigator.pushNamed(context, 'welcome/register');
} else {
Navigator.of(context).pushReplacementNamed("/home");
}
builder = (BuildContext _) => OtpPage(buttonCallback: () {
Navigator.of(context).pushReplacementNamed("/home");
});
break;
default:

View File

@ -45,7 +45,7 @@ class _LoginPageState extends State<LoginPage> {
textAlign: TextAlign.left,
style: Theme.of(context).accentTextTheme.display3),
Text(
"Enter your phone number, to connect to your existing Beep account.",
"Enter your phone number, to connect to your Beep account.",
style: Theme.of(context)
.accentTextTheme
.title

View File

@ -2,10 +2,13 @@ import "package:flutter/material.dart";
import 'package:pin_code_text_field/pin_code_text_field.dart';
import "package:flutter_svg/flutter_svg.dart";
import "../../../services/conversation_manager.dart";
import "../../../services/login_manager.dart";
import "../../widgets/text_button.dart";
// Callback types
typedef void ButtonCallback(String otp);
typedef void ButtonCallback();
class OtpPage extends StatefulWidget {
final ButtonCallback buttonCallback;
@ -18,6 +21,7 @@ class OtpPage extends StatefulWidget {
class _OtpPageState extends State<OtpPage> {
final String phoneSvg = "assets/authenticate.svg";
final LoginManager loginManager = LoginManager();
final controller = TextEditingController();
@override
@ -53,13 +57,12 @@ class _OtpPageState extends State<OtpPage> {
highlightColor: Colors.white,
onTextChanged: (text) {},
onDone: (text) {
widget.buttonCallback(text);
// widget.buttonCallback(text);
},
pinBoxHeight:
(MediaQuery.of(context).size.width / 6) - 15,
pinBoxWidth:
(MediaQuery.of(context).size.width / 6) - 15,
/*hideCharacter: true,*/
pinBoxDecoration: (Color color) {
return BoxDecoration(
color: Color(0x10000000),
@ -72,7 +75,18 @@ class _OtpPageState extends State<OtpPage> {
Spacer(),
TextButton(
text: "Done",
onClickCallback: () => widget.buttonCallback(controller.text)),
onClickCallback: () async {
final authToken =
await loginManager.processOtp(controller.text);
final user = await loginManager.getUser();
await ConversationManager.init(authToken);
if (user.firstName == "" && user.lastName == "") {
Navigator.pushNamed(context, 'welcome/register');
} else {
widget.buttonCallback();
}
}),
]));
}
}

View File

@ -34,10 +34,6 @@ class WelcomePage extends StatelessWidget {
text: "Login",
onClickCallback: () =>
Navigator.pushNamed(context, "welcome/login")),
TextButton(
text: "Sign Up",
onClickCallback: () =>
Navigator.pushNamed(context, "welcome/register")),
]));
}
}