dynamic
build(- dynamic context
)
Implementation
@override
Widget build(BuildContext context) {
final AppLocalizations appLocalizations = AppLocalizations.of(context);
final UserManagementProvider userManagementProvider =
context.watch<UserManagementProvider>();
return Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
const Icon(
Icons.grade,
color: Colors.amber,
size: 100,
),
Padding(
padding: const EdgeInsets.symmetric(vertical: MEDIUM_SPACE),
child: Text(
appLocalizations.thanks_for_contributing,
style: Theme.of(context).textTheme.bodyText1,
),
),
FutureBuilder<bool>(
future: userManagementProvider.credentialsInStorage(),
builder: (BuildContext context, AsyncSnapshot<bool> snapshot) {
if (snapshot.hasData) {
final bool isUserLoggedIn = snapshot.data!;
if (isUserLoggedIn) {
// TODO(jasmeet): Show leaderboard button.
return EMPTY_WIDGET;
}
return Column(
children: <Widget>[
SmoothActionButton(
text: appLocalizations.sign_in,
onPressed: () async {
Navigator.maybePop<Widget>(context);
await Navigator.push<Widget>(
context,
MaterialPageRoute<Widget>(
builder: (_) => const LoginPage(),
),
);
},
),
Padding(
padding:
const EdgeInsets.symmetric(vertical: MEDIUM_SPACE),
child: Text(
appLocalizations.question_sign_in_text,
style: Theme.of(context).textTheme.bodyText2,
textAlign: TextAlign.center,
),
),
],
);
} else {
return EMPTY_WIDGET;
}
}),
TextButton(
child: Text(appLocalizations.close),
onPressed: () => Navigator.maybePop<Widget>(context),
),
],
),
);
}