Skip to content
This repository was archived by the owner on May 17, 2023. It is now read-only.

Commit 3d514f7

Browse files
Update Select component to accept autoFocus & name props for react-select wrapper (#1586)
* Code-style & Import sorter fixes * Add autofocus prop to proptypes and pass to react-select both autofocus & name * Update react-select snapshot changes
1 parent 12ce9a8 commit 3d514f7

File tree

2 files changed

+46
-41
lines changed

2 files changed

+46
-41
lines changed

core/components/atoms/select/select.tsx

Lines changed: 30 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,26 @@
1-
import * as React from 'react'
2-
import Automation from '../../_helpers/automation-attribute'
3-
import styled from '../../styled'
4-
import ReactSelect, { defaultTheme, components } from 'react-select'
5-
import AsyncSelect from 'react-select/lib/Async'
6-
import { misc, colors, spacing } from '../../tokens'
7-
import SimpleSelect from '../_simple-select'
8-
import Form from '../../molecules/form'
1+
import * as React from "react";
2+
import ReactSelect, { components, defaultTheme } from "react-select";
3+
import AsyncSelect from "react-select/lib/Async";
4+
5+
import Automation from "../../_helpers/automation-attribute";
6+
import Form from "../../molecules/form";
7+
import styled from "../../styled";
8+
import { colors, misc, spacing } from "../../tokens";
9+
import SimpleSelect from "../_simple-select";
910
import {
11+
ClearIndicator,
12+
DropdownIndicator,
13+
Group,
1014
GroupHeading,
15+
LoadingIndicator,
1116
Menu,
1217
MenuList,
13-
Option,
14-
LoadingIndicator,
15-
DropdownIndicator,
16-
ClearIndicator,
1718
MultiValue,
18-
Group,
19+
Option,
1920
optionRenderer,
2021
valueRenderer
21-
} from './components'
22-
import { ISelectOptions } from './interfaces';
22+
} from "./components";
23+
import { ISelectOptions } from "./interfaces";
2324

2425
const defaultGetOptionValue = option => option.value
2526

@@ -80,17 +81,17 @@ const cosmosToReactSelect = {
8081
control: (provided, state) =>
8182
props.hasError
8283
? {
83-
...provided,
84-
borderColor: colors.input.borderError,
85-
boxShadow: `0 0 0 ${state.isFocused ? 1 : 0}px ${colors.input.borderError}`,
86-
'&:hover': {
87-
borderColor: colors.input.borderError
88-
},
89-
'&:focus': {
84+
...provided,
9085
borderColor: colors.input.borderError,
91-
boxShadow: `0 0 0 2px ${colors.input.borderError}`
86+
boxShadow: `0 0 0 ${state.isFocused ? 1 : 0}px ${colors.input.borderError}`,
87+
'&:hover': {
88+
borderColor: colors.input.borderError
89+
},
90+
'&:focus': {
91+
borderColor: colors.input.borderError,
92+
boxShadow: `0 0 0 2px ${colors.input.borderError}`
93+
}
9294
}
93-
}
9495
: provided
9596
})
9697
}
@@ -145,8 +146,10 @@ export interface ISelectProps {
145146
defaultOptions?: Object[] | boolean
146147
/** Used to provide custom styled to the Select wrapper */
147148
style?: Object
149+
/** Used to focus the control when it mounts */
150+
autoFocus?: boolean
148151
/** @internal */
149-
defaultMenuOpen?: boolean,
152+
defaultMenuOpen?: boolean
150153
inputValue?: string
151154
}
152155

@@ -291,6 +294,8 @@ class Select extends React.Component<ISelectProps, ISelectState> {
291294
noOptionsMessage={noOptionsMessage}
292295
defaultOptions={defaultOptions}
293296
theme={selectTheme}
297+
autoFocus={props.autoFocus}
298+
name={props.name}
294299
value={value}
295300
styles={styles}
296301
key={value ? value.length : 0}

internal/test/unit/__snapshots__/select.test.tsx.snap

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,16 @@ exports[`Select async variant renders ReactSelect 1`] = `
66
data-cosmos-key="select.wrapper"
77
>
88
<div
9-
class="css-10nd86i"
9+
class="css-1pcexqc-container"
1010
>
1111
<div
12-
class="css-1dhouxp"
12+
class="css-xorvj4-control"
1313
>
1414
<div
1515
class="css-1hwfws3"
1616
>
1717
<div
18-
class="css-1492t68"
18+
class="css-151xaom-placeholder"
1919
>
2020
Something
2121
</div>
@@ -33,7 +33,7 @@ exports[`Select async variant renders ReactSelect 1`] = `
3333
autocorrect="off"
3434
id="react-select-5-input"
3535
spellcheck="false"
36-
style="box-sizing:content-box;width:1px;background:0;border:0;font-size:inherit;opacity:1;outline:0;padding:0;color:inherit"
36+
style="box-sizing:content-box;width:1px;label:input;background:0;border:0;font-size:inherit;opacity:1;outline:0;padding:0;color:inherit"
3737
tabindex="0"
3838
type="text"
3939
value=""
@@ -79,21 +79,21 @@ exports[`Select customOptionRenderer variant renders ReactSelect 1`] = `
7979
data-cosmos-key="select.wrapper"
8080
>
8181
<div
82-
class="css-10nd86i"
82+
class="css-1pcexqc-container"
8383
>
8484
<div
85-
class="css-1dhouxp"
85+
class="css-xorvj4-control"
8686
>
8787
<div
8888
class="css-1hwfws3"
8989
>
9090
<div
91-
class="css-1492t68"
91+
class="css-151xaom-placeholder"
9292
>
9393
Something
9494
</div>
9595
<input
96-
class="css-14uuagi"
96+
class="css-gj7qu5-dummyInput"
9797
id="react-select-4-input"
9898
readonly=""
9999
tabindex="0"
@@ -135,21 +135,21 @@ exports[`Select multiple variant renders ReactSelect 1`] = `
135135
data-cosmos-key="select.wrapper"
136136
>
137137
<div
138-
class="css-10nd86i"
138+
class="css-1pcexqc-container"
139139
>
140140
<div
141-
class="css-1dhouxp"
141+
class="css-xorvj4-control"
142142
>
143143
<div
144144
class="css-1hwfws3"
145145
>
146146
<div
147-
class="css-1492t68"
147+
class="css-151xaom-placeholder"
148148
>
149149
Something
150150
</div>
151151
<input
152-
class="css-14uuagi"
152+
class="css-gj7qu5-dummyInput"
153153
id="react-select-2-input"
154154
readonly=""
155155
tabindex="0"
@@ -191,16 +191,16 @@ exports[`Select searchable variant renders ReactSelect 1`] = `
191191
data-cosmos-key="select.wrapper"
192192
>
193193
<div
194-
class="css-10nd86i"
194+
class="css-1pcexqc-container"
195195
>
196196
<div
197-
class="css-1dhouxp"
197+
class="css-xorvj4-control"
198198
>
199199
<div
200200
class="css-1hwfws3"
201201
>
202202
<div
203-
class="css-1492t68"
203+
class="css-151xaom-placeholder"
204204
>
205205
Something
206206
</div>
@@ -218,7 +218,7 @@ exports[`Select searchable variant renders ReactSelect 1`] = `
218218
autocorrect="off"
219219
id="react-select-3-input"
220220
spellcheck="false"
221-
style="box-sizing:content-box;width:1px;background:0;border:0;font-size:inherit;opacity:1;outline:0;padding:0;color:inherit"
221+
style="box-sizing:content-box;width:1px;label:input;background:0;border:0;font-size:inherit;opacity:1;outline:0;padding:0;color:inherit"
222222
tabindex="0"
223223
type="text"
224224
value=""

0 commit comments

Comments
 (0)