102 lines
3.0 KiB
Dart
102 lines
3.0 KiB
Dart
import 'package:coda_project/screens/user_settings_screen.dart';
|
|
import 'package:flutter/material.dart';
|
|
// import 'package:flutter_svg/flutter_svg.dart';
|
|
import '../screens/notifications_screen.dart';
|
|
import '../widgets/app_background.dart';
|
|
import '../widgets/floatingnavbar.dart';
|
|
import '../widgets/settings_bar.dart';
|
|
import '../screens/attendence_screen.dart';
|
|
import '../screens/finance_screen.dart';
|
|
import '../screens/holiday_screen.dart';
|
|
|
|
class MainPage extends StatefulWidget {
|
|
const MainPage({super.key});
|
|
|
|
@override
|
|
State<MainPage> createState() => _MainPageState();
|
|
}
|
|
|
|
class _MainPageState extends State<MainPage> {
|
|
int _currentIndex = 0;
|
|
int _settingsIndex = 0;
|
|
|
|
final List<Widget> _screens = [
|
|
const AttendanceScreen(),
|
|
const FinanceScreen(),
|
|
const HolidayScreen(),
|
|
];
|
|
|
|
final List<NavBarItem> _navItems = [
|
|
NavBarItem(iconPath: 'assets/images/attendance.svg', label: 'الحضور'),
|
|
NavBarItem(iconPath: 'assets/images/finance.svg', label: 'المالية'),
|
|
NavBarItem(iconPath: 'assets/images/holiday.svg', label: 'الإجازة'),
|
|
];
|
|
|
|
final List<String> _settingsIconPaths = [
|
|
'assets/images/user.svg',
|
|
'assets/images/ball.svg',
|
|
];
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Scaffold(
|
|
body: AppBackground(
|
|
child: SafeArea(
|
|
child: Column(
|
|
children: [
|
|
SettingsBar(
|
|
selectedIndex: _settingsIndex,
|
|
onTap: (index) {
|
|
setState(() {
|
|
_settingsIndex = index;
|
|
});
|
|
|
|
// 🟢 If user clicked the first icon (user.svg), open settings screen
|
|
if (index == 0) {
|
|
Navigator.push(
|
|
context,
|
|
MaterialPageRoute(
|
|
builder: (_) => const UserSettingsScreen(),
|
|
),
|
|
);
|
|
}
|
|
|
|
// 🔔 Ball icon → Notifications screen
|
|
if (index == 1) {
|
|
Navigator.push(
|
|
context,
|
|
MaterialPageRoute(
|
|
builder:
|
|
(_) => const NotificationsScreen(), // placeholder
|
|
),
|
|
);
|
|
}
|
|
},
|
|
showBackButton: false,
|
|
iconPaths: _settingsIconPaths,
|
|
),
|
|
|
|
// Main content area
|
|
Expanded(
|
|
child: IndexedStack(index: _currentIndex, children: _screens),
|
|
),
|
|
|
|
// const SizedBox(height: 20),
|
|
Floatingnavbar(
|
|
items: _navItems,
|
|
selectedIndex: _currentIndex,
|
|
onTap: (index) {
|
|
setState(() {
|
|
_currentIndex = index;
|
|
});
|
|
},
|
|
),
|
|
const SizedBox(height: 20),
|
|
],
|
|
),
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|