52 lines
1.4 KiB
Dart
52 lines
1.4 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:google_sign_in/google_sign_in.dart';
|
|
|
|
import 'package:pvt15/pages/wheel_page.dart';
|
|
import 'package:pvt15/pages/leaderboard_page.dart';
|
|
import 'package:pvt15/pages/profile_page.dart';
|
|
|
|
class NavigationControllerPage extends StatefulWidget {
|
|
final GoogleSignInAccount? user;
|
|
const NavigationControllerPage({super.key, required this.user});
|
|
|
|
@override
|
|
State<NavigationControllerPage> createState() => _NavigationControllerPage();
|
|
}
|
|
|
|
class _NavigationControllerPage extends State<NavigationControllerPage> {
|
|
int _currentIndex = 0;
|
|
late final List<Widget> _pages;
|
|
|
|
@override
|
|
void initState() {
|
|
super.initState();
|
|
_pages = [
|
|
const WheelPage(),
|
|
LeaderboardPage(),
|
|
ProfilePage(user: widget.user),
|
|
];
|
|
}
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Scaffold(
|
|
body: _pages[_currentIndex],
|
|
bottomNavigationBar: BottomNavigationBar(
|
|
currentIndex: _currentIndex,
|
|
items: const [
|
|
BottomNavigationBarItem(icon: Icon(Icons.play_arrow), label: 'Spel'),
|
|
BottomNavigationBarItem(
|
|
icon: Icon(Icons.emoji_events),
|
|
label: 'Leaderboard',
|
|
),
|
|
BottomNavigationBarItem(icon: Icon(Icons.person), label: 'Profile'),
|
|
],
|
|
onTap:
|
|
(i) => setState(() {
|
|
_currentIndex = i;
|
|
}),
|
|
),
|
|
);
|
|
}
|
|
}
|