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.
		
		
		
		
		
			
		
			
				
	
	
		
			121 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Dart
		
	
			
		
		
	
	
			121 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Dart
		
	
import 'package:doctor_app_flutter/config/size_config.dart';
 | 
						|
import 'package:doctor_app_flutter/screens/home/home_page_card.dart';
 | 
						|
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
 | 
						|
import 'package:flutter/material.dart';
 | 
						|
 | 
						|
class HomePatientCard extends StatelessWidget {
 | 
						|
  final Color backgroundColor;
 | 
						|
  final IconData cardIcon;
 | 
						|
  final String cardIconImage;
 | 
						|
  final Color backgroundIconColor;
 | 
						|
  final String text;
 | 
						|
  final Color textColor;
 | 
						|
  final VoidCallback onTap;
 | 
						|
  final double iconSize;
 | 
						|
  final LinearGradient gradient;
 | 
						|
 | 
						|
  HomePatientCard({
 | 
						|
    this.backgroundColor,
 | 
						|
    this.backgroundIconColor,
 | 
						|
    this.cardIcon,
 | 
						|
    this.cardIconImage,
 | 
						|
    this.text,
 | 
						|
    this.textColor,
 | 
						|
    this.onTap,
 | 
						|
    this.iconSize = 30,
 | 
						|
    this.gradient,
 | 
						|
  });
 | 
						|
 | 
						|
  @override
 | 
						|
  Widget build(BuildContext context) {
 | 
						|
    double width = SizeConfig.heightMultiplier *
 | 
						|
        (SizeConfig.isHeightVeryShort
 | 
						|
            ? 16
 | 
						|
            : SizeConfig.isHeightLarge
 | 
						|
                ? 15
 | 
						|
                : 13);
 | 
						|
    return HomePageCard(
 | 
						|
      color: backgroundColor,
 | 
						|
      width: width,
 | 
						|
      gradient: gradient,
 | 
						|
      margin: EdgeInsets.all(SizeConfig.widthMultiplier * 1.121),
 | 
						|
      child: Container(
 | 
						|
        padding: EdgeInsets.all(8),
 | 
						|
        child: Column(
 | 
						|
          mainAxisAlignment: MainAxisAlignment.center,
 | 
						|
          crossAxisAlignment: CrossAxisAlignment.start,
 | 
						|
          children: [
 | 
						|
            Expanded(
 | 
						|
              child: Stack(
 | 
						|
                children: [
 | 
						|
                  Container(
 | 
						|
                    margin: EdgeInsets.only(top: 18, left: 10),
 | 
						|
                    color: Colors.transparent,
 | 
						|
                    child: cardIcon != null
 | 
						|
                        ? Icon(
 | 
						|
                            cardIcon,
 | 
						|
                            size: iconSize * 2,
 | 
						|
                            color: backgroundIconColor,
 | 
						|
                          )
 | 
						|
                        : IconButton(
 | 
						|
                            icon: Image.asset(
 | 
						|
                              'assets/images/patient_register.png',
 | 
						|
                              width: iconSize * 2,
 | 
						|
                              height: iconSize * 2,
 | 
						|
                              fit: BoxFit.fill,
 | 
						|
                            ),
 | 
						|
                            iconSize: iconSize * 2,
 | 
						|
                            color: backgroundIconColor,
 | 
						|
                            onPressed: () => null,
 | 
						|
                          ),
 | 
						|
                  ),
 | 
						|
                  Container(
 | 
						|
                    child: Column(
 | 
						|
                      mainAxisAlignment: MainAxisAlignment.end,
 | 
						|
                      crossAxisAlignment: CrossAxisAlignment.start,
 | 
						|
                      children: [
 | 
						|
                        cardIcon != null
 | 
						|
                            ? Icon(
 | 
						|
                                cardIcon,
 | 
						|
                                size: SizeConfig.getWidthMultiplier(
 | 
						|
                                        width: width) *
 | 
						|
                                    30,
 | 
						|
                                color: textColor,
 | 
						|
                              )
 | 
						|
                            : Image.asset(
 | 
						|
                                cardIconImage,
 | 
						|
                                height: iconSize,
 | 
						|
                                width: iconSize,
 | 
						|
                              ),
 | 
						|
                        SizedBox(
 | 
						|
                          height: 4,
 | 
						|
                        ),
 | 
						|
                      ],
 | 
						|
                    ),
 | 
						|
                  ),
 | 
						|
                ],
 | 
						|
              ),
 | 
						|
            ),
 | 
						|
            Expanded(
 | 
						|
              child: Container(
 | 
						|
                child: AppText(
 | 
						|
                  text,
 | 
						|
                  color: textColor,
 | 
						|
                  textAlign: TextAlign.start,
 | 
						|
                  letterSpacing: -0.33,
 | 
						|
                  fontWeight: FontWeight.w600,
 | 
						|
                  fontSize:
 | 
						|
                      SizeConfig.getTextMultiplierBasedOnWidth(width: width) *
 | 
						|
                          (SizeConfig.isHeightVeryShort ? 11 : 10),
 | 
						|
                ),
 | 
						|
              ),
 | 
						|
            ),
 | 
						|
          ],
 | 
						|
        ),
 | 
						|
      ),
 | 
						|
      hasBorder: false,
 | 
						|
      onTap: onTap,
 | 
						|
    );
 | 
						|
  }
 | 
						|
}
 |