// ignore_for_file: public_member_api_docs, sort_constructors_first import 'package:farm_tpf/presentation/custom_widgets/checkbox/checkbox_widget.dart'; import 'package:farm_tpf/utils/helpers.dart'; import 'package:flutter/material.dart'; import 'package:farm_tpf/presentation/screens/codes/models/stamp.dart'; import '../../../../themes/app_colors.dart'; import '../../../../themes/styles_text.dart'; import 'package:farm_tpf/utils/formatter.dart'; import '../models/task.dart'; class ItemTask extends StatelessWidget { final Task item; final Function onPressed; final Function(bool) onChangedStatus; ItemTask({ Key? key, required this.item, required this.onPressed, required this.onChangedStatus, }) : super(key: key); @override Widget build(BuildContext context) { var dueDate = item.dueDate?.format_DDMMYY().toString() ?? ''; var completedDate = item.executeDate?.format_DDMMYY().toString() ?? ''; var backgroundColor = Colors.white; if (item.isCompleted ?? false) { backgroundColor = AppColors.primary1.withOpacity(0.3); } else { var dueDateCompare = item.dueDate?.convertStringServerDateTimeToLocalDateTime() ?? DateTime.now(); if (Helpers.isAfterToday(dueDateCompare)) { backgroundColor = Colors.white; } else { backgroundColor = AppColors.semantic6; } } return GestureDetector( onTap: () { onPressed(); }, child: Container( padding: EdgeInsets.all(8), margin: EdgeInsets.symmetric(vertical: 4, horizontal: 8), decoration: BoxDecoration( borderRadius: BorderRadius.circular(10), border: Border.all( color: Colors.grey.shade200, width: 1, ), color: backgroundColor, ), child: Row( children: [ Expanded( child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( '${item.title ?? ''}', style: StylesText.body4, ), const SizedBox( height: 4, ), Text( 'Hạn chót: $dueDate', style: StylesText.body6, ), const SizedBox( height: 4, ), Text( 'Hoàn thành: $completedDate', style: StylesText.body6, ), ], ), ), CheckboxWidget( title: '', isChecked: item.isCompleted ?? false, onChange: (val) { onChangedStatus(val); }, ) ], ), ), ); } }