buildDropdownSetting function

Widget buildDropdownSetting(
  1. StringEnum title,
  2. StringEnum value,
  3. List<StringEnum> items,
  4. dynamic onChanged(
    1. StringEnum
    ),
)

Implementation

Widget buildDropdownSetting(
  StringEnum title,
  StringEnum value,
  List<StringEnum> items,
  Function(StringEnum) onChanged,
) {
  final stringObs = TCICController.instance.getStringObs();
  return Column(
    crossAxisAlignment: CrossAxisAlignment.start,
    children: [
      Text(
        stringObs.getString(title),
        style: const TextStyle(fontSize: 16, fontWeight: FontWeight.w500),
      ),
      const SizedBox(height: 8),
      Container(
        padding: const EdgeInsets.symmetric(horizontal: 12),
        decoration: BoxDecoration(
          border: Border.all(color: Colors.grey.withValues(alpha: 0.3)),
          borderRadius: BorderRadius.circular(4),
        ),
        child: DropdownButton<StringEnum>(
          value: value,
          isExpanded: true,
          underline: const SizedBox(),
          items:
              items.map((StringEnum item) {
                return DropdownMenuItem<StringEnum>(
                  value: item,
                  child: Text(stringObs.getString(item)),
                );
              }).toList(),
          onChanged: (StringEnum? newValue) {
            if (newValue != null) {
              onChanged(newValue);
            }
          },
        ),
      ),
    ],
  );
}