53 lines
1.5 KiB
Dart
53 lines
1.5 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:go_router/go_router.dart';
|
|
|
|
class FloatingMenuButton extends StatelessWidget {
|
|
const FloatingMenuButton({this.popupMenuButton, super.key});
|
|
|
|
final PopupMenuButton? popupMenuButton;
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return PositionedDirectional(
|
|
start: 16,
|
|
top: 16,
|
|
child: SafeArea(
|
|
child: Container(
|
|
decoration: BoxDecoration(
|
|
color: Theme.of(context).colorScheme.background,
|
|
borderRadius: BorderRadius.circular(999),
|
|
boxShadow: [
|
|
BoxShadow(
|
|
// check if dark mode
|
|
color: (Theme.of(context).brightness == Brightness.light)
|
|
? Colors.grey.withOpacity(0.5)
|
|
: Colors.black.withOpacity(0.5),
|
|
spreadRadius: 1,
|
|
blurRadius: 7,
|
|
offset: const Offset(0, 3),
|
|
),
|
|
],
|
|
),
|
|
padding: const EdgeInsets.all(8),
|
|
child: Row(
|
|
children: [
|
|
IconButton(
|
|
onPressed: () => context.pop(),
|
|
icon: const Icon(Icons.arrow_back),
|
|
),
|
|
if (popupMenuButton != null)
|
|
Row(
|
|
children: [
|
|
const SizedBox(width: 8),
|
|
popupMenuButton!,
|
|
const SizedBox(width: 8),
|
|
],
|
|
)
|
|
],
|
|
),
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|