import 'package:ansu_ui/extension/num_extension.dart';
import 'package:flutter/material.dart';

/// ## 弹框菜单
///```dart
/// int result = await showASPopUpMenu<int>(
///   context: context,
///   items: [
///     PopupMenuItem(child: Text('test'), value: 1),
///   ],
/// );
/// ```
Future<T?> showASPopUpMenu<T>({
  required BuildContext context,
  required List<PopupMenuEntry<T>> items,
  T? initValue,
}) async {
  final RenderBox renderBox = context.findRenderObject() as RenderBox;
  Size size = renderBox.size;
  return await showMenu(
    context: context,
    initialValue: initValue,
    position: RelativeRect.fromRect(
      Rect.fromPoints(
        renderBox.localToGlobal(Offset.zero,
            ancestor: Overlay.of(context)!.context.findRenderObject()),
        renderBox.localToGlobal(size.bottomRight(Offset.zero)),
      ),
      Offset.zero & Overlay.of(context)!.context.size!,
    ),
    items: items,
    shape: RoundedRectangleBorder(borderRadius: 10.radius),
  );
}