import 'package:flutter/material.dart'; import '../model/ApiAccess.dart'; import '../model/user.dart'; import '../service/AuthenticationChecker.dart'; class StatefulLoginStatus extends StatefulWidget { final ApiAccess apiAccess; const StatefulLoginStatus({Key? key, required this.apiAccess}) : super(key: key); @override _StatefulLoginStatus createState() => _StatefulLoginStatus(); } class _StatefulLoginStatus extends State { Future? userRequest; @override void initState() { userRequest = AuthenticationChecker(widget.apiAccess).getAuthenticatedUserOrError(); super.initState(); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text("Login status"), ), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center, children: [ FutureBuilder( future: userRequest, builder: (context, snapshot) { if (snapshot.hasError) { return Center( child: Column( children: [ Container( padding: const EdgeInsets.all(15), child: const Icon( Icons.error, color: Colors.redAccent, size: 60, ), ), Text("Hiba történt: ${snapshot.error}", style: Theme.of(context).textTheme.headline6), ], ), ); } else if (snapshot.hasData) { var user = snapshot.data!; final username = user.username; final avatar = user.avatarUrl; return Center( child: Column( children: [ const Icon( Icons.check, color: Colors.green, size: 60, ), Text( "Logged in as $username", style: Theme.of(context).textTheme.headline6, ), Container( padding: const EdgeInsets.all(15), child: Image.network( avatar!, width: 100, )), ElevatedButton( onPressed: () => { Navigator.pushNamed(context, "/repolist",arguments: SavedUser(authedUser: user, apiAccess: widget.apiAccess)) }, child: const Text("Start using Gitea")) ], )); } else { return Center( child: CircularProgressIndicator(), ); } }) ], ), )); } }