mangayomi/lib/modules/widgets/cover_view_widget.dart
kodjomoustapha 4748f3c699 fix
2024-12-13 10:31:57 +01:00

63 lines
2.1 KiB
Dart

import 'package:flutter/material.dart';
import 'package:mangayomi/utils/extensions/build_context_extensions.dart';
class CoverViewWidget extends StatelessWidget {
final List<Widget> children;
final bool? isLongPressed;
final ImageProvider? image;
final bool isComfortableGrid;
final Widget? bottomTextWidget;
final VoidCallback onTap;
final VoidCallback? onLongPress;
final VoidCallback? onSecondaryTap;
const CoverViewWidget(
{super.key,
required this.children,
this.isComfortableGrid = false,
this.bottomTextWidget,
required this.onTap,
this.image,
this.onLongPress,
this.isLongPressed,
this.onSecondaryTap});
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.all(5),
child: Column(
children: [
Expanded(
child: Material(
borderRadius: BorderRadius.circular(5),
color: Colors.transparent,
clipBehavior: Clip.antiAliasWithSaveLayer,
child: InkWell(
onTap: onTap,
onLongPress: onLongPress,
onSecondaryTap: onSecondaryTap,
child: Container(
color: isLongPressed != null && isLongPressed!
? context.primaryColor.withValues(alpha: 0.4)
: Colors.transparent,
child: image == null
? isComfortableGrid
? Column(
children: [...children, bottomTextWidget!],
)
: Stack(
children: children,
)
: Ink.image(
fit: BoxFit.cover,
image: image!,
child: Stack(children: children),
),
)),
),
),
if (isComfortableGrid) bottomTextWidget!
],
));
}
}