Commit 9f9913df authored by Michal Cikatricis's avatar Michal Cikatricis
Browse files

Feat (home page): reworked cached_image_builder and replaced all images with cached images

parent a22b2959
Loading
Loading
Loading
Loading
+16 −11
Original line number Diff line number Diff line
@@ -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,
    );
  }
}
+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';
@@ -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,
          )),
    );
  }

+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 {
@@ -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),
      ),
    );
  }
+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 {
@@ -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);
@@ -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,
        ),
      ),
    );