Loading lib/common/widget/cached_image_builder.dart +16 −11 Original line number Diff line number Diff line Loading @@ -4,23 +4,28 @@ import 'package:flutter/material.dart'; class CachedImageBuilder extends StatelessWidget { final String _url; final BoxFit? fit; final ProgressIndicator? progressIndicator; final double? width; final double? height; const CachedImageBuilder({super.key, required url, this.fit, this.progressIndicator}) : _url = url; const CachedImageBuilder( {super.key, required url, this.fit, this.width, this.height}) : _url = url; @override Widget build(BuildContext context) { return CachedNetworkImage( imageUrl: _url, placeholder: (context, url) => Center( child: SizedBox( width: 50, // adjust width height: 50, // adjust height child: progressIndicator ?? CircularProgressIndicator(), return Container( width: width, height: height, decoration: BoxDecoration( image: DecorationImage( image: CachedNetworkImageProvider(_url), fit: fit ?? BoxFit.cover, ), ), errorWidget: (context, url, error) => Icon(Icons.error), fit: fit ?? BoxFit.cover, ); } } lib/pages/collections/postcard_detail.dart +7 −13 Original line number Diff line number Diff line import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:stamped/common/widget/cached_image_builder.dart'; import 'package:stamped/common/widget/page_template.dart'; import 'package:stamped/data/models/postcard.dart'; import 'package:stamped/pages/collections/postcard_detial_back.dart'; Loading @@ -18,15 +18,9 @@ class PostcardDetail extends StatelessWidget { onTap: () { Navigator.of(context).push(_createRoute()); }, child: Container( decoration: BoxDecoration( image: DecorationImage( image: CachedNetworkImageProvider(postcard.imagePath), fit: BoxFit.cover, ), ), ), ), child: CachedImageBuilder( url: postcard.imagePath, )), ); } Loading lib/pages/collections/stamp_detail.dart +3 −9 Original line number Diff line number Diff line import 'package:flutter/material.dart'; import 'package:stamped/common/widget/cached_image_builder.dart'; import 'package:stamped/common/widget/page_template.dart'; class StampDetail extends StatelessWidget { Loading @@ -13,14 +14,7 @@ class StampDetail extends StatelessWidget { padding: 0, child: GestureDetector( onTap: () => Navigator.pop(context), child: Container( decoration: BoxDecoration( image: DecorationImage( image: NetworkImage(_url), fit: BoxFit.contain, ), ), ), child: CachedImageBuilder(url: _url, fit: BoxFit.contain), ), ); } Loading lib/pages/collections/stamp_tile.dart +11 −12 Original line number Diff line number Diff line import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:stamped/common/widget/cached_image_builder.dart'; import 'package:stamped/pages/collections/stamp_detail.dart'; class StampTile extends StatelessWidget { Loading @@ -8,7 +8,12 @@ class StampTile extends StatelessWidget { final double? width; final double padding; const StampTile({super.key, required this.url, this.height, this.width, this.padding = 8.0}); const StampTile( {super.key, required this.url, this.height, this.width, this.padding = 8.0}); static StampTile fromData(String data) { return StampTile(url: data); Loading @@ -22,19 +27,13 @@ class StampTile extends StatelessWidget { onTap: () { Navigator.push( context, MaterialPageRoute( builder: (context) => StampDetail(url: url)), MaterialPageRoute(builder: (context) => StampDetail(url: url)), ); }, child: Container( height: height, width: width ?? MediaQuery.of(context).size.width / 2 - 40, decoration: BoxDecoration( image: DecorationImage( image: CachedNetworkImageProvider(url), child: CachedImageBuilder( url: url, fit: BoxFit.contain, ), ), width: width ?? MediaQuery.of(context).size.width / 2 - 40, ), ), ); Loading Loading
lib/common/widget/cached_image_builder.dart +16 −11 Original line number Diff line number Diff line Loading @@ -4,23 +4,28 @@ import 'package:flutter/material.dart'; class CachedImageBuilder extends StatelessWidget { final String _url; final BoxFit? fit; final ProgressIndicator? progressIndicator; final double? width; final double? height; const CachedImageBuilder({super.key, required url, this.fit, this.progressIndicator}) : _url = url; const CachedImageBuilder( {super.key, required url, this.fit, this.width, this.height}) : _url = url; @override Widget build(BuildContext context) { return CachedNetworkImage( imageUrl: _url, placeholder: (context, url) => Center( child: SizedBox( width: 50, // adjust width height: 50, // adjust height child: progressIndicator ?? CircularProgressIndicator(), return Container( width: width, height: height, decoration: BoxDecoration( image: DecorationImage( image: CachedNetworkImageProvider(_url), fit: fit ?? BoxFit.cover, ), ), errorWidget: (context, url, error) => Icon(Icons.error), fit: fit ?? BoxFit.cover, ); } }
lib/pages/collections/postcard_detail.dart +7 −13 Original line number Diff line number Diff line import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:stamped/common/widget/cached_image_builder.dart'; import 'package:stamped/common/widget/page_template.dart'; import 'package:stamped/data/models/postcard.dart'; import 'package:stamped/pages/collections/postcard_detial_back.dart'; Loading @@ -18,15 +18,9 @@ class PostcardDetail extends StatelessWidget { onTap: () { Navigator.of(context).push(_createRoute()); }, child: Container( decoration: BoxDecoration( image: DecorationImage( image: CachedNetworkImageProvider(postcard.imagePath), fit: BoxFit.cover, ), ), ), ), child: CachedImageBuilder( url: postcard.imagePath, )), ); } Loading
lib/pages/collections/stamp_detail.dart +3 −9 Original line number Diff line number Diff line import 'package:flutter/material.dart'; import 'package:stamped/common/widget/cached_image_builder.dart'; import 'package:stamped/common/widget/page_template.dart'; class StampDetail extends StatelessWidget { Loading @@ -13,14 +14,7 @@ class StampDetail extends StatelessWidget { padding: 0, child: GestureDetector( onTap: () => Navigator.pop(context), child: Container( decoration: BoxDecoration( image: DecorationImage( image: NetworkImage(_url), fit: BoxFit.contain, ), ), ), child: CachedImageBuilder(url: _url, fit: BoxFit.contain), ), ); } Loading
lib/pages/collections/stamp_tile.dart +11 −12 Original line number Diff line number Diff line import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:stamped/common/widget/cached_image_builder.dart'; import 'package:stamped/pages/collections/stamp_detail.dart'; class StampTile extends StatelessWidget { Loading @@ -8,7 +8,12 @@ class StampTile extends StatelessWidget { final double? width; final double padding; const StampTile({super.key, required this.url, this.height, this.width, this.padding = 8.0}); const StampTile( {super.key, required this.url, this.height, this.width, this.padding = 8.0}); static StampTile fromData(String data) { return StampTile(url: data); Loading @@ -22,19 +27,13 @@ class StampTile extends StatelessWidget { onTap: () { Navigator.push( context, MaterialPageRoute( builder: (context) => StampDetail(url: url)), MaterialPageRoute(builder: (context) => StampDetail(url: url)), ); }, child: Container( height: height, width: width ?? MediaQuery.of(context).size.width / 2 - 40, decoration: BoxDecoration( image: DecorationImage( image: CachedNetworkImageProvider(url), child: CachedImageBuilder( url: url, fit: BoxFit.contain, ), ), width: width ?? MediaQuery.of(context).size.width / 2 - 40, ), ), ); Loading