getSelectionTile method

Widget getSelectionTile(
  1. int index
)

Implementation

Widget getSelectionTile(int index) {
  return Visibility(
    visible: searchKeyWord.isEmpty || list[index].label.toLowerCase().contains(searchKeyWord.toLowerCase()),
    child: Material(
      color: AppTheme.themeColors.themeBlue,
      child: InkWell(
        onTap: list[index].isDisabled ? null : () {
          onItemTap!(list[index].id);
          FocusManager.instance.primaryFocus?.unfocus();
        },
        child: Container(
          height: list[index].isDisabled ? 45 : 41,
          padding: const EdgeInsets.only(left: 20, right: 5),
          color: list[index].isDisabled ? UFUColor.lightGray : UFUColor.transparent,
          child: Row(
            mainAxisAlignment: MainAxisAlignment.spaceBetween,
            children: [
              Expanded(
                child: Column(
                  mainAxisAlignment: MainAxisAlignment.spaceAround,
                  mainAxisSize: MainAxisSize.min,
                  crossAxisAlignment: CrossAxisAlignment.start,
                  children: [
                    Row(
                      crossAxisAlignment: CrossAxisAlignment.center,
                      children: [
                        list[index].child != null
                            ? Container(
                          margin: const EdgeInsets.only(right: 20),
                          child: UFUAvatar(
                            borderColor: list[index].borderColor ??
                                UFUColor.transparent,
                            backgroundColor: list[index].color,
                            size: UFUAvatarSize.small,
                            child: list[index].child,
                          ),
                        )
                            : const SizedBox.shrink(),
                        Flexible(child: Row(
                          children: [
                            if(list[index].prefixLabel != null) ...{
                              UFUText(text: list[index].prefixLabel!, overflow: TextOverflow.ellipsis, fontWeight: UFUFontWeight.medium,),
                            },
                            Flexible(
                                child: UFUText(text: list[index].label,overflow: TextOverflow.ellipsis,),
                            ),
                            if((!(list[index].active ?? true) && showInactiveUserLabel))
                             UFUText(
                              text: ' (Inactive)',
                              textColor: AppTheme.themeColors.red,
                              overflow: TextOverflow.ellipsis,
                            ),
                            if(list[index].suffixLabel != null) ...{
                              const SizedBox(width: 5),
                              UFUText(text: list[index].suffixLabel!, textSize: UFUTextSize.heading4, overflow: TextOverflow.ellipsis, textColor: AppTheme.themeColors.secondaryText),
                            }
                          ],
                        )),
                      ],
                    ),
                    if(list[index].isDisabled) ...{
                      const SizedBox(height: 2,),
                      UFUText(
                        text: list[index].disableMessage ?? '',
                        textColor: AppTheme.themeColors.darkGray,
                        textSize: UFUTextSize.heading5,
                      ),
                    }
                  ],
                ),
              ),
              UFUCheckbox(
                selected: list[index].isSelect,
                onTap: list[index].isDisabled ? null : (value) {
                  onItemTap!(list[index].id);
                },
                disabled: list[index].isDisabled,
                borderColor: AppTheme.themeColors.primary,
                color: AppTheme.themeColors.primary,
                checkColor: AppTheme.themeColors.base,
              )
            ],
          ),
        ),
      ),
    ),
  );
}