flutter-freaccess-hub/lib/shared/widgets/carousel_view.dart

33 lines
917 B
Dart

part of '../widgets.dart';
class EnhancedCarouselView<T> extends StatelessWidget {
final Future<List<T?>> Function() generateItems;
final void Function(T, BuildContext) filter;
final Widget Function<T>(T? item) itemBuilder;
const EnhancedCarouselView({
super.key,
required this.generateItems,
required this.filter,
required this.itemBuilder,
});
@override
Widget build(BuildContext context) {
return SizedBox(
height: 120,
child: FutureBuilder<List<T?>>(
future: generateItems(),
builder: (context, snapshot) {
if (!snapshot.hasData) return SizedBox();
return CarouselView(
itemExtent: 100,
onTap: (index) => filter(snapshot.data![index] as T, context),
children:
snapshot.data!.map((item) => itemBuilder(item)).toList(),
);
}),
);
}
}