1
0
mirror of https://github.com/go-vikunja/app synced 2024-06-14 08:24:18 +00:00
app-mirror-github/lib/pages/home.dart

72 lines
2.2 KiB
Dart
Raw Normal View History

2018-09-27 15:55:56 +00:00
import 'dart:async';
import 'package:flutter/cupertino.dart';
2018-09-15 15:01:45 +00:00
import 'package:flutter/material.dart';
import 'package:after_layout/after_layout.dart';
import 'package:provider/provider.dart';
2018-09-27 15:55:56 +00:00
import 'package:vikunja_app/components/AddDialog.dart';
import 'package:vikunja_app/components/ErrorDialog.dart';
import 'package:vikunja_app/models/project.dart';
2019-03-16 13:29:00 +00:00
import 'package:vikunja_app/pages/namespace/namespace.dart';
2019-03-18 17:00:34 +00:00
import 'package:vikunja_app/pages/namespace/namespace_edit.dart';
import 'package:vikunja_app/pages/landing_page.dart';
2018-09-22 20:56:16 +00:00
import 'package:vikunja_app/global.dart';
import 'package:vikunja_app/models/namespace.dart';
2023-05-13 23:28:30 +00:00
import 'package:vikunja_app/pages/namespace/overview.dart';
import 'package:vikunja_app/pages/project/overview.dart';
2022-04-12 22:32:21 +00:00
import 'package:vikunja_app/pages/settings.dart';
import '../stores/project_store.dart';
2018-09-15 15:01:45 +00:00
class HomePage extends StatefulWidget {
@override
2021-03-15 07:31:38 +00:00
State<StatefulWidget> createState() => HomePageState();
2018-09-15 15:01:45 +00:00
}
class HomePageState extends State<HomePage> {
2023-05-13 23:28:30 +00:00
int _selectedDrawerIndex = 0, _previousDrawerIndex = 0;
2022-08-27 21:04:43 +00:00
Widget? drawerItem;
2018-09-15 15:01:45 +00:00
2019-03-18 16:56:15 +00:00
List<Widget> widgets = [
ChangeNotifierProvider<ProjectProvider>(
create: (_) => new ProjectProvider(),
child: LandingPage(),
),
ProjectOverviewPage(),
SettingsPage()
];
2023-05-13 23:28:30 +00:00
List<BottomNavigationBarItem> navbarItems = [
BottomNavigationBarItem(icon: Icon(Icons.home), label: "Home"),
BottomNavigationBarItem(icon: Icon(Icons.list), label: "Projects"),
2023-05-13 23:28:30 +00:00
BottomNavigationBarItem(icon: Icon(Icons.settings), label: "Settings"),
];
2019-03-18 16:56:15 +00:00
@override
Widget build(BuildContext context) {
2022-09-03 15:43:16 +00:00
final currentUser = VikunjaGlobal.of(context).currentUser;
if (_selectedDrawerIndex != _previousDrawerIndex || drawerItem == null)
drawerItem = _getDrawerItemWidget(_selectedDrawerIndex);
2019-03-18 16:56:15 +00:00
2018-09-15 15:01:45 +00:00
return new Scaffold(
2023-05-13 23:28:30 +00:00
bottomNavigationBar: BottomNavigationBar(
items: navbarItems,
currentIndex: _selectedDrawerIndex,
onTap: (index) {
setState(() {
_selectedDrawerIndex = index;
});
},
),
body: drawerItem,
2018-09-15 15:01:45 +00:00
);
}
_getDrawerItemWidget(int pos, {bool forceReload = false}) {
_previousDrawerIndex = pos;
return widgets[pos];
}
2018-09-15 15:10:34 +00:00
}