feat: product scroll infinity and product category
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:cached_network_image/cached_network_image.dart';
|
||||
import 'package:shimmer/shimmer.dart';
|
||||
|
||||
part 'network_image.dart';
|
||||
@@ -0,0 +1,68 @@
|
||||
part of 'image.dart';
|
||||
|
||||
class AppNetworkImage extends StatelessWidget {
|
||||
final String? url;
|
||||
final double? height;
|
||||
final double? width;
|
||||
final double? borderRadius;
|
||||
final BoxFit? fit;
|
||||
final bool? isCanZoom;
|
||||
final VoidCallback? onTap;
|
||||
|
||||
const AppNetworkImage({
|
||||
super.key,
|
||||
this.url,
|
||||
this.height,
|
||||
this.width,
|
||||
this.borderRadius = 0,
|
||||
this.fit = BoxFit.cover,
|
||||
this.isCanZoom = false,
|
||||
this.onTap,
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
Widget customPhoto(
|
||||
double? heightx,
|
||||
double? widthx,
|
||||
BoxFit? fitx,
|
||||
double? radius,
|
||||
) {
|
||||
return CachedNetworkImage(
|
||||
imageUrl: url.toString(),
|
||||
placeholder: (context, url) => Shimmer.fromColors(
|
||||
baseColor: Colors.grey[300]!,
|
||||
highlightColor: Colors.grey[100]!,
|
||||
child: Container(
|
||||
height: height,
|
||||
width: width,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.grey.shade300,
|
||||
borderRadius: BorderRadius.circular(radius ?? 0),
|
||||
),
|
||||
),
|
||||
),
|
||||
errorWidget: (context, url, error) => Container(
|
||||
height: height,
|
||||
width: width,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.grey.shade200,
|
||||
borderRadius: BorderRadius.circular(radius ?? 0),
|
||||
),
|
||||
child: Icon(Icons.image_outlined, color: Colors.grey.shade400),
|
||||
),
|
||||
height: heightx,
|
||||
width: widthx,
|
||||
fit: fitx,
|
||||
);
|
||||
}
|
||||
|
||||
return GestureDetector(
|
||||
onTap: onTap,
|
||||
child: ClipRRect(
|
||||
borderRadius: BorderRadius.circular(borderRadius!),
|
||||
child: customPhoto(height, width, BoxFit.fill, borderRadius),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user