mirror of
https://github.com/revanced/revanced-manager
synced 2024-05-14 13:56:57 +02:00
37 lines
1.0 KiB
Dart
37 lines
1.0 KiB
Dart
|
import 'package:flutter/material.dart';
|
||
|
|
||
|
class CustomPopupMenu extends StatelessWidget {
|
||
|
final Function(dynamic) onSelected;
|
||
|
final Map<int, Widget> children;
|
||
|
|
||
|
const CustomPopupMenu({
|
||
|
Key? key,
|
||
|
required this.onSelected,
|
||
|
required this.children,
|
||
|
}) : super(key: key);
|
||
|
|
||
|
@override
|
||
|
Widget build(BuildContext context) {
|
||
|
return Theme(
|
||
|
data: Theme.of(context).copyWith(useMaterial3: false),
|
||
|
child: PopupMenuButton<int>(
|
||
|
onSelected: onSelected,
|
||
|
itemBuilder: (context) => children.entries
|
||
|
.map(
|
||
|
(entry) => PopupMenuItem<int>(
|
||
|
padding: const EdgeInsets.all(16.0).copyWith(right: 20),
|
||
|
value: entry.key,
|
||
|
child: entry.value,
|
||
|
),
|
||
|
)
|
||
|
.toList(),
|
||
|
shape: RoundedRectangleBorder(
|
||
|
borderRadius: BorderRadius.circular(24),
|
||
|
),
|
||
|
color: Theme.of(context).colorScheme.secondaryContainer,
|
||
|
position: PopupMenuPosition.under,
|
||
|
),
|
||
|
);
|
||
|
}
|
||
|
}
|