import 'package:flutter/material.dart'; import 'package:frosty/apis/twitch_api.dart'; import 'package:frosty/models/user.dart'; import 'package:frosty/screens/settings/stores/auth_store.dart'; import 'package:frosty/widgets/cached_image.dart'; import 'package:provider/provider.dart'; class ProfilePicture extends StatelessWidget { final String userLogin; final double radius; const ProfilePicture({ Key? key, required this.userLogin, this.radius = 20, }) : super(key: key); @override Widget build(BuildContext context) { final diameter = radius * 2; return ClipOval( child: FutureBuilder( future: context.read().getUser( userLogin: userLogin, headers: context.read().headersTwitch, ), builder: (context, AsyncSnapshot snapshot) { return snapshot.hasData ? FrostyCachedNetworkImage( width: diameter, height: diameter, imageUrl: snapshot.data!.profileImageUrl, placeholder: (context, url) => ColoredBox(color: Colors.grey.shade900), ) : Container( color: Colors.grey.shade900, width: diameter, height: diameter, ); }, ), ); } }