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 as TListController<T, K>;

    return TListCard(
      title: itemTitle?.call(item.data) ?? '',
      subTitle: itemSubTitle?.call(item.data),
      imageUrl: itemImageUrl?.call(item.data),
      isSelected: controller.isSelected(item.key),
      isExpanded: controller.isExpanded(item.key),
      level: item.level,
      theme: theme,
      multiple: controller.isMultiSelect,
      hasChildren: item.hasChildren,
      onTap: () {
        if (item.hasChildren) {
          controller.toggleExpansion(item.key);
        }
        onTap?.call(item);
      },
    );
  };
}