menu.dart 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import 'package:app_flowy/plugin/plugin.dart';
  2. import 'package:app_flowy/startup/startup.dart';
  3. import 'package:app_flowy/startup/tasks/load_plugin.dart';
  4. import 'package:app_flowy/workspace/application/appearance.dart';
  5. import 'package:app_flowy/workspace/presentation/home/home_stack.dart';
  6. import 'package:app_flowy/workspace/presentation/home/menu/menu.dart';
  7. import 'package:easy_localization/easy_localization.dart';
  8. import 'package:flowy_infra/image.dart';
  9. import 'package:flowy_infra_ui/style_widget/text.dart';
  10. import 'package:flowy_infra_ui/widget/spacing.dart';
  11. import 'package:flutter/material.dart';
  12. import 'package:provider/provider.dart';
  13. import 'package:app_flowy/generated/locale_keys.g.dart';
  14. import 'package:flowy_infra/theme.dart';
  15. class MenuTrash extends StatelessWidget {
  16. const MenuTrash({Key? key}) : super(key: key);
  17. @override
  18. Widget build(BuildContext context) {
  19. return SizedBox(
  20. height: 26,
  21. child: InkWell(
  22. onTap: () {
  23. Provider.of<MenuSharedState>(context, listen: false).selectedView.value = null;
  24. getIt<HomeStackManager>().setPlugin(makePlugin(pluginType: DefaultPlugin.trash.type()));
  25. },
  26. child: _render(context),
  27. ),
  28. );
  29. }
  30. Widget _render(BuildContext context) {
  31. return Row(children: [
  32. ChangeNotifierProvider.value(
  33. value: Provider.of<AppearanceSettingModel>(context, listen: true),
  34. child: Selector<AppearanceSettingModel, AppTheme>(
  35. selector: (ctx, notifier) => notifier.theme,
  36. builder: (ctx, theme, child) =>
  37. SizedBox(width: 16, height: 16, child: svg("home/trash", color: theme.iconColor)),
  38. ),
  39. ),
  40. const HSpace(6),
  41. ChangeNotifierProvider.value(
  42. value: Provider.of<AppearanceSettingModel>(context, listen: true),
  43. child: Selector<AppearanceSettingModel, Locale>(
  44. selector: (ctx, notifier) => notifier.locale,
  45. builder: (ctx, _, child) => FlowyText.medium(LocaleKeys.trash_text.tr(), fontSize: 12),
  46. ),
  47. ),
  48. ]);
  49. }
  50. }