setSelectedOption method

Future<bool> setSelectedOption(
  1. OptionModel? option
)

Implementation

Future<bool> setSelectedOption(OptionModel? option) async {

  if (option == null) return true;

  // add/remove option on toggle
  var checked = !selectedOptions.contains(option);

  // set answer
  bool ok = await answer(option.value, delete: !checked);

  if (ok) {

    // remove option
    if (!checked && selectedOptions.contains(option)) selectedOptions.remove(option);

    // insert option
    if ( checked && !selectedOptions.contains(option)) selectedOptions.add(option);

    // set data
    List<dynamic> data = [];
    for (var option in selectedOptions) {
      if (option.data != null) data.add(option.data);
    }
    this.data = data;

    // fire onchange
    await onChange(context);
  }


  return ok;
}