defaultItemBuilder<T, K> static method

ListItemBuilder<T, K> defaultItemBuilder<T, K>(
  1. TListCardTheme? theme,
  2. ItemTextAccessor<T>? itemTitle,
  3. ItemTextAccessor<T>? itemSubTitle,
  4. ItemTextAccessor<T>? itemImageUrl,
  5. ListItemTap<T, K>? onTap,
)

Implementation

static ListItemBuilder<T, K> defaultItemBuilder<T, K>(
  TListCardTheme? theme,
  ItemTextAccessor<T>? itemTitle,
  ItemTextAccessor<T>? itemSubTitle,
  ItemTextAccessor<T>? itemImageUrl,
  ListItemTap<T, K>? onTap,
) {
  return (ctx, item, index) {
    final controller = TListScope.of(ctx).controller;

    TListCard toListCard(TListItem<T, K> item) {
      return TListCard(
        title: itemTitle?.call(item.data) ?? '',
        subTitle: itemSubTitle?.call(item.data),
        imageUrl: itemImageUrl?.call(item.data),
        isSelected: item.isSelected,
        isExpanded: item.isExpanded,
        level: item.level,
        theme: theme,
        multiple: controller.isMultiSelect,
        onTap: () => onTap?.call(item),
        children: item.children?.map((child) => toListCard(child)).toList(),
      );
    }

    return toListCard(item);
  };
}