import 'package:flutter/material.dart'; import 'package:my_attendance/services/settings_service.dart'; import 'package:provider/provider.dart'; class SettingsDialog extends StatefulWidget { const SettingsDialog({super.key}); @override State createState() => _SettingsDialogState(); } class _SettingsDialogState extends State { late final TextEditingController _hoursController; late final TextEditingController _minutesController; @override void initState() { super.initState(); final settingsService = Provider.of( context, listen: false, ); final currentDuration = settingsService.settings.dailyWorkDuration; _hoursController = TextEditingController( text: currentDuration.inHours.toString(), ); _minutesController = TextEditingController( text: currentDuration.inMinutes.remainder(60).toString(), ); } @override void dispose() { _hoursController.dispose(); _minutesController.dispose(); super.dispose(); } void _save() { final hours = int.tryParse(_hoursController.text) ?? 0; final minutes = int.tryParse(_minutesController.text) ?? 0; final newDuration = Duration(hours: hours, minutes: minutes); Provider.of( context, listen: false, ).saveWorkDuration(newDuration); Navigator.of(context).pop(); } @override Widget build(BuildContext context) { return AlertDialog( title: const Text('Set Daily Work Hours'), content: Column( mainAxisSize: MainAxisSize.min, children: [ Row( children: [ Expanded( child: TextField( controller: _hoursController, keyboardType: TextInputType.number, decoration: const InputDecoration( labelText: 'Hours', border: OutlineInputBorder(), ), ), ), const SizedBox(width: 16), Expanded( child: TextField( controller: _minutesController, keyboardType: TextInputType.number, decoration: const InputDecoration( labelText: 'Minutes', border: OutlineInputBorder(), ), ), ), ], ), ], ), actions: [ TextButton( onPressed: () => Navigator.of(context).pop(), child: const Text('Cancel'), ), ElevatedButton(onPressed: _save, child: const Text('Save')), ], ); } }