cpd_job_app/lib/Widgets/bottom_nav_bar.dart

106 lines
3.5 KiB
Dart
Raw Normal View History

import 'package:cpd_ss23/Search/profile_company.dart';
import 'package:cpd_ss23/Search/search_companies.dart';
import 'package:cpd_ss23/jobs/upload_job.dart';
import 'package:cpd_ss23/user_state.dart';
import 'package:curved_navigation_bar/curved_navigation_bar.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import '../jobs/jobs_screen.dart';
class BottomNavigationBarForApp extends StatelessWidget {
int indexNum = 0;
BottomNavigationBarForApp({required this.indexNum});
void _logout(context) {
final FirebaseAuth _auth = FirebaseAuth.instance;
showDialog(
context: context,
builder: (context){
return AlertDialog(
backgroundColor: Colors.black54,
title: const Row(
children: [
Padding(
padding: EdgeInsets.all(8.0),
child: Icon(
Icons.logout,
color: Colors.white,
size: 36
),
),
Padding(
padding: EdgeInsets.all(8.0),
child: Text(
"Sign Out",
style: TextStyle(color: Colors.white, fontSize: 28),
),
),
],
),
content: const Text(
"Do you want to Log Out?",
style: TextStyle(
color: Colors.white, fontSize: 20
),
),
actions: [
TextButton(
onPressed: (){
Navigator.canPop(context) ? Navigator.pop(context) : null;
},
child: const Text("No", style: TextStyle(color: Colors.green, fontSize: 18),),
),
TextButton(
onPressed: (){
_auth.signOut();
Navigator.canPop(context) ? Navigator.pop(context) : null;
Navigator.pushReplacement(context, MaterialPageRoute(builder: (_) => UserState()));
},
child: const Text("Yes", style: TextStyle(color: Colors.green, fontSize: 18),),
)
],
);
}
);
}
@override
Widget build(BuildContext context) {
return CurvedNavigationBar(
color: Colors.cyan,
backgroundColor: Colors.black,
buttonBackgroundColor: Colors.white,
height: 50,
index: indexNum,
items: const [
Icon(Icons.list, size: 19, color: Colors.black,),
Icon(Icons.search, size: 19, color: Colors.black,),
Icon(Icons.add, size: 19, color: Colors.black,),
Icon(Icons.person_pin, size: 19, color: Colors.black,),
Icon(Icons.exit_to_app, size: 19, color: Colors.black,),
],
animationDuration: const Duration(
milliseconds: 300,
),
animationCurve: Curves.bounceInOut,
onTap: (index){
if(index == 0){
Navigator.pushReplacement(context, MaterialPageRoute(builder: (_) => JobScreen()));
} else if (index == 1){
Navigator.pushReplacement(context, MaterialPageRoute(builder: (_) => AllWorkersScreen()));
} else if (index == 2){
Navigator.pushReplacement(context, MaterialPageRoute(builder: (_) => UploadJobNow()));
} else if (index == 3){
Navigator.pushReplacement(context, MaterialPageRoute(builder: (_) => ProfileScreen()));
}
else if (index == 4){
_logout(context);
}
},
);
}
}