import 'package:flutter/widgets.dart'; import 'package:git_touch/models/theme.dart'; import 'package:git_touch/utils/utils.dart'; import 'package:git_touch/widgets/avatar.dart'; import 'package:git_touch/widgets/link.dart'; import 'package:provider/provider.dart'; import 'package:timeago/timeago.dart' as timeago; class CommitItem extends StatelessWidget { final String? url; final String? avatarUrl; final String? avatarLink; final String? message; final String? author; final DateTime? createdAt; final List? widgets; const CommitItem({ required this.url, required this.avatarUrl, required this.avatarLink, required this.message, required this.author, required this.createdAt, this.widgets, }); @override Widget build(BuildContext context) { final theme = Provider.of(context); return LinkWidget( url: url, child: Container( padding: CommonStyle.padding, child: Row( crossAxisAlignment: CrossAxisAlignment.start, children: [ if (avatarUrl != null) ...[ Avatar(url: avatarUrl, linkUrl: avatarLink), const SizedBox(width: 10), ], Expanded( child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( message!, style: TextStyle( fontSize: 17, color: theme.palette.text, ), overflow: TextOverflow.ellipsis, maxLines: 1, ), const SizedBox(height: 4), Row( children: [ Text(author!, style: TextStyle( fontSize: 15, color: theme.palette.primary)), Text( ' committed ${timeago.format(createdAt!)}', style: TextStyle( color: theme.palette.secondaryText, fontSize: 15, ), ), if (widgets != null) ...widgets!, ], ) ], ), ) ], ), ), ); } }