import 'package:flutter/material.dart'; import 'package:gallery/data_provider/data_provider.dart'; import 'package:gallery/utils/tile_size.dart'; class ImageTile extends StatelessWidget { const ImageTile( {Key? key, this.onClick, this.child, this.imageUri, this.dtaProvider}) : super(key: key); final Function? onClick; final Widget? child; final Uri? imageUri; final DataProvider? dtaProvider; @override Widget build(BuildContext context) { return GestureDetector( onTap: () { onClick?.call(); }, child: Container( padding: const EdgeInsets.all(3), child: Container( decoration: imageUri == null ? BoxDecoration( color: Colors.white, borderRadius: BorderRadius.all( Radius.circular(calcTileMaxWidth() / 30)), boxShadow: [ BoxShadow( color: Colors.black12, spreadRadius: calcTileMaxWidth() / 150, blurRadius: calcTileMaxWidth() / 60), ]) : BoxDecoration( image: DecorationImage( fit: BoxFit.cover, image: dtaProvider!.getImageProvider(imageUri!), ), borderRadius: BorderRadius.all( Radius.circular(calcTileMaxWidth() / 30)), boxShadow: [ BoxShadow( color: Colors.black12, spreadRadius: calcTileMaxWidth() / 150, blurRadius: calcTileMaxWidth() / 60), ]), child: child)), ); } }