fix: bug where context menu options wouldn't work unless page was selcted

This commit is contained in:
Aryman 2022-08-10 14:46:39 +05:30
parent ab4a2e8b07
commit e095a17683
2 changed files with 13 additions and 1 deletions

View File

@ -64,13 +64,17 @@ class ViewDisclosureButton extends StatelessWidget
class ViewDisclosureRegion extends StatelessWidget
with ActionList<ViewDisclosureActionWrapper>, FlowyOverlayDelegate {
final Widget child;
final Function() onTap;
final Function(dartz.Option<ViewDisclosureAction>) onSelected;
final _items = ViewDisclosureAction.values
.map((action) => ViewDisclosureActionWrapper(action))
.toList();
ViewDisclosureRegion(
{Key? key, required this.onSelected, required this.child})
{Key? key,
required this.onSelected,
required this.onTap,
required this.child})
: super(key: key);
@override
@ -96,6 +100,11 @@ class ViewDisclosureRegion extends StatelessWidget
);
};
@override
void didRemove() {
onSelected(dartz.none());
}
void _handleClick(PointerDownEvent event, BuildContext context) {
if (event.kind == PointerDeviceKind.mouse &&
event.buttons == kSecondaryMouseButton) {
@ -103,6 +112,7 @@ class ViewDisclosureRegion extends StatelessWidget
Offset position = box.localToGlobal(Offset.zero);
double x = event.position.dx - position.dx - box.size.width;
double y = event.position.dy - position.dy - box.size.height;
onTap();
show(context, anchorOffset: Offset(x, y));
}
}

View File

@ -86,6 +86,8 @@ class ViewSectionItem extends StatelessWidget {
}
return ViewDisclosureRegion(
onTap: () =>
context.read<ViewBloc>().add(const ViewEvent.setIsEditing(true)),
onSelected: (action) {
context.read<ViewBloc>().add(const ViewEvent.setIsEditing(false));
_handleAction(context, action);