import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import '../buisness/ToDoItem.dart'; import '../buisness/ToDoProvider.dart'; class ToDoExpandableWidget extends StatelessWidget { final ToDoItem toDoItem; final int id; const ToDoExpandableWidget({ super.key, required this.toDoItem, required this.id, }); @override Widget build(BuildContext context) { return Card( color: Colors.orange[100], child: ExpansionTile( title: Text(toDoItem.name, style: const TextStyle(color: Colors.black)), subtitle: Text('Due: ${toDoItem.dueDate.toLocal()}'), children: [ Padding( padding: const EdgeInsets.all(8.0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text('Description: ${toDoItem.description}', style: const TextStyle(color: Colors.black)), const SizedBox(height: 10), Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ ElevatedButton.icon( onPressed: () { Provider.of(context, listen: false).deleteItem(toDoItem.id!); }, icon: const Icon(Icons.delete), label: const Text("Delete"), style: ElevatedButton.styleFrom( textStyle: const TextStyle(fontSize: 15), iconColor: const Color(0xFFFF0000), ), ), const Text('Status: ', style: TextStyle(color: Colors.black)), DropdownButton( value: toDoItem.status, items: ['Pending', 'In Progress', 'Completed'] .map((status) => DropdownMenuItem( value: status, child: Text(status), )) .toList(), onChanged: (value) { if (value != null) { Provider.of(context, listen: false).updateStatus(id, value); } }, ), ], ), ], ), ), ], ), ); } }