Initial commit

This commit is contained in:
admin1
2026-07-14 11:11:36 +08:00
commit 656499cf94
604 changed files with 119518 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
import 'dart:async';
import 'package:flutter/widgets.dart';
import 'package:forui/forui.dart';
List<FItemGroupMixin> autoDismissMenuBuilder(
BuildContext context,
FPopoverController controller,
List<FItemGroupMixin>? menu,
) {
final groups = menu ?? const <FItemGroupMixin>[];
if (groups.isEmpty) return groups;
return [
_AutoDismissMenuGroup(controller: controller, children: groups),
];
}
class _AutoDismissMenuGroup extends StatelessWidget with FItemGroupMixin {
final FPopoverController controller;
final List<FItemGroupMixin> children;
const _AutoDismissMenuGroup({
required this.controller,
required this.children,
});
@override
Widget build(BuildContext context) {
final parent = FInheritedItemCallbacks.maybeOf(context);
return FInheritedItemCallbacks(
onHoverEnter: parent?.onHoverEnter,
onHoverExit: parent?.onHoverExit,
onPress: () {
parent?.onPress?.call();
unawaited(controller.hide());
},
onLongPress: () {
parent?.onLongPress?.call();
unawaited(controller.hide());
},
child: FItemGroup.merge(children: children),
);
}
}