68 lines
2.3 KiB
Dart
68 lines
2.3 KiB
Dart
import 'package:flutter/gestures.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:ltx_flutter/pages/tabs_page.dart';
|
|
import 'package:ltx_flutter/appwrite/auth_api.dart';
|
|
import 'package:ltx_flutter/appwrite/database_api.dart';
|
|
import 'package:ltx_flutter/appwrite/categories_api.dart';
|
|
import 'package:ltx_flutter/pages/login_page.dart';
|
|
import 'package:provider/provider.dart';
|
|
|
|
void main() {
|
|
runApp(MultiProvider(
|
|
providers: [
|
|
ChangeNotifierProvider(create: (context) => AuthAPI()),
|
|
ChangeNotifierProvider(create: (context) => DatabaseAPI()),
|
|
ChangeNotifierProvider(create: (context) => CategoriesAPI()),
|
|
],
|
|
child: LifetrackerApp(),
|
|
));
|
|
}
|
|
|
|
class LifetrackerApp extends StatelessWidget {
|
|
final TextStyle baseStyle = TextStyle(fontFamily: "monospace");
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
final loginStatus = context.watch<AuthAPI>().status;
|
|
return MaterialApp(
|
|
scrollBehavior: const MaterialScrollBehavior().copyWith(dragDevices: {
|
|
PointerDeviceKind.mouse,
|
|
PointerDeviceKind.touch,
|
|
PointerDeviceKind.trackpad,
|
|
}),
|
|
title: 'Lifetracker',
|
|
theme: ThemeData.from(
|
|
colorScheme: ColorScheme.dark(),
|
|
),
|
|
home: loginStatus == AuthStatus.uninitialized
|
|
? const Scaffold(
|
|
body: Center(child: CircularProgressIndicator()),
|
|
)
|
|
: loginStatus == 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"),
|
|
// ),
|
|
// ])),
|
|
// ));
|
|
// }
|
|
}
|
|
}
|