react-formian
Version:
A React framework for easily creating and handling controlled forms
38 lines (34 loc) • 1.03 kB
JSX
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;