41 lines
1.3 KiB
Dart
41 lines
1.3 KiB
Dart
import 'package:flutter/material.dart';
|
|
|
|
import '../../model/alarm.dart' show AlarmType;
|
|
import '../../model/callback_models/create_alarm_request.dart';
|
|
import '../../model/callback_models/create_fixed_time_alarm_request.dart';
|
|
import '../../model/callback_models/create_location_alarm_request.dart';
|
|
import '../../model/callback_models/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<CreateAlarmRequest> 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,
|
|
);
|
|
}
|
|
}
|
|
}
|