trash.dart 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. export "./src/sizes.dart";
  2. export "./src/trash_cell.dart";
  3. export "./src/trash_header.dart";
  4. import 'package:appflowy/generated/flowy_svgs.g.dart';
  5. import 'package:appflowy/startup/plugin/plugin.dart';
  6. import 'package:appflowy/workspace/presentation/home/home_stack.dart';
  7. import 'package:easy_localization/easy_localization.dart';
  8. import 'package:flowy_infra_ui/style_widget/text.dart';
  9. import 'package:flutter/material.dart';
  10. import 'package:appflowy/generated/locale_keys.g.dart';
  11. import 'trash_page.dart';
  12. class TrashPluginBuilder extends PluginBuilder {
  13. @override
  14. Plugin build(dynamic data) {
  15. return TrashPlugin(pluginType: pluginType);
  16. }
  17. @override
  18. String get menuName => "TrashPB";
  19. @override
  20. FlowySvgData get icon => FlowySvgs.trash_m;
  21. @override
  22. PluginType get pluginType => PluginType.trash;
  23. }
  24. class TrashPluginConfig implements PluginConfig {
  25. @override
  26. bool get creatable => false;
  27. }
  28. class TrashPlugin extends Plugin {
  29. final PluginType _pluginType;
  30. TrashPlugin({required PluginType pluginType}) : _pluginType = pluginType;
  31. @override
  32. PluginWidgetBuilder get widgetBuilder => TrashPluginDisplay();
  33. @override
  34. PluginId get id => "TrashStack";
  35. @override
  36. PluginType get pluginType => _pluginType;
  37. }
  38. class TrashPluginDisplay extends PluginWidgetBuilder {
  39. @override
  40. Widget get leftBarItem => FlowyText.medium(LocaleKeys.trash_text.tr());
  41. @override
  42. Widget tabBarItem(String pluginId) => leftBarItem;
  43. @override
  44. Widget? get rightBarItem => null;
  45. @override
  46. Widget buildWidget({PluginContext? context, required bool shrinkWrap}) =>
  47. const TrashPage(
  48. key: ValueKey('TrashPage'),
  49. );
  50. @override
  51. List<NavigationItem> get navigationItems => [this];
  52. }