import 'dart:async'; import 'package:flutter/material.dart'; import '../utils/dateutils.dart'; class AppBottomFocusModeStatus extends StatefulWidget { final DateTime? disableTime; const AppBottomFocusModeStatus({super.key, required this.disableTime}); @override State createState() => _AppBottomFocusModeStatusState(); } class _AppBottomFocusModeStatusState extends State { Timer? updateTimer; Duration? timeUntil; @override void initState() { super.initState(); _updateTimeUntil(); updateTimer = Timer.periodic(Duration(seconds: 1), (_) { setState(() { _updateTimeUntil(); }); }); } @override void dispose() { print('Disposing'); updateTimer?.cancel(); super.dispose(); } void _updateTimeUntil() { timeUntil = widget.disableTime?.difference(DateTime.now()); } @override Widget build(BuildContext context) { final title = timeUntil == null ? 'Focus Mode' : 'Focus Mode for ${timeUntil!.simpleLabel}'; return Text( title, style: Theme.of(context).textTheme.headlineSmall!.copyWith( fontWeight: FontWeight.bold, ), ); } }