import 'package:flutter/material.dart'; class AddCustomTimetableEventDialog extends StatefulWidget { const AddCustomTimetableEventDialog({super.key}); @override State createState() => _AddCustomTimetableEventDialogState(); } class _AddCustomTimetableEventDialogState extends State { DateTime _selectedDate = DateTime.now(); TimeOfDay _selectedStartTime = TimeOfDay.now(); TimeOfDay _selectedEndTime = TimeOfDay.now(); final TextEditingController _eventNameController = TextEditingController(); bool _isRecurring = false; String _recurringFrequency = 'Wöchentlich'; @override Widget build(BuildContext context) { return AlertDialog( title: const Text('Termin hinzufügen'), content: SingleChildScrollView( child: Column( mainAxisSize: MainAxisSize.min, children: [ ListTile( title: const Text('Startdatum:'), subtitle: Text('${_selectedDate.day}/${_selectedDate.month}/${_selectedDate.year}'), onTap: () async { final DateTime? pickedDate = await showDatePicker( context: context, initialDate: _selectedDate, firstDate: DateTime.now(), lastDate: DateTime(2101), ); if (pickedDate != null && pickedDate != _selectedDate) { setState(() { _selectedDate = pickedDate; }); } }, ), ListTile( title: const Text('Startzeit:'), subtitle: Text('${_selectedStartTime.hour}:${_selectedStartTime.minute}'), onTap: () async { final TimeOfDay? pickedTime = await showTimePicker( context: context, initialTime: _selectedStartTime, ); if (pickedTime != null && pickedTime != _selectedStartTime) { setState(() { _selectedStartTime = pickedTime; }); } }, ), ListTile( title: const Text('Endzeit:'), subtitle: Text('${_selectedEndTime.hour}:${_selectedEndTime.minute}'), onTap: () async { final TimeOfDay? pickedTime = await showTimePicker( context: context, initialTime: _selectedEndTime, ); if (pickedTime != null && pickedTime != _selectedEndTime) { setState(() { _selectedEndTime = pickedTime; }); } }, ), TextField( controller: _eventNameController, decoration: const InputDecoration(labelText: 'Terminname'), ), CheckboxListTile( title: const Text('Wiederholend'), value: _isRecurring, onChanged: (bool? value) { setState(() { _isRecurring = value!; }); }, ), if (_isRecurring) ...[ DropdownButtonFormField( value: _recurringFrequency, items: ['Wöchentlich', 'Täglich', 'Monatlich'].map((String value) { return DropdownMenuItem( value: value, child: Text(value), ); }).toList(), onChanged: (String? value) { setState(() { _recurringFrequency = value ?? ""; }); }, ), // Hier könntest du weitere Felder für die Wiederholungseigenschaften hinzufügen ], ], ), ), actions: [ TextButton( onPressed: () { Navigator.of(context).pop(); }, child: const Text('Abbrechen'), ), TextButton( onPressed: () { // Hier kannst du die Eingaben verwenden String startDate = '${_selectedDate.day}/${_selectedDate.month}/${_selectedDate.year}'; String startTime = '${_selectedStartTime.hour}:${_selectedStartTime.minute}'; String endTime = '${_selectedEndTime.hour}:${_selectedEndTime.minute}'; String eventName = _eventNameController.text; bool isRecurring = _isRecurring; String recurringFrequency = _recurringFrequency; // Hier kannst du die Daten speichern oder weiterverarbeiten print('Startdatum: $startDate'); print('Startzeit: $startTime'); print('Endzeit: $endTime'); print('Terminname: $eventName'); print('Wiederholend: $isRecurring'); if (_isRecurring) { print('Wiederholungs-Frequenz: $recurringFrequency'); } // Hier könntest du die Termindaten weiterverarbeiten, z.B. speichern und den Dialog schließen Navigator.of(context).pop(); }, child: const Text('Hinzufügen'), ), ], ); } }