import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/cupertino.dart';
import 'package:sk_base_mobile/app_theme.dart';

class FadeInCacheImage extends StatefulWidget {
  final double? width;
  final double? height;
  final String? url;
  final BoxFit? fit;
  bool compress;
  bool canFullscreen;
  FadeInCacheImage(
      {Key? key,
      this.width,
      this.height,
      this.url,
      this.fit = BoxFit.cover,
      this.compress = false,
      this.canFullscreen = false})
      : super(key: key);

  @override
  _FadeInCacheImageState createState() => _FadeInCacheImageState();
}

class _FadeInCacheImageState extends State<FadeInCacheImage> {
  late BuildContext theContext;
  @override
  void initState() {
    super.initState();
  }

  @override
  void dispose() {
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    theContext = context;

    if ((widget.url == null || widget.url == '' || widget.url == 'null')) {
      return Image(
          width: widget.width,
          height: widget.height,
          fit: widget.fit,
          image: AssetImage(
            'assets/images/deer_detail_banner1.jpg',
          ));
    }

    return buildImg(widget.url);
    ;
  }

  // Future getImg() {
  //   return MediaUtil().generateLogoUrl(widget.url);
  // }

  Widget buildImg(String? url) {
    return CachedNetworkImage(
      alignment: Alignment.center,
      imageUrl: url ?? '',
      width: widget.width,
      height: widget.height,
      fit: widget.fit,
      placeholder: (context, url) => Container(
        decoration: BoxDecoration(color: AppTheme.grey),
        child: CupertinoActivityIndicator(),
      ),
      errorWidget: (context, error, stackTrace) => Image(
          image: AssetImage(
        'assets/images/deer_detail_banner1.jpg',
      )),
    );
  }
}
