Files
Client/lib/view/pages/timetable/details/appointment_details_dispatcher.dart
T

28 lines
872 B
Dart

import 'package:flutter/material.dart';
import 'package:syncfusion_flutter_calendar/calendar.dart';
import '../../../../state/app/modules/timetable/bloc/timetable_bloc.dart';
import '../data/arbitrary_appointment.dart';
import '../widgets/commute/commute_details_sheet.dart';
import 'custom_event_sheet.dart';
import 'webuntis_lesson_sheet.dart';
class AppointmentDetailsDispatcher {
static void show(
BuildContext context,
TimetableBloc bloc,
Appointment appointment,
) {
final id = appointment.id;
if (id is! ArbitraryAppointment) return;
id.when(
webuntis: (lesson) =>
WebuntisLessonSheet.show(context, bloc, appointment, lesson),
custom: (event) => CustomEventSheet.show(context, event),
commute: (trip, direction) =>
showCommuteDetailsSheet(context, trip: trip, direction: direction),
);
}
}