import 'package:flutter/material.dart'; import '../../model/alarm/alarm.dart' show AlarmType; import '../../model/requests/create_alarm_request.dart'; import '../../model/requests/create_fixed_time_alarm_request.dart'; import '../../model/requests/create_location_alarm_request.dart'; import '../../model/requests/create_relative_time_alarm_request.dart'; import 'fixed_time_alarm_form.dart'; import 'location_alarm_form.dart'; import 'relative_time_alarm_form.dart'; class AlarmForm extends StatelessWidget { const AlarmForm({super.key, required this.request, required this.onChanged}); final CreateAlarmRequest request; final ValueChanged onChanged; @override Widget build(BuildContext context) { switch (request.alarmType) { case AlarmType.timeFixed: return FixedTimeAlarmForm( request: request as CreateFixedTimeAlarmRequest, onChanged: onChanged, ); case AlarmType.timeRelative: return RelativeTimeAlarmForm( request: request as CreateRelativeTimeAlarmRequest, onChanged: onChanged, ); case AlarmType.location: return LocationAlarmForm( request: request as CreateLocationAlarmRequest, onChanged: onChanged, ); } } }