181 lines
4.9 KiB
Dart
181 lines
4.9 KiB
Dart
import 'package:bbm_tracking/resource/resource.dart';
|
|
import 'package:flutter/material.dart';
|
|
|
|
class MonthPicker extends StatefulWidget {
|
|
// final Function onChangeNextMonth;
|
|
final Function onChangeDate;
|
|
// final String bulan;
|
|
|
|
const MonthPicker({
|
|
super.key,
|
|
required this.onChangeDate,
|
|
// required this.onChangBeforeMonth,
|
|
// required this.bulan
|
|
});
|
|
|
|
@override
|
|
State<MonthPicker> createState() => _MonthPickerState();
|
|
}
|
|
|
|
class _MonthPickerState extends State<MonthPicker> {
|
|
late Function onChangeDate;
|
|
|
|
int _month = 0;
|
|
int _year = 2023;
|
|
String mon = "";
|
|
|
|
@override
|
|
void initState() {
|
|
super.initState();
|
|
onChangeDate = widget.onChangeDate;
|
|
}
|
|
|
|
void nextMonth() {
|
|
setState(() {
|
|
_month == 11 ? _month = 0 : _month = _month + 1;
|
|
});
|
|
// print(bulan.elementAt(_month));
|
|
}
|
|
|
|
void beforeMonth() {
|
|
setState(() {
|
|
_month == 0 ? _month = 11 : _month = _month - 1;
|
|
});
|
|
// print(bulan.elementAt(_month));
|
|
}
|
|
|
|
void nextYear() {
|
|
setState(() {
|
|
_year = _year + 1;
|
|
});
|
|
// print(bulan.elementAt(_month));
|
|
}
|
|
|
|
void beforeYear() {
|
|
setState(() {
|
|
_year > 2023 ? _year = _year - 1 : null;
|
|
});
|
|
// print(bulan.elementAt(_month));
|
|
}
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Dialog(
|
|
elevation: 1,
|
|
backgroundColor: Color(0xffE3EAEA),
|
|
child: Container(
|
|
height: 250,
|
|
child: Column(
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
crossAxisAlignment: CrossAxisAlignment.center,
|
|
children: [
|
|
Text(
|
|
"Pilih Tanggal",
|
|
style: TextStyle(
|
|
color: Color(0xFF677D81),
|
|
fontSize: 18,
|
|
fontFamily: 'Poppins',
|
|
fontWeight: FontWeight.w700,
|
|
),
|
|
textAlign: TextAlign.center,
|
|
),
|
|
SizedBox(
|
|
height: 20,
|
|
),
|
|
Container(
|
|
child: Row(
|
|
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
|
children: [
|
|
Column(
|
|
children: [
|
|
InkWell(
|
|
onTap: () => nextMonth(),
|
|
child: Icon(
|
|
Icons.arrow_drop_up,
|
|
size: 50,
|
|
),
|
|
),
|
|
Text(
|
|
bulan.elementAt(_month),
|
|
style: TextStyle(
|
|
fontFamily: 'Poppins',
|
|
fontSize: 15,
|
|
fontWeight: FontWeight.w600,
|
|
),
|
|
),
|
|
InkWell(
|
|
onTap: () => beforeMonth(),
|
|
child: Icon(
|
|
Icons.arrow_drop_down,
|
|
size: 50,
|
|
),
|
|
),
|
|
],
|
|
),
|
|
Column(
|
|
children: [
|
|
InkWell(
|
|
onTap: () => nextYear(),
|
|
child: Icon(
|
|
Icons.arrow_drop_up,
|
|
size: 50,
|
|
),
|
|
),
|
|
Text(
|
|
_year.toString(),
|
|
style: TextStyle(
|
|
fontFamily: 'Poppins',
|
|
fontSize: 15,
|
|
fontWeight: FontWeight.w600,
|
|
),
|
|
),
|
|
InkWell(
|
|
onTap: () => beforeYear(),
|
|
child: Icon(
|
|
Icons.arrow_drop_down,
|
|
size: 50,
|
|
),
|
|
),
|
|
],
|
|
),
|
|
],
|
|
),
|
|
),
|
|
SizedBox(
|
|
height: 16,
|
|
),
|
|
InkWell(
|
|
onTap: () {
|
|
if (_month < 10) {
|
|
mon = "0" + (_month + 1).toString();
|
|
}
|
|
onChangeDate(mon.toString(), _year.toString());
|
|
Navigator.of(context).pop();
|
|
},
|
|
child: Container(
|
|
padding: EdgeInsets.symmetric(
|
|
vertical: 10,
|
|
horizontal: 17,
|
|
),
|
|
decoration: BoxDecoration(
|
|
borderRadius: BorderRadius.all(Radius.circular(9)),
|
|
color: Color(0xFF2ECC71),
|
|
),
|
|
child: Text(
|
|
"Selesai",
|
|
style: TextStyle(
|
|
fontFamily: 'Poppins',
|
|
fontSize: 12,
|
|
fontWeight: FontWeight.w600,
|
|
color: Colors.white,
|
|
),
|
|
),
|
|
),
|
|
)
|
|
],
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|