You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
doctor_app_flutter/lib/screens/auth/login_screen.dart

69 lines
2.1 KiB
Dart

import 'dart:async';
import 'package:doctor_app_flutter/widgets/auth/known_user_login.dart';
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
import '../../widgets/auth/auth_header.dart';
import '../../widgets/auth/login_form.dart';
class Loginsreen extends StatefulWidget {
@override
_LoginsreenState createState() => _LoginsreenState();
}
class _LoginsreenState extends State<Loginsreen> {
Future<SharedPreferences> _prefs = SharedPreferences.getInstance();
String platformImei;
Future<String> platformImeiText;
Future<void> getSharedPref() async {
final SharedPreferences prefs = await _prefs;
platformImei = prefs.getString('platformImei');
}
@override
void initState() {
super.initState();
platformImeiText = _prefs.then((SharedPreferences prefs) {
return (prefs.getString('platformImei'));
});
}
@override
Widget build(BuildContext context) {
getSharedPref();
return Scaffold(
backgroundColor: Colors.white,
body: SingleChildScrollView(
child: FutureBuilder(
future: platformImeiText,
builder: (BuildContext context, AsyncSnapshot<String> snapshot) {
switch (snapshot.connectionState) {
case ConnectionState.waiting:
return const CircularProgressIndicator();
default:
if (snapshot.hasError) {
return Text('Error: ${snapshot.error}');
} else {
return Container(
margin: EdgeInsetsDirectional.fromSTEB(30, 0, 0, 0),
alignment: Alignment.topLeft,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
AuthHeader(),
(platformImei == null)
? LoginForm()
: KnownUserLogin(),
]));
}
}
}),
),
);
}
}