diff --git a/lib/widgets/content_list_tile.dart b/lib/widgets/content_list_tile.dart index 5eeb0f0..f594d0e 100644 --- a/lib/widgets/content_list_tile.dart +++ b/lib/widgets/content_list_tile.dart @@ -1,31 +1,60 @@ import 'package:flutter/material.dart'; class ContentListTile extends StatelessWidget { - const ContentListTile({ - super.key, - this.name, - this.location, - this.title, - this.description, - }); + 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) { return ListTile( contentPadding: const EdgeInsets.all(0), title: Row( + mainAxisAlignment: MainAxisAlignment.start, children: [ if (name != null) Text(name!), if (location != null) Text(', $location'), if (title != null) 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 = [ + 'January', + 'February', + 'March', + 'April', + 'May', + 'June', + 'July', + 'August', + 'September', + 'October', + 'November', + 'December' + ]; } diff --git a/lib/widgets/content_widget.dart b/lib/widgets/content_widget.dart index b72a93f..3ed9053 100644 --- a/lib/widgets/content_widget.dart +++ b/lib/widgets/content_widget.dart @@ -38,12 +38,16 @@ class ContentBox extends StatelessWidget { location: data['location'], title: data['title'], description: data['description'], + startDate: data['startDate'], + endDate: data['endDate'], ); case ContentType.education: return ContentListTile( name: data['name'], location: data['location'], title: data['title'], + startDate: data['startDate'], + endDate: data['endDate'], ); case ContentType.skills: return SkillListTile(