import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter/material.dart'; const Color cColor = Color.fromARGB(234, 146, 234, 171); class DisplayImage extends StatelessWidget { const DisplayImage({Key? key}) : super(key: key); @override Widget build(BuildContext context) { final color = const Color.fromRGBO(64, 105, 225, 1); return StreamBuilder( stream: FirebaseFirestore.instance .collection('users') .doc(FirebaseAuth.instance.currentUser!.uid) .snapshots(), builder: (context, snapshot) { if (snapshot.hasError) { return Text('Something went wrong'); } if (snapshot.connectionState == ConnectionState.waiting) { return const CircularProgressIndicator(); } final data = snapshot.data!.data() as Map; final imageUrl = data['image_url']; return Center( child: Stack( children: [ buildImage(color, imageUrl), Positioned( child: buildEditIcon(color), right: 4, top: 10, ), ], ), ); }, ); } // Builds Profile Image Widget buildImage(Color color, String? imageUrl) { return CircleAvatar( radius: 75, backgroundColor: cColor, child: CircleAvatar( backgroundImage: imageUrl != null ? NetworkImage(imageUrl) : const NetworkImage( 'https://firebasestorage.googleapis.com/v0/b/your-firebase-storage-url.com/o/admin%2Favatar.jpg?alt=media'), radius: 70, ), ); } // Builds Edit Icon on Profile Picture Widget buildEditIcon(Color color) => buildCircle( all: 8, child: Icon( Icons.edit, color: color, size: 20, ), ); // Builds/Makes Circle for Edit Icon on Profile Picture Widget buildCircle({ required Widget child, required double all, }) => ClipOval( child: Container( padding: EdgeInsets.all(all), color: Colors.white, child: child, ), ); }