agenda_time_popup.dart 1.6 KB

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