Skip to content

Commit d406f9b

Browse files
Add search in Select and TreeSelect
1 parent 8f82220 commit d406f9b

File tree

10 files changed

+178
-25
lines changed

10 files changed

+178
-25
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 0.0.69
2+
3+
- Add search in Select and TreeSelect
4+
15
## 0.0.68
26

37
- Add `response.data` as second param in onFinish func after requestSaveForm in `Form`

dist/index.es.js

Lines changed: 45 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/index.es.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/index.js

Lines changed: 45 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/index.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/components/Select/Select.js

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -276,8 +276,15 @@ var Select = function Select(props) {
276276
var childProps = getObjectExcludedProps(props, excludeProps);
277277
return React.createElement(
278278
_Select,
279-
_extends({}, childProps, {
279+
_extends({
280+
showArrow: true,
280281
showSearch: true,
282+
allowClear: true,
283+
filterOption: false,
284+
autoClearSearchValue: true
285+
286+
}, childProps, {
287+
281288
searchValue: _searchValue,
282289
style: { width: widthControl }
283290
// listHeight={heightPopup}
@@ -400,7 +407,7 @@ Select.defaultProps = {
400407
options: [],
401408
widthControl: '100%',
402409
pageSize: 50,
403-
searchParamName: 'searchValue'
410+
searchParamName: 'name'
404411
};
405412

406413
export default Select;

lib/components/TreeSelect/TreeSelect.js

Lines changed: 36 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,18 @@ var TreeSelect = function TreeSelect(props) {
3939
_useState4 = _slicedToArray(_useState3, 2),
4040
_treeData = _useState4[0],
4141
_setTreeData = _useState4[1];
42+
/** Строка поиска */
43+
44+
45+
var _useState5 = useState(undefined),
46+
_useState6 = _slicedToArray(_useState5, 2),
47+
_searchValue = _useState6[0],
48+
_setSearchValue = _useState6[1];
4249

4350
var isMounted = useMounted();
4451

4552
useEffect(function () {
53+
_setSearchValue(defaultSearchValue);
4654
_loadOptions({
4755
sortBy: defaultSortBy,
4856
filter: defaultFilter,
@@ -54,6 +62,7 @@ var TreeSelect = function TreeSelect(props) {
5462
useEffect(function () {
5563
// console.log("Change sortBy, filter, searchValue", sortBy, filter, searchValue);
5664
if (isMounted) {
65+
_setSearchValue(searchValue);
5766
_loadOptions({
5867
sortBy: sortBy,
5968
filter: filter,
@@ -63,6 +72,17 @@ var TreeSelect = function TreeSelect(props) {
6372
}
6473
}, [sortBy, filter, searchValue]);
6574

75+
var onSearch = function onSearch(value) {
76+
// console.log('TreeSelect onSearch => ', value);
77+
_setSearchValue(value);
78+
_loadOptions({
79+
sortBy: defaultSortBy,
80+
filter: defaultFilter,
81+
searchValue: value,
82+
reload: true
83+
});
84+
};
85+
6686
var getSort = function getSort(sortBy) {
6787
return sortBy && sortBy.key ? sortBy.key + ',' + sortBy.order : null;
6888
};
@@ -97,6 +117,7 @@ var TreeSelect = function TreeSelect(props) {
97117
// console.log("infinity then response", response);
98118
var result = response.data;
99119
_setTreeData(_optionConverter(result));
120+
_setLoading(false);
100121
}).catch(function (error) {
101122
notificationError(error, 'Ошибка загрузки данных');
102123
// _setRowsHandler(_options); // _setRows
@@ -107,13 +128,23 @@ var TreeSelect = function TreeSelect(props) {
107128
};
108129

109130
var childProps = getObjectExcludedProps(props, excludeProps);
110-
return React.createElement(_TreeSelect, _extends({}, childProps, {
131+
return React.createElement(_TreeSelect, _extends({
132+
showArrow: true,
133+
showSearch: true,
134+
allowClear: true,
135+
filterTreeNode: false,
136+
autoClearSearchValue: true,
137+
treeDefaultExpandAll: true
138+
139+
}, childProps, {
140+
141+
searchValue: _searchValue,
142+
onSearch: onSearch,
111143
maxTagCount: 0,
112144
maxTagPlaceholder: function maxTagPlaceholder(omittedValues) {
113145
return "\u0412\u044B\u0431\u0440\u0430\u043D\u043E: " + omittedValues.length;
114146
},
115-
treeData: _treeData,
116-
showArrow: true
147+
treeData: _treeData
117148
// loadData={onLoadData}
118149
}));
119150
};
@@ -173,7 +204,8 @@ TreeSelect.defaultProps = {
173204
defaultSortBy: undefined,
174205
defaultFilter: {},
175206
defaultSearchValue: undefined,
176-
requestLoadRows: undefined
207+
requestLoadRows: undefined,
208+
searchParamName: 'name'
177209
};
178210

179211
export default TreeSelect;

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "rt-design",
3-
"version": "0.0.68",
3+
"version": "0.0.69",
44
"description": "React technical design library",
55
"author": "Iron tech space",
66
"license": "MIT",

src/components/Select/Select.js

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import React, {useEffect, useState} from "react";
22
import PropTypes from "prop-types";
3-
import {Select as AntSelect} from "antd";
3+
import { Select as AntSelect } from "antd";
44
import {
55
getObjectExcludedProps,
66
notificationError, useMounted
@@ -247,8 +247,14 @@ const Select = props => {
247247
const childProps = getObjectExcludedProps(props, excludeProps);
248248
return (
249249
<AntSelect
250-
{...childProps}
250+
showArrow={true}
251251
showSearch={true}
252+
allowClear={true}
253+
filterOption={false}
254+
autoClearSearchValue={true}
255+
256+
{...childProps}
257+
252258
searchValue={_searchValue}
253259
style={{ width: widthControl }}
254260
// listHeight={heightPopup}
@@ -351,7 +357,7 @@ Select.defaultProps = {
351357
options: [],
352358
widthControl: '100%',
353359
pageSize: 50,
354-
searchParamName: 'searchValue',
360+
searchParamName: 'name',
355361
}
356362

357363
export default Select;

0 commit comments

Comments
 (0)