menu.dart 2.0 KB

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