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,
              ),
            ],
          ),
        ),
      ),
    ),
  );
}