1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-03 07:55:36 +00:00

send search user request after one second (#5411)

* send search user request after one second

* [user select] cleaned up code & improvement

---------

Co-authored-by: llj <lingjun.li1@gmail.com>
This commit is contained in:
lian
2023-03-22 15:21:51 +08:00
committed by GitHub
parent f6010022cb
commit 3fdec9f09f

View File

@@ -21,8 +21,9 @@ class UserSelect extends React.Component {
constructor(props) { constructor(props) {
super(props); super(props);
this.options = []; this.options = [];
this.finalValue = '';
this.state = { this.state = {
searchValue: '', searchValue: ''
}; };
} }
@@ -37,7 +38,9 @@ class UserSelect extends React.Component {
loadOptions = (input, callback) => { loadOptions = (input, callback) => {
const value = input.trim(); const value = input.trim();
if (value.length > 0) { this.finalValue = value;
setTimeout(() => {
if (this.finalValue === value && value.length > 0) {
seafileAPI.searchUsers(value).then((res) => { seafileAPI.searchUsers(value).then((res) => {
this.options = []; this.options = [];
for (let i = 0 ; i < res.data.users.length; i++) { for (let i = 0 ; i < res.data.users.length; i++) {
@@ -45,8 +48,7 @@ class UserSelect extends React.Component {
let obj = {}; let obj = {};
obj.value = item.name; obj.value = item.name;
obj.email = item.email; obj.email = item.email;
obj.label = obj.label = enableShowContactEmailWhenSearchUser ? (
enableShowContactEmailWhenSearchUser ? (
<div className="d-flex"> <div className="d-flex">
<img src={item.avatar_url} className="avatar" width="24" alt="" /> <img src={item.avatar_url} className="avatar" width="24" alt="" />
<div className="ml-2"> <div className="ml-2">
@@ -58,7 +60,8 @@ class UserSelect extends React.Component {
<React.Fragment> <React.Fragment>
<img src={item.avatar_url} className="select-module select-module-icon avatar" alt=""/> <img src={item.avatar_url} className="select-module select-module-icon avatar" alt=""/>
<span className='select-module select-module-name'>{item.name}</span> <span className='select-module select-module-name'>{item.name}</span>
</React.Fragment>); </React.Fragment>
);
this.options.push(obj); this.options.push(obj);
} }
callback(this.options); callback(this.options);
@@ -67,6 +70,7 @@ class UserSelect extends React.Component {
toaster.danger(errMessage); toaster.danger(errMessage);
}); });
} }
}, 1000);
} }
clearSelect = () => { clearSelect = () => {