customTile method

Widget customTile({
  1. required dynamic onTap({
    1. required String key,
    2. required String value,
    }),
  2. required String? key,
  3. required String? value,
  4. String? selectedValue,
})

Implementation

Widget customTile({
  required Function({required String key, required String value}) onTap,
  required String? key,
  required String? value,
  String? selectedValue,
}) {
  final bool isSelected = selectedValue != null && selectedValue == value;
  return InkWell(
    onTap: () => onTap(key: key ?? "", value: value ?? ""),
    borderRadius: BorderRadius.circular(10),
    child: Container(
      padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 13),
      decoration: BoxDecoration(
        color: isSelected
            ? AppColors.primaryColor().withOpacity(0.07)
            : AppColors.white,
        borderRadius: BorderRadius.circular(10),
        border: Border.all(
          color: isSelected ? AppColors.primaryColor() : AppColors.greyD0,
          width: isSelected ? 1.5 : 1,
        ),
      ),
      child: Row(
        children: [
          Icon(
            Icons.list_alt_outlined,
            color: isSelected ? AppColors.primaryColor() : AppColors.black10,
            size: 18,
          ),
          16.w,
          Expanded(
            child: Text(key ?? "",
                style: isSelected
                    ? Styles.tsPrimaryBold12()
                    : Styles.tsBlack3BMedium12()),
          ),
          if (isSelected)
            Icon(
              Icons.check_circle_rounded,
              color: AppColors.primaryColor(),
              size: 18,
            ),
        ],
      ),
    ),
  );
}