import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:sk_base_mobile/app_theme.dart';
import 'package:sk_base_mobile/util/screen_adaper_util.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 SizedBox(
        width: widget.width,
        height: widget.height,
        child: Icon(Icons.image_not_supported,
            size: ScreenAdaper.sp(100), color: AppTheme.grey),
      );
    }

    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: const BoxDecoration(color: AppTheme.grey),
        child: const CupertinoActivityIndicator(),
      ),
      errorWidget: (context, error, stackTrace) => SizedBox(
        width: widget.width,
        height: widget.height,
        child: Icon(Icons.image_not_supported,
            size: ScreenAdaper.sp(100), color: AppTheme.grey),
      ),
    );
  }
}
