better logging and delay
This commit is contained in:
@@ -37,7 +37,12 @@ router.get('/search', authMiddleware, async (req, res) => {
|
||||
);
|
||||
|
||||
if (!response.ok) {
|
||||
throw new Error('TMDB API error');
|
||||
const errorText = await response.text();
|
||||
console.error('TMDB API error:', response.status, errorText);
|
||||
return res.status(500).json({
|
||||
error: `TMDB API error: ${response.status}`,
|
||||
details: errorText
|
||||
});
|
||||
}
|
||||
|
||||
const data = await response.json();
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
// 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) => {
|
||||
|
||||
@@ -8,6 +8,7 @@ export default function ChallengeList() {
|
||||
const [showResults, setShowResults] = useState([]);
|
||||
const [loading, setLoading] = useState(true);
|
||||
const [creating, setCreating] = useState(false);
|
||||
const [searchTimeout, setSearchTimeout] = useState(null);
|
||||
|
||||
useEffect(() => {
|
||||
loadChallenges();
|
||||
@@ -24,19 +25,30 @@ export default function ChallengeList() {
|
||||
}
|
||||
};
|
||||
|
||||
const handleSearch = async (query) => {
|
||||
const handleSearch = (query) => {
|
||||
setSearchQuery(query);
|
||||
|
||||
// Clear previous timeout
|
||||
if (searchTimeout) {
|
||||
clearTimeout(searchTimeout);
|
||||
}
|
||||
|
||||
if (query.trim().length < 2) {
|
||||
setShowResults([]);
|
||||
return;
|
||||
}
|
||||
|
||||
// Debounce search by 1.5 seconds
|
||||
const timeout = setTimeout(async () => {
|
||||
try {
|
||||
const data = await api.searchShows(query);
|
||||
setShowResults(data.results || []);
|
||||
} catch (err) {
|
||||
console.error('Search failed:', err);
|
||||
}
|
||||
}, 1500);
|
||||
|
||||
setSearchTimeout(timeout);
|
||||
};
|
||||
|
||||
const handleCreateChallenge = async (show) => {
|
||||
|
||||
@@ -8,6 +8,7 @@ export default function Friends() {
|
||||
const [searchQuery, setSearchQuery] = useState('');
|
||||
const [searchResults, setSearchResults] = useState([]);
|
||||
const [loading, setLoading] = useState(true);
|
||||
const [searchTimeout, setSearchTimeout] = useState(null);
|
||||
|
||||
useEffect(() => {
|
||||
loadData();
|
||||
@@ -29,19 +30,30 @@ export default function Friends() {
|
||||
}
|
||||
};
|
||||
|
||||
const handleSearch = async (query) => {
|
||||
const handleSearch = (query) => {
|
||||
setSearchQuery(query);
|
||||
|
||||
// Clear previous timeout
|
||||
if (searchTimeout) {
|
||||
clearTimeout(searchTimeout);
|
||||
}
|
||||
|
||||
if (query.trim().length < 2) {
|
||||
setSearchResults([]);
|
||||
return;
|
||||
}
|
||||
|
||||
// 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 handleSendRequest = async (userId) => {
|
||||
|
||||
Reference in New Issue
Block a user