import 'package:flutter/material.dart';
import '../core/theme/app_colors.dart';
import '../data/app_data_scope.dart';
import '../features/events/event_detail_page.dart';
import '../features/events/events_page.dart';
import '../features/events/event_ui_text.dart';
import '../widgets/remote_image.dart';
class HomeEventsSection extends StatelessWidget {
const HomeEventsSection({super.key});
@override
Widget build(BuildContext context) {
final store = AppDataScope.of(context);
final lang = Localizations.localeOf(context).languageCode;
final t = EventUiText(lang);
if (store.events.isEmpty) return const SizedBox.shrink();
final now = DateTime.now();
final today = store.events.where((e) => e.isOnDay(now)).toList()
..sort((a, b) => a.start.compareTo(b.start));
final list = today.isNotEmpty
? today
: ([...store.events]..sort((a, b) => a.start.compareTo(b.start)))
.take(4)
.toList();
if (list.isEmpty) return const SizedBox.shrink();
return Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
Row(children: [
Expanded(
child:
Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
Text(today.isNotEmpty ? t.todayInWeimar : t.comingUp,
style: Theme.of(context)
.textTheme
.titleLarge
?.copyWith(fontWeight: FontWeight.w900)),
const SizedBox(height: 3),
Text(today.isNotEmpty ? t.eventsToday : t.upcomingEvents,
style: const TextStyle(color: AppColors.mutedInk)),
])),
TextButton(
onPressed: () => Navigator.of(context)
.push(MaterialPageRoute(builder: (_) => const EventsPage())),
child: Text(t.all)),
]),
const SizedBox(height: 12),
SizedBox(
height: 205,
child: ListView.separated(
scrollDirection: Axis.horizontal,
itemCount: list.take(4).length,
separatorBuilder: (_, __) => const SizedBox(width: 11),
itemBuilder: (context, index) {
final event = list[index];
return SizedBox(
width: 230,
child: Material(
color: Colors.white,
borderRadius: BorderRadius.circular(20),
child: InkWell(
borderRadius: BorderRadius.circular(20),
onTap: () => Navigator.of(context).push(
MaterialPageRoute(
builder: (_) =>
EventDetailPage(event: event))),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
RemoteImage(
url: event.imageUrl,
height: 112,
width: double.infinity,
borderRadius: const BorderRadius.vertical(
top: Radius.circular(20)),
fallbackIcon: Icons.event_rounded),
Padding(
padding:
const EdgeInsets.fromLTRB(12, 9, 12, 9),
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Text(
eventHomeMetaLabel(context, event,
isToday: event.isOnDay(now)),
maxLines: 1,
overflow: TextOverflow.ellipsis,
style: const TextStyle(
color: AppColors.heartRed,
fontWeight: FontWeight.w900,
fontSize: 10.5,
letterSpacing: .4)),
const SizedBox(height: 4),
Text(event.title.get(lang),
maxLines: 2,
overflow: TextOverflow.ellipsis,
style: const TextStyle(
fontWeight: FontWeight.w900,
height: 1.1)),
])),
]))));
},
)),
]);
}
}

