import 'package:diplomaticquarterapp/uitl/utils_new.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

import '../show_zoom_image_dialog.dart';

/// LargeAvatar
/// [name] the user name
/// [url] the image url
/// [disableProfileView] disable user profile view
/// [radius] the avatar radius
/// [width] the avatar width
/// [height] the avatar height
/// [onTap] on tap function
class LargeAvatar extends StatelessWidget {
  LargeAvatar({Key key, @required this.name, this.url, this.disableProfileView: false, this.radius = 70.0, this.width = 70, this.height = 60, this.onTap, this.isAppointmentAvatar: false}) : super(key: key);

  final String name;
  final String url;
  final bool disableProfileView;
  final bool isAppointmentAvatar;
  final double radius;
  final double width;
  final double height;
  final GestureTapCallback onTap;

  Widget _getAvatar() {
    if (url != null && url.isNotEmpty && Uri.parse(url).isAbsolute) {
      return Center(
        child: ClipRRect(
          borderRadius: BorderRadius.all(Radius.circular(radius)),
          child: Stack(
            alignment: Alignment.center,
            children: [
              Image.network(
                url.trim(),
                fit: BoxFit.fill,
                width: width,
                height: height,
              ),
              if (!disableProfileView && !isAppointmentAvatar)
                Container(
                  child: Icon(Icons.search,size: 18,color: Colors.white,),
                  padding: EdgeInsets.all(6),
                  decoration: containerRadius(Colors.black.withOpacity(0.3), 200),
                )
            ],
          ),
        ),
      );
    } else
      return Center(
          child: Texts(
        name[0].toUpperCase(),
        color: Colors.white,
        fontSize: 18,
      ));
  }

  @override
  Widget build(BuildContext context) {
    return InkWell(
      onTap: disableProfileView
          ? null
          : isAppointmentAvatar ? onTap : () {
              print("ssssss " + url.trim());
              showZoomImageDialog(context, url.trim() ?? "");
            },
      child: Container(
          decoration: BoxDecoration(
            // gradient: LinearGradient(
            //     begin: Alignment(-1, -1),
            //     end: Alignment(1, 1),
            //     colors: [
            //       Colors.grey[100],
            //       Colors.grey[800],
            //     ]),
            // boxShadow: [
            //   BoxShadow(
            //       color: Color.fromRGBO(0, 0, 0, 0.08),
            //       offset: Offset(0.0, 5.0),
            //       blurRadius: 16.0)
            // ],
            borderRadius: BorderRadius.all(Radius.circular(radius)),
          ),
          width: width,
          height: height,
          child: _getAvatar()),
    );
  }
}
