import 'package:date_field/date_field.dart'; import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; /// Ein Feld mit Popup über welches man Datumsfelder auswählen kann class DynamicDateTimeField extends StatefulWidget { /// Initialisiert eine neue Instanz dieser Klasse const DynamicDateTimeField({ this.initialValue, this.mode = DateTimeFieldPickerMode.date, this.autofocus = false, this.onChanged, this.decoration, super.key, }); final DateTime? initialValue; /// Der Modus des Datums-Feldes final DateTimeFieldPickerMode mode; /// Ob das Feld automatisch ausgewählt werden soll final bool autofocus; /// Die Funktion, die bei Veränderung des Wertes aufgerufen wird final Function(DateTime?)? onChanged; /// Die Dekoration, wie das Feld aussehen soll final InputDecoration? decoration; @override State createState() => _DynamicDateTimeFieldState(); } class _DynamicDateTimeFieldState extends State { DateTime? _value; @override void initState() { super.initState(); _value = widget.initialValue; } @override Widget build(final BuildContext context) => DateTimeField( initialPickerDateTime: widget.initialValue, dateFormat: DateFormat('d.M.y'), value: _value, mode: widget.mode, autofocus: widget.autofocus, onChanged: (final value) { widget.onChanged?.call(value); setState(() { _value = value; }); }, decoration: widget.decoration, ); }