@@ -3,8 +3,9 @@ import 'package:cloudinary_dart/transformation/transformation.dart';
33import 'package:flutter/widgets.dart' ;
44import 'cloudinary_context.dart' ;
55
6- class CldImageWidget extends StatefulWidget {
7- late final CldImage image;
6+ class CldImageWidget extends Image {
7+ late final CldImage cldImage;
8+
89 CldImageWidget (
910 {required String publicId,
1011 super .key,
@@ -13,25 +14,63 @@ class CldImageWidget extends StatefulWidget {
1314 String ? urlSuffix,
1415 String ? assetType,
1516 String ? deliveryType,
16- Transformation ? transformation}) {
17- image = CloudinaryContext .cloudinary.image (publicId);
18- ((version != null ) ? image.version (version) : null );
19- ((extension != null ) ? image.extension (extension ) : null );
20- ((urlSuffix != null ) ? image.urlSuffix (urlSuffix) : null );
21- ((assetType != null ) ? image.assetType (assetType) : null );
22- ((deliveryType != null ) ? image.deliveryType (deliveryType) : null );
23- ((transformation != null ) ? image.transformation (transformation) : null );
17+ Transformation ? transformation,
18+ ImageFrameBuilder ? frameBuilder,
19+ ImageLoadingBuilder ? loadingBuilder,
20+ ImageErrorWidgetBuilder ? errorBuilder,
21+ String ? semanticLabel,
22+ bool excludeFromSemantics = false ,
23+ double ? width,
24+ double ? height,
25+ Color ? color,
26+ Animation <double >? opacity,
27+ BlendMode ? colorBlendMode,
28+ BoxFit ? fit,
29+ AlignmentGeometry alignment = Alignment .center,
30+ ImageRepeat repeat = ImageRepeat .noRepeat,
31+ Rect ? centerSlice,
32+ bool matchTextDirection = false ,
33+ bool gaplessPlayback = false ,
34+ bool isAntiAlias = false ,
35+ FilterQuality filterQuality = FilterQuality .low})
36+ : super (
37+ image: NetworkImage ('' ),
38+ frameBuilder: frameBuilder,
39+ loadingBuilder: loadingBuilder,
40+ errorBuilder: errorBuilder,
41+ semanticLabel: semanticLabel,
42+ excludeFromSemantics: excludeFromSemantics,
43+ width: width,
44+ height: height,
45+ color: color,
46+ opacity: opacity,
47+ colorBlendMode: colorBlendMode,
48+ fit: fit,
49+ alignment: alignment,
50+ repeat: repeat,
51+ centerSlice: centerSlice,
52+ matchTextDirection: matchTextDirection,
53+ gaplessPlayback: gaplessPlayback,
54+ isAntiAlias: isAntiAlias,
55+ filterQuality: filterQuality) {
56+ cldImage = CloudinaryContext .cloudinary.image (publicId);
57+ ((version != null ) ? cldImage.version (version) : null );
58+ ((extension != null ) ? cldImage.extension (extension ) : null );
59+ ((urlSuffix != null ) ? cldImage.urlSuffix (urlSuffix) : null );
60+ ((assetType != null ) ? cldImage.assetType (assetType) : null );
61+ ((deliveryType != null ) ? cldImage.deliveryType (deliveryType) : null );
62+ ((transformation != null ) ? cldImage.transformation (transformation) : null );
2463 }
2564
2665 @override
27- State <StatefulWidget > createState () {
66+ State <Image > createState () {
2867 return _CldImageState ();
2968 }
3069}
3170
3271class _CldImageState extends State <CldImageWidget > {
3372 @override
3473 Widget build (BuildContext context) {
35- return Image .network (widget.image .toString ());
74+ return Image .network (widget.cldImage .toString ());
3675 }
3776}
0 commit comments