Skip to content

Commit 1803f31

Browse files
authored
fix: Add isInvalid prop to Select component (#1883)
FIxes #1882
1 parent a03fa07 commit 1803f31

95 files changed

Lines changed: 23 additions & 1 deletion

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

packages/code-studio/src/styleguide/Inputs.tsx

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,24 @@ function Inputs(): React.ReactElement {
258258
</Select>
259259
</div>
260260

261+
<div className="form-group">
262+
<Select
263+
onChange={v => {
264+
// no-op
265+
}}
266+
defaultValue="0"
267+
className="custom-select"
268+
isInvalid
269+
>
270+
<Option disabled value="0">
271+
Custom Selection
272+
</Option>
273+
<Option value="1">One</Option>
274+
<Option value="2">Two</Option>
275+
<Option value="3">Three</Option>
276+
</Select>
277+
</div>
278+
261279
<div className="form-group">
262280
<h5>Input with Select</h5>
263281
<div className="input-group">

packages/components/src/Select.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { useForwardedRef } from '@deephaven/react-hooks';
55
type baseSelectProps = Omit<React.HTMLProps<HTMLSelectElement>, 'onChange'>;
66

77
export type SelectProps = baseSelectProps & {
8+
isInvalid?: boolean;
89
onChange: (value: string) => void;
910
'data-testid'?: string;
1011
};
@@ -20,6 +21,7 @@ const Select = React.forwardRef<HTMLSelectElement, SelectProps>(
2021
const {
2122
children,
2223
className,
24+
isInvalid,
2325
onChange,
2426
'data-testid': dataTestId,
2527
...rest
@@ -37,7 +39,9 @@ const Select = React.forwardRef<HTMLSelectElement, SelectProps>(
3739
return (
3840
<select
3941
ref={ref}
40-
className={classNames('custom-select', className)}
42+
className={classNames('custom-select', className, {
43+
'is-invalid': isInvalid,
44+
})}
4145
onChange={handleChange}
4246
data-testid={dataTestId}
4347
// eslint-disable-next-line react/jsx-props-no-spreading
3.63 KB
4.19 KB
213 Bytes
431 Bytes
184 Bytes
213 Bytes
424 Bytes
184 Bytes

0 commit comments

Comments
 (0)