Freekake/lib/components/collection_container copy.dart
2025-03-17 14:54:44 +07:00

106 lines
3.2 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_svg/svg.dart';
class CollectionContainer extends StatelessWidget {
final String? label;
final String? imagesrc;
final String? imageSvg;
final double? width;
final double? height;
final VoidCallback onTapAc;
final Color? textColor;
const CollectionContainer({
super.key,
this.label,
this.imagesrc,
this.width,
this.height,
required this.onTapAc,
this.textColor,
this.imageSvg,
});
@override
Widget build(BuildContext context) {
return Container(
width: width ?? 130,
height: height ?? 150,
decoration: BoxDecoration(
// color: const Color.fromARGB(26, 24, 24, 180),
color: Colors.grey.withOpacity(0),
borderRadius: BorderRadius.circular(10),
// boxShadow: [
// BoxShadow(
// // color: Colors.grey.withOpacity(1),
// spreadRadius: 1,
// blurRadius: 5,
// offset: Offset(0, 3), // Changes position of shadow
// ),
// ],
),
child: GestureDetector(
onTap: onTapAc,
child: Card(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10.0),
),
elevation: 5,
color: const Color.fromARGB(255, 255, 255, 255).withOpacity(0.5),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
ClipRRect(
borderRadius: BorderRadius.circular(12),
child:
imageSvg != null && imageSvg!.isNotEmpty
? SvgPicture.asset(
imageSvg!,
width: 60,
height: 60,
colorFilter: const ColorFilter.mode(
Colors.white,
BlendMode.srcIn,
),
)
: imagesrc != null && imagesrc!.isNotEmpty
? Image.asset(
imagesrc!,
width: 60,
// height: 60,
fit: BoxFit.cover,
)
: const SizedBox(
width: 60,
height: 60,
child: Center(
child: Icon(
Icons.image_not_supported,
color: Colors.white,
),
),
),
),
SizedBox(height: 8),
Positioned(
bottom: 0,
child: Container(
// color: Colors.amber,
child: Text(
label ?? '',
style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.bold,
color: textColor,
),
),
),
),
],
),
),
),
);
}
}