Advertisement
Guest User

Untitled

a guest
Mar 19th, 2019
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.29 KB | None | 0 0
  1. import 'package:flutter/material.dart';
  2. import 'package:flutter/foundation.dart';
  3. import 'package:flutter/widgets.dart';
  4. import 'package:flutter_bloc/flutter_bloc.dart';
  5. import 'package:todos_app_core/todos_app_core.dart';
  6. import 'package:flutter_todos/blocs/todos/todos.dart';
  7. import 'package:flutter_todos/models/models.dart';
  8. import 'package:flutter_todos/flutter_todos_keys.dart';
  9.  
  10. class ExtraActions extends StatelessWidget {
  11. ExtraActions({Key key}) : super(key: ArchSampleKeys.extraActionsButton);
  12.  
  13. @override
  14. Widget build(BuildContext context) {
  15. final todosBloc = BlocProvider.of<TodosBloc>(context);
  16. return BlocBuilder(
  17. bloc: todosBloc,
  18. builder: (BuildContext context, TodosState state) {
  19. if (state is TodosLoaded) {
  20. bool allComplete = (todosBloc.currentState as TodosLoaded)
  21. .todos
  22. .every((todo) => todo.complete);
  23. return PopupMenuButton<ExtraAction>(
  24. key: FlutterTodosKeys.extraActionsPopupMenuButton,
  25. onSelected: (action) {
  26. switch (action) {
  27. case ExtraAction.clearCompleted:
  28. todosBloc.dispatch(ClearCompleted());
  29. break;
  30. case ExtraAction.toggleAllComplete:
  31. todosBloc.dispatch(ToggleAll());
  32. break;
  33. }
  34. },
  35. itemBuilder: (BuildContext context) => <PopupMenuItem<ExtraAction>>[
  36. PopupMenuItem<ExtraAction>(
  37. key: ArchSampleKeys.toggleAll,
  38. value: ExtraAction.toggleAllComplete,
  39. child: Text(
  40. allComplete
  41. ? ArchSampleLocalizations.of(context)
  42. .markAllIncomplete
  43. : ArchSampleLocalizations.of(context).markAllComplete,
  44. ),
  45. ),
  46. PopupMenuItem<ExtraAction>(
  47. key: ArchSampleKeys.clearCompleted,
  48. value: ExtraAction.clearCompleted,
  49. child: Text(
  50. ArchSampleLocalizations.of(context).clearCompleted,
  51. ),
  52. ),
  53. ],
  54. );
  55. }
  56. return Container(key: FlutterTodosKeys.extraActionsEmptyContainer);
  57. },
  58. );
  59. }
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement