Skip to content

Commit cd2f04d

Browse files
author
elham motaghi
committed
drop ismutableselect attr down and add babel/runtime new item to plugins
1 parent 3ce9f60 commit cd2f04d

File tree

5 files changed

+96
-54
lines changed

5 files changed

+96
-54
lines changed

.babelrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
{
22
"presets": ["es2015", "react", "stage-1"],
3-
"plugins": ["transform-async-to-generator", "transform-flow-strip-types"]
3+
"plugins": ["transform-async-to-generator", "transform-flow-strip-types", ["transform-runtime", {"polyfill": false}]]
44
}

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
"author": "Daniel Moi",
1818
"license": "Apache-2.0",
1919
"dependencies": {
20+
"@babel/runtime": "^7.5.5",
2021
"classnames": "^2.2.5",
2122
"immutable": "^3.8.1",
2223
"react": "^15.4.2",
@@ -35,6 +36,7 @@
3536
"babel-plugin-istanbul": "^4.0.0",
3637
"babel-plugin-transform-async-to-generator": "^6.24.1",
3738
"babel-plugin-transform-flow-strip-types": "^6.22.0",
39+
"babel-plugin-transform-runtime": "^6.23.0",
3840
"babel-preset-es2015": "^6.22.0",
3941
"babel-preset-react": "^6.23.0",
4042
"babel-preset-stage-1": "^6.22.0",

src/components/SelectSearchBase.js

Lines changed: 64 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import type { Options, Selected, Callback } from '../types';
66
type SelectSearchBaseProps = {
77
// config
88
id: string,
9+
isMultipleSelect: boolean,
910

1011
// appearance
1112
label: string,
@@ -41,11 +42,19 @@ class SelectSearchBase extends Component {
4142
prefix,
4243
handleScroll,
4344
useImages,
45+
isMultipleSelect,
4446
searchTerm = '',
4547
} = this.props;
4648

4749
const selectedLength = (selected && selected.size) || (selected && selected.length);
4850

51+
let optionsAvailable = !!options;
52+
if (!isMultipleSelect) {
53+
if (selectedLength === 1) {
54+
optionsAvailable = false;
55+
}
56+
}
57+
4958
return (
5059
<div className={`${prefix}__wrapper`}>
5160
<div className={`${prefix}__label`}>
@@ -65,67 +74,69 @@ class SelectSearchBase extends Component {
6574
))}
6675
</div>
6776

68-
<input
69-
type="text"
70-
className={`${prefix}__search-input`}
71-
autoFocus
72-
onChange={this.handleSearch}
73-
onClick={this.handleSearch}
74-
placeholder={placeholder}
75-
value={searchTerm}
76-
/>
77+
{isMultipleSelect || optionsAvailable ?
78+
<input
79+
type="text"
80+
className={`${prefix}__search-input`}
81+
autoFocus
82+
onChange={this.handleSearch}
83+
onClick={this.handleSearch}
84+
placeholder={placeholder}
85+
value={searchTerm}
86+
/>
87+
: null }
7788
</div>
7889

7990

8091
{isOpen && options
81-
?
82-
<div
83-
className={`${prefix}__open-wrapper`}
84-
onScroll={handleScroll}
85-
>
86-
{options.map(option => (
87-
<div
88-
key={`${option.get('id')}--option`}
89-
className={`${prefix}__option-container`}
90-
>
91-
<input
92-
id={`${option.get('id')}--option`}
93-
className={`${prefix}__option-checkbox`}
94-
type="checkbox"
95-
checked={selected.has(option.get('id'))}
96-
onChange={handleOptionClick(option)}
97-
/>
98-
99-
{useImages
100-
?
101-
<label
102-
htmlFor={`${option.get('id')}--option`}
103-
className={`${prefix}__search-option-bar`}
104-
>
105-
<img
106-
src={option.get('src')} alt={option.get('display')}
107-
className={`${prefix}__search-option-bar-image`}
108-
/>
109-
<div className={`${prefix}__search-option-bar-text`}>
110-
{option.get('display')}
111-
</div>
112-
</label>
113-
:
114-
<label
115-
htmlFor={`${option.get('id')}--option`}
116-
className={`${prefix}__search-option-bar`}
117-
>
118-
<div className={`${prefix}__search-option-bar-text`}>
119-
{option.get('display')}
120-
</div>
121-
</label>
92+
?
93+
<div
94+
className={`${prefix}__open-wrapper`}
95+
onScroll={handleScroll}
96+
>
97+
{options.map(option => (
98+
<div
99+
key={`${option.get('id')}--option`}
100+
className={`${prefix}__option-container`}
101+
>
102+
<input
103+
id={`${option.get('id')}--option`}
104+
className={`${prefix}__option-checkbox`}
105+
type="checkbox"
106+
checked={selected.has(option.get('id'))}
107+
onChange={handleOptionClick(option)}
108+
/>
109+
110+
{useImages
111+
?
112+
<label
113+
htmlFor={`${option.get('id')}--option`}
114+
className={`${prefix}__search-option-bar`}
115+
>
116+
<img
117+
src={option.get('src')} alt={option.get('display')}
118+
className={`${prefix}__search-option-bar-image`}
119+
/>
120+
<div className={`${prefix}__search-option-bar-text`}>
121+
{option.get('display')}
122+
</div>
123+
</label>
124+
:
125+
<label
126+
htmlFor={`${option.get('id')}--option`}
127+
className={`${prefix}__search-option-bar`}
128+
>
129+
<div className={`${prefix}__search-option-bar-text`}>
130+
{option.get('display')}
131+
</div>
132+
</label>
122133
}
123134

124135

125-
</div>
136+
</div>
126137
))}
127-
</div>
128-
:
138+
</div>
139+
:
129140
null
130141
}
131142

src/components/SelectSearchConnected.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import type { Options, Selected, Callback } from '../types';
1717
type SelectSearchConnectedProps = {
1818
// config
1919
id: string,
20+
isMultipleSelect: boolean,
2021

2122
// appearance
2223
label: string,
@@ -109,6 +110,7 @@ export class SelectSearchConnectedComponent extends Component {
109110
return (
110111
<SelectSearchBase
111112
id={this.props.id}
113+
isMultipleSelect={this.props.isMultipleSelect}
112114
label={this.props.label}
113115
prefix={this.props.prefix}
114116
placeholder={this.props.placeholder}

yarn.lock

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@
22
# yarn lockfile v1
33

44

5+
"@babel/runtime@^7.5.5":
6+
version "7.5.5"
7+
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.5.5.tgz#74fba56d35efbeca444091c7850ccd494fd2f132"
8+
dependencies:
9+
regenerator-runtime "^0.13.2"
10+
511
abab@^1.0.3:
612
version "1.0.3"
713
resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.3.tgz#b81de5f7274ec4e756d797cd834f303642724e5d"
@@ -804,6 +810,12 @@ babel-plugin-transform-regenerator@^6.22.0:
804810
dependencies:
805811
regenerator-transform "0.9.8"
806812

813+
babel-plugin-transform-runtime@^6.23.0:
814+
version "6.23.0"
815+
resolved "https://registry.yarnpkg.com/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz#88490d446502ea9b8e7efb0fe09ec4d99479b1ee"
816+
dependencies:
817+
babel-runtime "^6.22.0"
818+
807819
babel-plugin-transform-strict-mode@^6.22.0:
808820
version "6.22.0"
809821
resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.22.0.tgz#e008df01340fdc87e959da65991b7e05970c8c7c"
@@ -911,6 +923,13 @@ babel-runtime@^6.18.0, babel-runtime@^6.22.0:
911923
core-js "^2.4.0"
912924
regenerator-runtime "^0.10.0"
913925

926+
babel-runtime@^6.26.0:
927+
version "6.26.0"
928+
resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
929+
dependencies:
930+
core-js "^2.4.0"
931+
regenerator-runtime "^0.11.0"
932+
914933
babel-template@^6.16.0, babel-template@^6.23.0:
915934
version "6.23.0"
916935
resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.23.0.tgz#04d4f270adbb3aa704a8143ae26faa529238e638"
@@ -3653,6 +3672,14 @@ regenerator-runtime@^0.10.0:
36533672
version "0.10.1"
36543673
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.1.tgz#257f41961ce44558b18f7814af48c17559f9faeb"
36553674

3675+
regenerator-runtime@^0.11.0:
3676+
version "0.11.1"
3677+
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
3678+
3679+
regenerator-runtime@^0.13.2:
3680+
version "0.13.3"
3681+
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5"
3682+
36563683
regenerator-transform@0.9.8:
36573684
version "0.9.8"
36583685
resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.9.8.tgz#0f88bb2bc03932ddb7b6b7312e68078f01026d6c"

0 commit comments

Comments
 (0)