better logging and delay
This commit is contained in:
@@ -14,6 +14,7 @@ export default function ChallengeDetail() {
|
||||
const [searchResults, setSearchResults] = useState([]);
|
||||
const [showInvite, setShowInvite] = useState(false);
|
||||
const [loading, setLoading] = useState(true);
|
||||
const [searchTimeout, setSearchTimeout] = useState(null);
|
||||
|
||||
useEffect(() => {
|
||||
loadChallenge();
|
||||
@@ -76,19 +77,30 @@ export default function ChallengeDetail() {
|
||||
}
|
||||
};
|
||||
|
||||
const handleSearchUsers = async (query) => {
|
||||
const handleSearchUsers = (query) => {
|
||||
setInviteQuery(query);
|
||||
|
||||
// Clear previous timeout
|
||||
if (searchTimeout) {
|
||||
clearTimeout(searchTimeout);
|
||||
}
|
||||
|
||||
if (query.trim().length < 2) {
|
||||
setSearchResults([]);
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
const data = await api.searchUsers(query);
|
||||
setSearchResults(data.users);
|
||||
} catch (err) {
|
||||
console.error('Search failed:', err);
|
||||
}
|
||||
// Debounce search by 1 second
|
||||
const timeout = setTimeout(async () => {
|
||||
try {
|
||||
const data = await api.searchUsers(query);
|
||||
setSearchResults(data.users);
|
||||
} catch (err) {
|
||||
console.error('Search failed:', err);
|
||||
}
|
||||
}, 1000);
|
||||
|
||||
setSearchTimeout(timeout);
|
||||
};
|
||||
|
||||
const handleInvite = async (userId) => {
|
||||
|
||||
Reference in New Issue
Block a user