You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			42 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Dart
		
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Dart
		
	
import 'dart:convert';
 | 
						|
 | 
						|
import 'package:flutter/material.dart';
 | 
						|
 | 
						|
class CircularAvatar extends StatelessWidget {
 | 
						|
  final String? url;
 | 
						|
  final double radius;
 | 
						|
  final double width;
 | 
						|
  final double height;
 | 
						|
  final bool isImageBase64;
 | 
						|
 | 
						|
  CircularAvatar({Key? key, this.radius = 70.0, this.width = 70, this.height = 60, this.url, this.isImageBase64 = false}) : super(key: key);
 | 
						|
 | 
						|
  @override
 | 
						|
  Widget build(BuildContext context) {
 | 
						|
    return Container(
 | 
						|
      width: width,
 | 
						|
      height: height,
 | 
						|
      decoration: BoxDecoration(
 | 
						|
        shape: BoxShape.circle,
 | 
						|
        image: isImageBase64
 | 
						|
            ? null
 | 
						|
            : DecorationImage(
 | 
						|
                fit: BoxFit.cover,
 | 
						|
                image: NetworkImage(url ?? "https://cdn4.iconfinder.com/data/icons/professions-2-2/151/89-512.png"),
 | 
						|
              ),
 | 
						|
      ),
 | 
						|
      child: isImageBase64 ? imageFromBase64String(url!) : null,
 | 
						|
    );
 | 
						|
  }
 | 
						|
 | 
						|
  Widget imageFromBase64String(String base64String) {
 | 
						|
    return ClipRRect(
 | 
						|
      borderRadius: BorderRadius.circular(100),
 | 
						|
      child: Image.memory(
 | 
						|
        base64Decode(base64String),
 | 
						|
        fit: BoxFit.cover,
 | 
						|
      ),
 | 
						|
    );
 | 
						|
  }
 | 
						|
}
 |