UNPKG

react-formian

Version:

A React framework for easily creating and handling controlled forms

38 lines (34 loc) 1.03 kB
import React from 'react'; import Container from '../../common/Container'; const Datalist = ({name, tabIndex="0", className="", dataset, options=['enter options array'], defaultValue, onChange, onBlur, onFocus, text=name, placeholder=text, errorText="Please select an option"}) => ( <div className={`input-container datalist ${className}`}> <label htmlFor={name}>{text}</label> <input list={name} value={dataset[name]} onChange={onChange} onBlur={onBlur} onFocus={onFocus} /> {/* for legacy reasons, wrap options inside a select */} <datalist id={name} placeholder={placeholder} tabIndex={tabIndex}> <select> {options.map(opt => (typeof opt === 'object' ? <option key={opt.value} label={opt.label || opt.value} value={opt.value} disabled={opt.disabled || false} /> : <option key={opt} label={opt} value={opt} /> ))} </select> </datalist> <div className="error-message">{errorText}</div> </div> ); export default Datalist;