Watch
1
0
Fork
You've already forked nexus
0
forked from Nexus/nexus
nexus/lib/widgets/adaptive_menu_button.dart

21 lines
633 B
Dart

import "package:material_ui/material_ui.dart";
import "package:nexus/helpers/extensions/show_adaptive_menu.dart";
/// Like [PopupMenuButton], but shows a bottom sheet on mobile.
class const AdaptiveMenuButton({
required final Widget icon,
required final List<PopupMenuEntry> Function(BuildContext context)
itemBuilder,
final String? tooltip,
final bool enabled = true,
super.key,
}) extends StatelessWidget {
@override
Widget build(BuildContext context) => IconButton(
icon: icon,
tooltip: tooltip,
onPressed: enabled
? () => context.showAdaptiveMenu(itemBuilder(context))
: null,
);
}