import 'package:flutter/material.dart';
import '../core/theme/app_colors.dart';
import '../models/poi.dart';
import 'remote_image.dart';
class PoiRecommendations extends StatelessWidget {
const PoiRecommendations({
super.key,
required this.items,
required this.languageCode,
required this.onTap,
this.title = 'Passt dazu',
});
final List<Poi> items;
final String languageCode;
final ValueChanged<Poi> onTap;
final String title;
@override
Widget build(BuildContext context) {
if (items.isEmpty) return const SizedBox.shrink();
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(title,
style: Theme.of(context)
.textTheme
.titleLarge
?.copyWith(fontWeight: FontWeight.w900)),
const SizedBox(height: 12),
SizedBox(
height: 150,
child: ListView.separated(
scrollDirection: Axis.horizontal,
itemCount: items.length,
separatorBuilder: (_, __) => const SizedBox(width: 10),
itemBuilder: (context, index) {
final poi = items[index];
return SizedBox(
width: 210,
child: Material(
color: Colors.white,
borderRadius: BorderRadius.circular(18),
child: InkWell(
borderRadius: BorderRadius.circular(18),
onTap: () => onTap(poi),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
RemoteImage(
url: poi.imageUrl,
height: 82,
width: double.infinity,
borderRadius: const BorderRadius.vertical(
top: Radius.circular(18)),
fallbackIcon: Icons.place_outlined),
Padding(
padding: const EdgeInsets.fromLTRB(11, 9, 11, 8),
child: Text(poi.title.get(languageCode),
maxLines: 2,
overflow: TextOverflow.ellipsis,
style: const TextStyle(
fontWeight: FontWeight.w800,
color: AppColors.ink)),
),
],
),
),
),
);
},
),
),
],
);
}
}

