You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
229 lines
10 KiB
Dart
229 lines
10 KiB
Dart
import 'package:easy_localization/src/public_ext.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter_svg/flutter_svg.dart';
|
|
import 'package:mohem_flutter_app/classes/colors.dart';
|
|
import 'package:mohem_flutter_app/extensions/int_extensions.dart';
|
|
import 'package:mohem_flutter_app/extensions/string_extensions.dart';
|
|
import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
|
|
import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
|
|
import 'package:mohem_flutter_app/widgets/circular_step_progress_bar.dart';
|
|
|
|
class AttendenceDetailsBottomSheet extends StatefulWidget {
|
|
|
|
AttendenceDetailsBottomSheet({Key? key}) : super(key: key);
|
|
|
|
@override
|
|
_AttendenceDetailsBottomSheetState createState() => _AttendenceDetailsBottomSheetState();
|
|
}
|
|
|
|
class _AttendenceDetailsBottomSheetState extends State<AttendenceDetailsBottomSheet> {
|
|
@override
|
|
void initState() {
|
|
super.initState();
|
|
}
|
|
|
|
@override
|
|
void dispose() {
|
|
super.dispose();
|
|
}
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Scaffold(
|
|
bottomSheet:BottomSheet(
|
|
|
|
onClosing: () => print("not getting called"),
|
|
builder: (_) => Container(
|
|
color: Colors.red,
|
|
height: MediaQuery.of(context).size.height*0.9,
|
|
child: Column(
|
|
children: [
|
|
Container(
|
|
decoration: BoxDecoration(
|
|
borderRadius: BorderRadius.vertical( top: Radius.circular(25.0),),
|
|
color: MyColors.backgroundBlackColor,
|
|
),
|
|
margin:EdgeInsets.only(top: 45) ,
|
|
padding: EdgeInsets.only(left: 11, right: 11, bottom: 21),
|
|
child: Column(
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
children: [
|
|
Center(
|
|
child: Padding(
|
|
padding: const EdgeInsets.all(10),
|
|
child: Container(
|
|
margin:EdgeInsets.only(top: 5) ,
|
|
decoration: BoxDecoration(
|
|
borderRadius: BorderRadius.all(Radius.circular(35.0),),
|
|
color: Color(0xff464646),
|
|
),
|
|
width: 80,
|
|
height: 6,
|
|
),
|
|
),
|
|
),
|
|
Container(
|
|
padding: EdgeInsets.only(top: 25,left: 11, right: 11, bottom: 10),
|
|
child: Column(children: [
|
|
"June 13, 2021".toText24(isBold: true, color: Colors.white),
|
|
// LocaleKeys.attendanceDetails.tr().toText16(color: Color(0xffACACAC)),
|
|
// LocaleKeys.timeLeftToday.tr().toText16(color: Color(0xffACACAC)),
|
|
21.height,
|
|
] ),
|
|
),
|
|
Center(
|
|
child: CircularStepProgressBar(
|
|
totalSteps: 16 * 4,
|
|
currentStep: 16,
|
|
width: 210,
|
|
height: 210,
|
|
selectedColor: MyColors.gradiantEndColor,
|
|
unselectedColor: MyColors.grey70Color,
|
|
child: Center(
|
|
child: Column(
|
|
mainAxisSize: MainAxisSize.min,
|
|
children: [
|
|
"99%".toText32(color: Colors.white, isBold: true),
|
|
"Completed".tr().toText12(color: MyColors.greyACColor),
|
|
19.height,
|
|
"Shift Time".tr().toText12(color: MyColors.greyACColor),
|
|
"08:00 - 17:00".toText22(color: Colors.white, isBold: true),
|
|
],
|
|
),
|
|
),
|
|
),
|
|
),
|
|
],
|
|
),
|
|
),
|
|
Stack(
|
|
children: [
|
|
Container(
|
|
height: 32,
|
|
// padding: EdgeInsets.only(top: 24, bottom: 24),
|
|
color: MyColors.backgroundBlackColor,
|
|
),
|
|
Container(
|
|
width: double.infinity,
|
|
decoration: BoxDecoration(borderRadius: BorderRadius.only(topLeft: Radius.circular(25), topRight: Radius.circular(25)), color: Colors.white),
|
|
margin: EdgeInsets.only(top: 10),
|
|
padding: EdgeInsets.only(left: 21, right: 21, top: 24, bottom: 24),
|
|
child: Row(
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
|
children:[
|
|
Row(
|
|
children: [
|
|
Column(
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
children: [
|
|
Row(
|
|
children: [
|
|
"Actual Check In ".tr().toText12(color: MyColors.black),
|
|
],
|
|
),
|
|
SizedBox(height: 8,),
|
|
Row(
|
|
children: [
|
|
"08:27".toText22(color: Colors.black, isBold: true),
|
|
],
|
|
),
|
|
SizedBox(height: 30,),
|
|
Row(
|
|
children: [
|
|
"Approved Check In".tr().toText12(color: MyColors.black),
|
|
],
|
|
),
|
|
SizedBox(height: 8,),
|
|
Row(
|
|
children: [
|
|
"09:27".toText22(color: Color(0xff1FA269), isBold: true),
|
|
],
|
|
),
|
|
SizedBox(height: 30,),
|
|
Row(
|
|
children: [
|
|
"Late In".tr().toText12(color: MyColors.black),
|
|
],
|
|
),
|
|
SizedBox(height: 8,),
|
|
Row(
|
|
children: [
|
|
"00:27".toText22(color: Color(0xffD02127), isBold: true),
|
|
],
|
|
),
|
|
SizedBox(height: 30,),
|
|
Row(
|
|
children: [ "Shortage".tr().toText12(color: MyColors.black),
|
|
] ),
|
|
SizedBox(height: 8,),
|
|
Row(
|
|
children: [
|
|
"00:00".toText22(color: Colors.black, isBold: true),],
|
|
),
|
|
],
|
|
),
|
|
],
|
|
),
|
|
Row(
|
|
children: [
|
|
Column(
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
children: [
|
|
Row(
|
|
children: [
|
|
"Actual Check Out".tr().toText12(color: MyColors.black),
|
|
],
|
|
),
|
|
SizedBox(height: 8,),
|
|
Row(
|
|
children: [
|
|
"18:20".toText22(color: Colors.black, isBold: true),],
|
|
),
|
|
SizedBox(height: 30,),
|
|
Row(
|
|
children: [ "Approved Check Out".tr().toText12(color: MyColors.black),
|
|
],
|
|
),
|
|
SizedBox(height: 8,),
|
|
Row(
|
|
children: [
|
|
"18:20".toText22(color: Color(0xff1FA269), isBold: true),],
|
|
),
|
|
SizedBox(height: 30,),
|
|
Row(
|
|
children: ["Excess".tr().toText12(color: MyColors.black),
|
|
],
|
|
),
|
|
SizedBox(height: 8,),
|
|
Row(
|
|
children: [
|
|
"00:00".toText22(color: Colors.black, isBold: true),],
|
|
),
|
|
SizedBox(height: 30,),
|
|
Row(
|
|
children: ["Early Out".tr().toText12(color: MyColors.black),
|
|
],
|
|
),
|
|
SizedBox(height: 8,),
|
|
Row(
|
|
children: [
|
|
"00:00".toText22(color: Colors.black, isBold: true),],
|
|
),
|
|
],
|
|
),
|
|
],
|
|
),
|
|
] ),
|
|
),
|
|
]),
|
|
],
|
|
),
|
|
)
|
|
));
|
|
|
|
}
|
|
|
|
|
|
}
|