Files
hlaskovnik-reimagined/frontend/lib/main_scaffold.dart
T
2026-03-23 09:59:42 +01:00

53 lines
1.6 KiB
Dart

import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import 'values/strings.dart';
class MainScaffold extends StatelessWidget {
final Widget child;
const MainScaffold({super.key, required this.child});
int _locationToIndex(String location) {
switch (location) {
case '/': return 0;
case '/add': return 1;
case '/flashcards': return 2;
case '/leaderboard': return 3;
case '/settings': return 4;
default: return 0;
}
}
@override
Widget build(BuildContext context) {
final location = GoRouterState.of(context).uri.toString();
final currentIndex = _locationToIndex(location);
return Scaffold(
body: child,
bottomNavigationBar: BottomNavigationBar(
type: BottomNavigationBarType.fixed,
currentIndex: currentIndex,
onTap: (index) {
switch (index) {
case 0: context.go('/'); break;
case 1: context.go('/add'); break;
case 2: context.go('/flashcards'); break;
case 3: context.go('/leaderboard'); break;
case 4: context.go('/settings'); break;
}
},
items: [
BottomNavigationBarItem(icon: Icon(Icons.list), label: Strings.list),
BottomNavigationBarItem(icon: Icon(Icons.add), label: Strings.add),
BottomNavigationBarItem(icon: Icon(Icons.repeat), label: Strings.flashcards),
BottomNavigationBarItem(icon: Icon(Icons.leaderboard), label: Strings.leaderboard),
BottomNavigationBarItem(icon: Icon(Icons.settings), label: Strings.settings),
],
),
);
}
}