fluffychat/lib/pangea/common/widgets/full_width_dialog.dart
2025-08-06 15:18:10 -04:00

57 lines
1.5 KiB
Dart

import 'dart:ui';
import 'package:flutter/material.dart';
import 'package:fluffychat/config/themes.dart';
class FullWidthDialog extends StatelessWidget {
final Widget dialogContent;
final double maxWidth;
final double maxHeight;
final Color? backgroundColor;
const FullWidthDialog({
required this.dialogContent,
required this.maxWidth,
required this.maxHeight,
this.backgroundColor,
super.key,
});
@override
Widget build(BuildContext context) {
final isColumnMode = FluffyThemes.isColumnMode(context);
final content = AnimatedSize(
duration: FluffyThemes.animationDuration,
child: ConstrainedBox(
constraints: isColumnMode
? BoxConstraints(
maxWidth: maxWidth,
maxHeight: maxHeight,
)
: BoxConstraints(
maxWidth: MediaQuery.of(context).size.width,
maxHeight: MediaQuery.of(context).size.height,
),
child: ClipRRect(
borderRadius:
isColumnMode ? BorderRadius.circular(20.0) : BorderRadius.zero,
child: dialogContent,
),
),
);
return BackdropFilter(
filter: ImageFilter.blur(sigmaX: 2.5, sigmaY: 2.5),
child: isColumnMode
? Dialog(
backgroundColor: backgroundColor,
child: content,
)
: Dialog.fullscreen(
backgroundColor: backgroundColor,
child: content,
),
);
}
}