import 'package:flutter/material.dart'; import '../../formula_models.dart'; import '../../corpus.dart'; class UnitDropdown extends StatelessWidget { final UnitCorpus corpus; final VariableSpec variable; final String? selectedUnit; final ValueChanged onUnitChanged; const UnitDropdown({ super.key, required this.corpus, required this.variable, required this.selectedUnit, required this.onUnitChanged, }); @override Widget build(BuildContext context) { final availableUnits = corpus.allUnits().where((unit) => unit.baseUnit == variable.magnitude).toList(); return DropdownButton( value: selectedUnit ?? variable.magnitude, icon: const Icon(Icons.arrow_drop_down), elevation: 16, style: TextStyle(color: Theme.of(context).colorScheme.primary, fontSize: 14), underline: Container(height: 1, color: Theme.of(context).dividerColor), onChanged: onUnitChanged, items: availableUnits.map>((UnitSpec unit) { return DropdownMenuItem( value: unit.name, child: Text(unit.symbol, style: const TextStyle(fontSize: 14)), ); }).toList(), ); } }