import 'package:flutter/material.dart'; import 'animatedTime.dart'; class Timer extends StatefulWidget { final DateTime target; final String? author; final String label; const Timer({Key? key, required this.target, this.author, required this.label}) : super(key: key); @override State createState() => _TimerState(); } class _TimerState extends State { late bool isLocal; @override void initState() { super.initState(); isLocal = widget.author == null; } @override Widget build(BuildContext context) { return ListTile( leading: const Icon(Icons.timer), title: AnimatedTime( callback: () { if(widget.target.isBefore(DateTime.now())) return Duration.zero; return widget.target.difference(DateTime.now()); }, ), trailing: Row( mainAxisSize: MainAxisSize.min, children: [ if(!isLocal) Row( children: [ const Text("5"), IconButton(onPressed: () { }, icon: const Icon(Icons.thumb_up_outlined)), ], ), IconButton(onPressed: () { }, icon: const Icon(Icons.star_outline)) ], ), subtitle: Text("${widget.label}${!isLocal ? "\ngeteilt von ${widget.author}" : ""}"), ); } }