cpd_2022_zi/lib/pages/main_page.dart

83 lines
2.5 KiB
Dart

import 'package:flutter/material.dart';
import 'package:smoke_cess_app/pages/mood_page.dart';
import 'package:smoke_cess_app/pages/relapse_page.dart';
import 'package:smoke_cess_app/pages/scanner_page.dart';
import 'package:smoke_cess_app/pages/sleep_page.dart';
import 'package:smoke_cess_app/pages/timer_page.dart';
import 'package:smoke_cess_app/service/settings_service.dart';
import 'package:smoke_cess_app/widgets/missing_config_popup.dart';
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key});
@override
MyHomePageState createState() => MyHomePageState();
}
class MyHomePageState extends State<MyHomePage> {
int _selectedIndex = 4;
final List<String> _titles = [
'Stimmung',
'Schlaf',
'Timer',
'Rückfall',
'Scanner'
];
static final List<Widget> _widgetOptions = <Widget>[
const MoodPage(),
const SleepPage(),
const StopWatchTimerPage(),
const RelapsePage(),
SettingsPage(),
];
Future<void> _onItemTapped(int index) async {
bool isConfigured = (await getGroup()) != null;
print('Gruppe: ${await getGroup()}, isConfigured: $isConfigured');
setState(() {
isConfigured
? _selectedIndex = index
: showDialog(
context: context,
builder: (BuildContext context) {
return const MissingConfigPopup();
});
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text(_titles[_selectedIndex])),
body: _widgetOptions.elementAt(_selectedIndex),
bottomNavigationBar: NavigationBar(
onDestinationSelected: _onItemTapped,
selectedIndex: _selectedIndex,
destinations: const <Widget>[
NavigationDestination(
icon: Icon(Icons.mood_outlined, color: Colors.black),
label: 'Stimmung'),
NavigationDestination(
icon: Icon(Icons.bedtime_outlined, color: Colors.black),
label: 'Schlaf'),
NavigationDestination(
icon: Icon(
Icons.timer_outlined,
color: Colors.black,
),
label: 'Timer'),
NavigationDestination(
icon: Icon(Icons.smoke_free_outlined, color: Colors.black),
label: 'Rückfall'),
NavigationDestination(
icon: Icon(Icons.camera_alt_outlined, color: Colors.black),
label: 'Settings'),
],
//onTap: _onItemTapped,
),
);
}
}