shelving
Version:
Toolkit for using data in JavaScript.
7 lines (6 loc) • 835 B
JavaScript
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
import { getProps } from "../../util/object.js";
import { EMPTY_OPTION_CLASS, SELECT_INPUT_CLASS, VALUE_OPTION_CLASS } from "./Input.js";
export function SelectInput({ name, placeholder = "Choose...", required = false, disabled = false, message = "", value = "", onValue, options, }) {
return (_jsxs("select", { name: name, defaultValue: value, onChange: e => onValue(e.currentTarget.value || undefined), className: SELECT_INPUT_CLASS, title: message, "aria-invalid": !!message, disabled: disabled, required: required, children: [!required || !value ? (_jsx("option", { value: "", className: EMPTY_OPTION_CLASS, children: placeholder })) : null, getProps(options).map(([k, t]) => (_jsx("option", { value: k, className: VALUE_OPTION_CLASS, children: t }, k)))] }));
}