manager-app/lib/Screens/Kiosk_devices/dropDown_configuration.dart

60 lines
1.8 KiB
Dart

import 'package:flutter/material.dart';
import 'package:manager_app/constants.dart';
import 'package:manager_api_new/api.dart';
class DropDownConfig extends StatefulWidget {
final List<ConfigurationDTO> configurations;
final String selectedConfigurationId;
final ValueChanged<ConfigurationDTO> onChange;
const DropDownConfig({
Key? key,
required this.configurations,
required this.selectedConfigurationId,
required this.onChange,
}) : super(key: key);
@override
_DropDownConfigState createState() => _DropDownConfigState();
}
class _DropDownConfigState extends State<DropDownConfig> {
late ConfigurationDTO configurationDTO;
@override
void initState() {
configurationDTO = widget.configurations.firstWhere((config) => config.id == widget.selectedConfigurationId);
super.initState();
}
@override
Widget build(BuildContext context) {
/*final appContext = Provider.of<AppContext>(context);
Size size = MediaQuery.of(context).size;*/
return DropdownButton<ConfigurationDTO>(
value: configurationDTO,
icon: const Icon(Icons.arrow_downward),
iconSize: 24,
elevation: 16,
style: const TextStyle(color: kBlack),
underline: Container(
height: 2,
color: kPrimaryColor,
),
onChanged: (ConfigurationDTO? newValue) {
if(newValue != null) {
setState(() {
configurationDTO = newValue;
widget.onChange(configurationDTO);
});
}
},
items: widget.configurations.map<DropdownMenuItem<ConfigurationDTO>>((ConfigurationDTO value) {
return DropdownMenuItem<ConfigurationDTO>(
value: value,
child: Text(value.label!, style: TextStyle(fontSize: 20, fontWeight: FontWeight.w400)),
);
}).toList(),
);
}
}