import 'package:flutter/material.dart'; import 'package:resume/services/breakpoints.dart'; class ContentListTile extends StatelessWidget { const ContentListTile( {super.key, this.name, this.location, this.title, this.description, this.startDate, this.endDate}); final String? name; final String? location; final String? title; final String? description; final String? startDate; final String? endDate; @override Widget build(BuildContext context) { final width = MediaQuery.of(context).size.width; return ListTile( contentPadding: const EdgeInsets.all(0), title: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( mainAxisAlignment: MainAxisAlignment.start, children: [ if (name != null) Text(name!), if (location != null) Text(', $location'), if (title != null && Breakpoints.xl < width) Text(' - $title'), ], ), if (title != null && Breakpoints.xl >= width) Text('$title'), ], ), titleAlignment: ListTileTitleAlignment.titleHeight, subtitle: description != null ? Text(description!) : null, trailing: startDate != null && endDate != null ? Text(_getTimeString(startDate!, endDate!)) : null, ); } String _getTimeString(String startDate, String endDate) { final firstDate = DateTime.parse('$startDate-01'); final secondDate = DateTime.parse('$endDate-01'); return '${months[firstDate.month - 1]} ${firstDate.year} - ${months[secondDate.month - 1]} ${secondDate.year}'; } static const months = [ 'Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'July', 'August', 'September', 'Oktober', 'November', 'Dezember' ]; }