UNPKG

react-lightning-design-system

Version:

Salesforce Lightning Design System components built with React

83 lines (79 loc) 2.72 kB
import _extends from "@babel/runtime/helpers/extends"; import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties"; var _excluded = ["id", "className", "label", "required", "error", "cols", "tooltip", "tooltipIcon", "elementRef", "selectRef", "children", "onChange", "onValueChange"], _excluded2 = ["label", "children"]; import React, { useContext, useRef } from 'react'; import classnames from 'classnames'; import { FormElement } from './FormElement'; import { FieldSetColumnContext } from './FieldSet'; import { useEventCallback } from './hooks'; import { createFC } from './common'; /** * */ /** * */ export var Select = createFC(function (props) { var id = props.id, className = props.className, label = props.label, required = props.required, error = props.error, cols = props.cols, tooltip = props.tooltip, tooltipIcon = props.tooltipIcon, elementRef = props.elementRef, selectRef = props.selectRef, children = props.children, onChange_ = props.onChange, onValueChange = props.onValueChange, rprops = _objectWithoutProperties(props, _excluded); var _useContext = useContext(FieldSetColumnContext), isFieldSetColumn = _useContext.isFieldSetColumn; var prevValueRef = useRef(); var onChange = useEventCallback(function (e) { onChange_ === null || onChange_ === void 0 || onChange_(e); onValueChange === null || onValueChange === void 0 || onValueChange(e.target.value, prevValueRef.current); prevValueRef.current = e.target.value; }); var selectClassNames = classnames(className, 'slds-select'); var selectElem = /*#__PURE__*/React.createElement("select", _extends({ ref: selectRef, id: id, className: selectClassNames, onChange: onChange }, rprops), children); var selectElemWithContainer = rprops.multiple ? selectElem : /*#__PURE__*/React.createElement("div", { className: "slds-select_container" }, selectElem); if (isFieldSetColumn || label || required || error || cols) { var formElemProps = { controlId: id, label: label, required: required, error: error, cols: cols, tooltip: tooltip, tooltipIcon: tooltipIcon, elementRef: elementRef }; return /*#__PURE__*/React.createElement(FormElement, formElemProps, selectElemWithContainer); } return selectElemWithContainer; }, { isFormElement: true }); /** * */ /** * */ export var Option = function Option(props) { var label = props.label, children = props.children, rprops = _objectWithoutProperties(props, _excluded2); return /*#__PURE__*/React.createElement("option", rprops, label || children); }; //# sourceMappingURL=Select.js.map