import 'package:flutter/material.dart'; import 'package:ltx_flutter/pages/tabs_page.dart'; import 'package:ltx_flutter/appwrite/appwrite.dart'; import 'package:ltx_flutter/pages/login_page.dart'; import 'package:provider/provider.dart'; void main() { runApp(ChangeNotifierProvider( create: (context) => AuthAPI(), child: LifetrackerApp(), )); } class LifetrackerApp extends StatelessWidget { final TextStyle baseStyle = TextStyle(fontFamily: "monospace"); @override Widget build(BuildContext context) { final value = context.watch().status; print('TOP CHANGE Value changed to: $value!'); return MaterialApp( title: 'Lifetracker', theme: ThemeData.from( colorScheme: ColorScheme.dark(), ), home: value == AuthStatus.uninitialized ? const Scaffold( body: Center(child: CircularProgressIndicator()), ) : value == AuthStatus.authenticated ? const TabsPage() : LoginPage()); // DefaultTabController( // length: 3, // child: Scaffold( // appBar: AppBar( // title: Text("Lifetracker"), // bottom: const TabBar( // tabs: [ // Tab(icon: Icon(Icons.table_chart_sharp)), // Tab(icon: Icon(Icons.account_circle_sharp)), // Tab(icon: Icon(Icons.settings_backup_restore)), // ], // ), // ), // body: TabBarView(children: [ // TableOrPlaceholder(baseStyle: baseStyle), // AccountPage(), // Center( // child: Text("Database settings"), // ), // ])), // )); // } } } class AccountPage extends StatefulWidget { const AccountPage({ super.key, }); @override AccountPageState createState() { return AccountPageState(); } } class AccountPageState extends State { final _loginFormKey = GlobalKey(); String email = ""; String password = ""; void _logIn(context) { ScaffoldMessenger.of(context).showSnackBar( const SnackBar(content: Text('Logging in...')), ); // client.login(email, password); } @override Widget build(BuildContext context) { return Padding( padding: const EdgeInsets.all(30.0), child: Form( key: _loginFormKey, child: Column( children: [ SizedBox( width: 250, child: TextFormField( obscureText: false, decoration: InputDecoration( border: OutlineInputBorder(), labelText: 'Email', ), keyboardType: TextInputType.emailAddress, onChanged: (value) => setState(() { email = value; }), )), SizedBox( height: 20, ), SizedBox( width: 250, child: TextFormField( obscureText: true, decoration: InputDecoration( border: OutlineInputBorder(), labelText: 'Password', ), keyboardType: TextInputType.visiblePassword, onChanged: (value) => setState(() { password = value; }), )), SizedBox( height: 20, ), ElevatedButton.icon( onPressed: () { _logIn(context); }, icon: Icon(Icons.login), label: Text("Log in")), Column( children: [ email.isEmpty ? Text("No data") : Text(email), SizedBox( height: 10, ), password.isEmpty ? Text("No Data") : Text(password), ], ) ], ), ), ); } }