fix: some navigator scoping issues
parent
a68cb347e0
commit
3e15375784
|
@ -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:
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}),
|
||||
]));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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")),
|
||||
]));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue