import 'package:app/gapi/client.dart'; import 'package:app/pages/start_page.dart'; import 'package:app/pb/account_info.pb.dart'; import 'package:app/pb/rpc_get_account_info.pb.dart'; import 'package:app/widgets/background.dart'; import 'package:app/widgets/bottom_bar.dart'; import 'package:app/widgets/loading_widget.dart'; import 'package:app/widgets/side_drawer.dart'; import 'package:flutter/material.dart'; class DashboardPage extends StatefulWidget { const DashboardPage({ super.key, // required this.client, }); // final GClient client; @override State createState() => _DashboardPageState(); } class _DashboardPageState extends State { bool _loading = false; late AccountInfo accountInfo; void _setLoading(bool loading) { setState(() { _loading = loading; }); } @override void initState() { super.initState(); _setLoading(true); // widget.client.getAccountInfo( // GetAccountInfoRequest( // accountId: widget.client.session.accountId, // ), // onError: ({String? msg}) { // ScaffoldMessenger.of(context).showSnackBar( // SnackBar( // content: const Text('AccountInfo konnte nicht geladen werden'), // action: msg != null // ? SnackBarAction( // label: 'Details', // textColor: Colors.grey, // onPressed: () { // showDialog( // context: context, // builder: (context) { // return AlertDialog( // content: Text( // msg, // textAlign: TextAlign.center, // style: const TextStyle(color: Colors.black), // ), // icon: const Icon( // Icons.warning, // color: Colors.red, // ), // ); // }, // ); // }) // : null, // ), // ); // }, // ).then((value) { // accountInfo = value.accountInfo; // _setLoading(false); // }); } @override Widget build(BuildContext context) { return Background( child: Scaffold( appBar: AppBar( automaticallyImplyLeading: false, flexibleSpace: Image.asset( 'lib/assets/logo_300x200.png', height: 80, ), ), drawer: Builder(builder: (context) { return SideDrawer( children: [ const Spacer(), TextButton( onPressed: () { Scaffold.of(context).closeDrawer(); }, child: const Row( children: [ Text( 'About', style: TextStyle(fontSize: 20), ), Spacer(), Icon( Icons.question_answer, color: Colors.white, ), ], ), ), TextButton( onPressed: () { Scaffold.of(context).closeDrawer(); }, child: const Row( children: [ Text( 'Datenschutz', style: TextStyle(fontSize: 20), ), Spacer(), Icon( Icons.privacy_tip, color: Colors.white, ), ], ), ), TextButton( onPressed: () { Scaffold.of(context).closeDrawer(); }, child: const Row( children: [ Text( 'Impressum', style: TextStyle(fontSize: 20), ), Spacer(), Icon( Icons.apartment, color: Colors.white, ), ], ), ), // if (widget.client.session.accessToken != null) // TextButton( // onPressed: () { // widget.client.session.accessToken = null; // widget.client.session // .removeSession(widget.client.session.sessionId!); // Navigator.of(context).pushAndRemoveUntil( // MaterialPageRoute( // builder: (context) => // StartPage(client: widget.client), // ), // (route) => false); // }, // child: const Row( // children: [ // Text( // 'Log out', // style: TextStyle(fontSize: 20), // ), // Spacer(), // Icon( // Icons.logout, // color: Colors.white, // ), // ], // ), // ), const SizedBox( height: 250, ) ], ); }), // bottomNavigationBar: Builder( // builder: (context) { // return BottomBar( // children: widget.client.session.accessToken != null // ? [ // BottomNavigationBarItem( // backgroundColor: Colors.white, // label: 'Personen', // icon: Column( // children: [ // IconButton( // onPressed: () => // Scaffold.of(context).openDrawer(), // icon: const Icon( // Icons.group, // color: Colors.white, // ), // ), // const Text( // 'Personen', // style: TextStyle( // color: Colors.white, // fontSize: 16, // ), // ) // ], // ), // ), // BottomNavigationBarItem( // backgroundColor: Colors.white, // label: 'Home', // icon: Column( // children: [ // IconButton( // onPressed: () { // Navigator.of(context).push( // MaterialPageRoute( // builder: (context) => StartPage( // client: widget.client, // ), // ), // ); // }, // icon: const Icon( // Icons.home, // color: Colors.white, // ), // ), // const Text( // 'Home', // style: TextStyle( // color: Colors.white, // fontSize: 16, // ), // ) // ], // ), // ), // BottomNavigationBarItem( // backgroundColor: Colors.white, // label: 'Menu', // icon: IconButton( // onPressed: () { // Scaffold.of(context).openDrawer(); // }, // icon: const Icon( // Icons.menu, // color: Colors.white, // ), // ), // ) // ] // : [ // BottomNavigationBarItem( // label: 'back', // backgroundColor: Colors.white, // icon: IconButton( // onPressed: () {}, // icon: const Icon( // Icons.arrow_back, // color: Colors.white, // ), // ), // ), // BottomNavigationBarItem( // backgroundColor: Colors.white, // label: 'Menu', // icon: IconButton( // onPressed: () => Scaffold.of(context).openDrawer(), // icon: const Icon( // Icons.menu, // color: Colors.white, // ), // ), // ), // ], // ); // }, // ), body: !_loading ? Background( child: Center( child: Column( children: [ const SizedBox( height: 48, ), Text( 'Willkommen ${accountInfo.firstname} ${accountInfo.lastname}!', style: const TextStyle( fontSize: 24, ), ), ], ), ), ) : const LoadingWidget(), ), ); } }