import 'package:flutter/material.dart'; import 'package:sendtrain/database/database.dart'; import 'package:sendtrain/extensions/string_extensions.dart'; import 'package:sendtrain/helpers/date_helpers.dart'; import 'package:sendtrain/helpers/media_helpers.dart'; import 'package:sendtrain/widgets/builders/dialogs.dart'; import 'package:sendtrain/widgets/sessions/session_view.dart'; class SessionCardSmall extends StatefulWidget { const SessionCardSmall( {super.key, required this.session, required this.mediaItems}); final Session session; final List mediaItems; @override State createState() => _SessionCardSmallState(); } class _SessionCardSmallState extends State { @override Widget build(BuildContext context) { final Session session = widget.session; final List mediaItems = widget.mediaItems; return Card( color: (session.status == SessionStatus.started) ? Theme.of(context).colorScheme.primaryContainer : Theme.of(context).colorScheme.surfaceContainerLow, child: InkWell( // overlayColor: MaterialStateColor(Colors.deepPurple as int), splashColor: Colors.deepPurple, borderRadius: const BorderRadius.all(Radius.elliptical(10, 10)), onTap: () => showGenericDialog(SessionView(session: session), context), child: Container( decoration: BoxDecoration( // color: const Color.fromARGB(47, 0, 0, 0), borderRadius: BorderRadius.circular(10), image: DecorationImage( colorFilter: ColorFilter.mode( Color.fromARGB(220, 41, 39, 39), BlendMode.hardLight), image: findMediaByType(mediaItems, 'image'), fit: BoxFit.cover), ), child: Align( alignment: Alignment.center, child: Column( mainAxisSize: MainAxisSize.min, children: [ ListTile( title: Text( maxLines: 3, session.title.toTitleCase(), textAlign: TextAlign.center), subtitle: Text( maxLines: 1, dateFormat.format(session.date as DateTime), textAlign: TextAlign.center), ), ]))))); } }