agenda_time_popup.dart 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import 'package:electronic_assistant/dialog/add_agenda_dialog.dart';
  2. import 'package:electronic_assistant/popup/template_utils.dart';
  3. import 'package:flutter/material.dart';
  4. import 'package:flutter/widgets.dart';
  5. import 'package:flutter_screenutil/flutter_screenutil.dart';
  6. import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
  7. import 'package:get/get.dart';
  8. import '../resource/string.gen.dart';
  9. import 'common_popup.dart';
  10. typedef AgendaPopupCallback = void Function(AgendaTimeType type);
  11. enum AgendaTimeType { nearlyAWeek, nearlyTwoWeek, nearlyAMonth, customTime }
  12. void showAgendaTimePopup(
  13. BuildContext context, Alignment alignment, AgendaTimeType? type,
  14. {AgendaPopupCallback? callback}) {
  15. showViewTargetPopup(context, alignment, offset: Offset(-24.w, 0), [
  16. createSelectItem(
  17. StringName.popupNearlyAWeek.tr, type == AgendaTimeType.nearlyAWeek,
  18. onItemClick: () {
  19. callback?.call(AgendaTimeType.nearlyAWeek);
  20. SmartDialog.dismiss();
  21. }),
  22. createPopupDivider(),
  23. createSelectItem(
  24. StringName.popupNearlyTwoWeek.tr, type == AgendaTimeType.nearlyTwoWeek,
  25. onItemClick: () {
  26. callback?.call(AgendaTimeType.nearlyTwoWeek);
  27. SmartDialog.dismiss();
  28. }),
  29. createPopupDivider(),
  30. createSelectItem(
  31. StringName.popupNearlyAMonth.tr, type == AgendaTimeType.nearlyAMonth,
  32. onItemClick: () {
  33. callback?.call(AgendaTimeType.nearlyAMonth);
  34. SmartDialog.dismiss();
  35. }),
  36. createPopupDivider(),
  37. createSelectItem(
  38. StringName.popupCustomTime.tr, type == AgendaTimeType.customTime,
  39. onItemClick: () {
  40. callback?.call(AgendaTimeType.customTime);
  41. SmartDialog.dismiss();
  42. }),
  43. ]);
  44. }