feat: add hover effect when trash icon is selected or hovered. (#1513)

This commit is contained in:
Rasyid Miftahul Ihsan 2022-12-08 13:22:27 +07:00 committed by GitHub
parent 442dfe7ef8
commit 9711d670ca
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 28 additions and 12 deletions

View File

@ -3,7 +3,11 @@ import 'package:app_flowy/startup/startup.dart';
import 'package:app_flowy/workspace/presentation/home/home_stack.dart';
import 'package:app_flowy/workspace/presentation/home/menu/menu.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:flowy_infra/color_extension.dart';
import 'package:flowy_infra/image.dart';
import 'package:flowy_infra/size.dart';
import 'package:flowy_infra_ui/style_widget/extension.dart';
import 'package:flowy_infra_ui/style_widget/hover.dart';
import 'package:flowy_infra_ui/style_widget/text.dart';
import 'package:flowy_infra_ui/widget/spacing.dart';
import 'package:flutter/material.dart';
@ -14,16 +18,27 @@ class MenuTrash extends StatelessWidget {
@override
Widget build(BuildContext context) {
return SizedBox(
height: 26,
child: InkWell(
onTap: () {
getIt<MenuSharedState>().latestOpenView = null;
getIt<HomeStackManager>()
.setPlugin(makePlugin(pluginType: PluginType.trash));
},
child: _render(context),
),
return ValueListenableBuilder(
valueListenable: getIt<MenuSharedState>().notifier,
builder: (context, value, child) {
return FlowyHover(
style: HoverStyle(
hoverColor: AFThemeExtension.of(context).greySelect,
),
isSelected: () => getIt<MenuSharedState>().latestOpenView == null,
child: SizedBox(
height: 26,
child: InkWell(
onTap: () {
getIt<MenuSharedState>().latestOpenView = null;
getIt<HomeStackManager>()
.setPlugin(makePlugin(pluginType: PluginType.trash));
},
child: _render(context),
),
).padding(horizontal: Insets.l),
).padding(horizontal: 8);
},
);
}
@ -43,4 +58,4 @@ class MenuTrash extends StatelessWidget {
],
);
}
}
}

View File

@ -104,7 +104,7 @@ class HomeMenu extends StatelessWidget {
).padding(horizontal: Insets.l),
),
const VSpace(20),
const MenuTrash().padding(horizontal: Insets.l),
const MenuTrash(),
const VSpace(20),
_renderNewAppButton(context),
],
@ -178,6 +178,7 @@ class MenuSharedState {
}
ViewPB? get latestOpenView => _latestOpenView.value;
ValueNotifier<ViewPB?> get notifier => _latestOpenView;
set latestOpenView(ViewPB? view) {
if (_latestOpenView.value != view) {