UNPKG

@itwin/itwinui-react

Version:

A react component library for iTwinUI

68 lines (67 loc) 1.59 kB
import * as React from 'react'; import { Select } from '../Select/Select.js'; import { StatusMessage } from '../StatusMessage/StatusMessage.js'; import { InputGrid } from '../InputGrid/InputGrid.js'; import { Label } from '../Label/Label.js'; export const LabeledSelect = React.forwardRef((props, forwardedRef) => { let { className, disabled = false, label, message, status, svgIcon, displayStyle = 'default', style, required = false, wrapperProps, labelProps, messageContentProps, messageIconProps, ...rest } = props; return React.createElement( InputGrid, { labelPlacement: displayStyle, 'data-iui-status': status, ...wrapperProps, }, label && React.createElement( Label, { as: 'div', required: required, disabled: disabled, ...labelProps, }, label, ), React.createElement(Select, { disabled: disabled, className: className, style: style, required: props.native ? required : void 0, ...rest, ref: forwardedRef, ...{ styleType: 'default', }, }), 'string' == typeof message ? React.createElement( StatusMessage, { status: status, startIcon: svgIcon, iconProps: messageIconProps, contentProps: messageContentProps, }, message, ) : message, ); }); if ('development' === process.env.NODE_ENV) LabeledSelect.displayName = 'LabeledSelect';