( element: Element, value: ?string, defaultValue: ?string, multiple: ?boolean, wasMultiple: ?boolean, )
| 212 | } |
| 213 | |
| 214 | export function updateSelect( |
| 215 | element: Element, |
| 216 | value: ?string, |
| 217 | defaultValue: ?string, |
| 218 | multiple: ?boolean, |
| 219 | wasMultiple: ?boolean, |
| 220 | ) { |
| 221 | const node: HTMLSelectElement = (element: any); |
| 222 | |
| 223 | if (value != null) { |
| 224 | updateOptions(node, !!multiple, value, false); |
| 225 | } else if (!!wasMultiple !== !!multiple) { |
| 226 | // For simplicity, reapply `defaultValue` if `multiple` is toggled. |
| 227 | if (defaultValue != null) { |
| 228 | updateOptions(node, !!multiple, defaultValue, true); |
| 229 | } else { |
| 230 | // Revert the select back to its default unselected state. |
| 231 | updateOptions(node, !!multiple, multiple ? [] : '', false); |
| 232 | } |
| 233 | } |
| 234 | } |
| 235 | |
| 236 | export function restoreControlledSelectState(element: Element, props: Object) { |
| 237 | const node: HTMLSelectElement = (element: any); |
no test coverage detected