ltx-flutter/ltx_flutter/lib/pages/today_page.dart

77 lines
2.1 KiB
Dart

import 'package:ltx_flutter/appwrite/categories_api.dart';
import 'package:ltx_flutter/appwrite/database_api.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:intl/intl.dart';
import 'package:appwrite/models.dart';
import 'package:timezone/timezone.dart' as tz;
import 'package:timezone/data/latest.dart' as tz;
import 'today_views/day_view.dart';
import 'today_views/infinity_view.dart';
import '../helpers.dart';
class TodayPage extends StatefulWidget {
const TodayPage({Key? key}) : super(key: key);
@override
_TodayPageState createState() => _TodayPageState();
}
class _TodayPageState extends State<TodayPage> {
@override
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (BuildContext context, BoxConstraints constraints) {
if (constraints.maxWidth > 800) {
return Text("Wide");
} else {
return Consumer<DatabaseAPI>(builder: (context, database, child) {
return database.ready
? NarrowView()
: Center(
child: CircularProgressIndicator(
value: database.progress,
));
});
}
});
}
}
class NarrowView extends StatelessWidget {
const NarrowView({
super.key,
});
@override
Widget build(BuildContext context) {
return DefaultTabController(
length: 4,
initialIndex: 0,
child: Column(
children: [
TabBar(
tabs: [
Tab(icon: Icon(Icons.calendar_view_day)),
Tab(icon: Icon(Icons.calendar_view_week)),
Tab(icon: Icon(Icons.calendar_view_month)),
Tab(icon: Icon(Icons.all_inclusive)),
],
),
Expanded(
child: TabBarView(
physics: const NeverScrollableScrollPhysics(),
children: [
DayView(),
Icon(Icons.directions_transit, size: 350),
Icon(Icons.directions_car, size: 350),
InfinityView(),
],
),
)
],
),
);
}
}