From 54e40a2abc41036e6dfca03a16c935bd1c40c1a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Gonz=C3=A1lez?= Date: Sun, 14 Sep 2025 16:40:54 +0200 Subject: [PATCH] feat: enable auto-calculation with real-time input updates Co-authored-by: aider (openrouter/deepseek/deepseek-r1:free) --- lib/ai/formula_screen.dart | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/lib/ai/formula_screen.dart b/lib/ai/formula_screen.dart index af37477..f110077 100644 --- a/lib/ai/formula_screen.dart +++ b/lib/ai/formula_screen.dart @@ -30,18 +30,20 @@ class _FormulaScreenState extends State { @override void initState() { super.initState(); - // Initialize controllers and units + // Initialize controllers and units with listeners for (final input in widget.formula.input) { _inputControllers[input.name] = TextEditingController(); _selectedUnits[input.name] = input.magnitude; + _inputControllers[input.name]!.addListener(_evaluateFormula); } _selectedOutputUnit = widget.formula.output.magnitude; } @override void dispose() { - // Clean up controllers + // Clean up controllers and listeners for (final controller in _inputControllers.values) { + controller.removeListener(_evaluateFormula); controller.dispose(); } super.dispose(); @@ -105,21 +107,11 @@ class _FormulaScreenState extends State { key: _formKey, child: Padding( padding: const EdgeInsets.all(16.0), - child: Column( + child: ListView( children: [ - Expanded( - child: ListView( - children: [ - _buildInputSection(), - const SizedBox(height: 24), - _buildOutputSection(), - ], - ), - ), - ElevatedButton( - onPressed: _evaluateFormula, - child: const Text('Calculate'), - ), + _buildInputSection(), + const SizedBox(height: 24), + _buildOutputSection(), ], ), ),