fix: add error logging for various API calls across components
Deploy to VPS / deploy (push) Successful in 2m20s

This commit is contained in:
asepharyana
2026-07-26 16:34:06 +07:00
parent 74eabb7231
commit 1021301656
11 changed files with 56 additions and 51 deletions
@@ -29,8 +29,8 @@ export default function AnalysisPage() {
const { messagesApi } = await import("@/lib/api"); const { messagesApi } = await import("@/lib/api");
try { try {
await messagesApi.reanalyze(id); await messagesApi.reanalyze(id);
} catch { } catch (err) {
/* ignore */ console.error("analysis/reanalyze:", err);
} }
}, []); }, []);
@@ -82,8 +82,8 @@ export default function DashboardPage() {
const detail = await dashboardApi.getUserDetail(userId); const detail = await dashboardApi.getUserDetail(userId);
setActiveUser(detail); setActiveUser(detail);
setView("user-detail"); setView("user-detail");
} catch { } catch (err) {
/* ignore */ console.error("dashboard/userDetail:", err);
} }
}} }}
/> />
@@ -97,8 +97,8 @@ export default function DashboardPage() {
const detail = await dashboardApi.getChannelDetail(chId); const detail = await dashboardApi.getChannelDetail(chId);
setActiveChannel(detail); setActiveChannel(detail);
setView("channel-detail"); setView("channel-detail");
} catch { } catch (err) {
/* ignore */ console.error("dashboard/channelDetail:", err);
} }
}} }}
/> />
@@ -121,8 +121,8 @@ export default function MessagesPage() {
const { messagesApi } = await import("@/lib/api"); const { messagesApi } = await import("@/lib/api");
try { try {
await messagesApi.reanalyze(id); await messagesApi.reanalyze(id);
} catch { } catch (err) {
/* ignore */ console.error("messages/reanalyze:", err);
} }
}, []); }, []);
@@ -131,8 +131,8 @@ export default function MessagesPage() {
const { messagesApi } = await import("@/lib/api"); const { messagesApi } = await import("@/lib/api");
try { try {
await messagesApi.reanalyzeBatch(guildId); await messagesApi.reanalyzeBatch(guildId);
} catch { } catch (err) {
/* ignore */ console.error("messages/reanalyzeBatch:", err);
} }
}, [guildId]); }, [guildId]);
@@ -238,7 +238,8 @@ export default function VoicePage() {
await voiceApi.sendCommand( await voiceApi.sendCommand(
checked ? "voice:transmit:start" : "voice:transmit:stop", checked ? "voice:transmit:start" : "voice:transmit:stop",
); );
} catch { } catch (err) {
console.error("voice/mic:", err);
setMicActive(!checked); setMicActive(!checked);
} }
}} }}
@@ -51,8 +51,8 @@ export function Chatbot() {
try { try {
await chatbotApi.clearHistory(); await chatbotApi.clearHistory();
setMessages([]); setMessages([]);
} catch { } catch (err) {
// ignore console.error("chatbot/clearHistory:", err);
} }
}, []); }, []);
@@ -78,7 +78,8 @@ export function Chatbot() {
timestamp: resp.timestamp, timestamp: resp.timestamp,
}, },
]); ]);
} catch { } catch (err) {
console.error("chatbot/send:", err);
setMessages((prev) => [ setMessages((prev) => [
...prev, ...prev,
{ {
@@ -43,8 +43,8 @@ export function LiveStats() {
guildCount: guilds.length, guildCount: guilds.length,
wsConnected: false, wsConnected: false,
}); });
} catch { } catch (err) {
// ignore console.error("live-stats:", err);
} finally { } finally {
if (!cancelled) setLoading(false); if (!cancelled) setLoading(false);
} }
+8 -8
View File
@@ -59,8 +59,8 @@ export function useUsers(): UseUsersReturn {
try { try {
const result = await dashboardApi.listUsers(20, undefined, q); const result = await dashboardApi.listUsers(20, undefined, q);
setUsers(result.data); setUsers(result.data);
} catch { } catch (err) {
// silently fail console.error("useUsers:", err);
} finally { } finally {
setLoading(false); setLoading(false);
} }
@@ -104,8 +104,8 @@ export function useChannels(guildId: string): UseChannelsReturn {
guildId || undefined, guildId || undefined,
); );
setChannels(result.data); setChannels(result.data);
} catch { } catch (err) {
// silently fail console.error("useChannels:", err);
} finally { } finally {
setLoading(false); setLoading(false);
} }
@@ -137,8 +137,8 @@ export function useUserDetail() {
try { try {
const detail = await dashboardApi.getUserDetail(userId); const detail = await dashboardApi.getUserDetail(userId);
setUser(detail); setUser(detail);
} catch { } catch (err) {
// ignore console.error("useUserDetail:", err);
} finally { } finally {
setLoading(false); setLoading(false);
} }
@@ -158,8 +158,8 @@ export function useChannelDetail() {
try { try {
const detail = await dashboardApi.getChannelDetail(channelId); const detail = await dashboardApi.getChannelDetail(channelId);
setChannel(detail); setChannel(detail);
} catch { } catch (err) {
// ignore console.error("useChannelDetail:", err);
} finally { } finally {
setLoading(false); setLoading(false);
} }
+10 -10
View File
@@ -27,8 +27,8 @@ export function useMediaState(): UseMediaStateReturn {
try { try {
const state = await voiceApi.getMediaStatus(); const state = await voiceApi.getMediaStatus();
setMediaState(state); setMediaState(state);
} catch { } catch (err) {
// ignore console.error("useMediaState/refresh:", err);
} }
}, []); }, []);
@@ -36,8 +36,8 @@ export function useMediaState(): UseMediaStateReturn {
try { try {
const state = await voiceApi.mediaQueue(url, "music"); const state = await voiceApi.mediaQueue(url, "music");
setMediaState(state); setMediaState(state);
} catch { } catch (err) {
// ignore console.error("useMediaState/queue:", err);
} }
}, []); }, []);
@@ -45,8 +45,8 @@ export function useMediaState(): UseMediaStateReturn {
try { try {
const state = await voiceApi.mediaSkip(); const state = await voiceApi.mediaSkip();
setMediaState(state); setMediaState(state);
} catch { } catch (err) {
// ignore console.error("useMediaState/skip:", err);
} }
}, []); }, []);
@@ -54,8 +54,8 @@ export function useMediaState(): UseMediaStateReturn {
try { try {
const state = await voiceApi.mediaStop(); const state = await voiceApi.mediaStop();
setMediaState(state); setMediaState(state);
} catch { } catch (err) {
// ignore console.error("useMediaState/stop:", err);
} }
}, []); }, []);
@@ -64,8 +64,8 @@ export function useMediaState(): UseMediaStateReturn {
try { try {
const state = await voiceApi.mediaVolume(vol); const state = await voiceApi.mediaVolume(vol);
setMediaState(state); setMediaState(state);
} catch { } catch (err) {
// ignore console.error("useMediaState/setVolume:", err);
} }
}, []); }, []);
+12 -10
View File
@@ -70,8 +70,8 @@ export function useMessages(
setMessages((prev) => [...prev, ...result.data]); setMessages((prev) => [...prev, ...result.data]);
setCursor(result.nextCursor); setCursor(result.nextCursor);
setHasMore(result.nextCursor !== null); setHasMore(result.nextCursor !== null);
} catch { } catch (err) {
// ignore console.error("useMessages/loadMore:", err);
} finally { } finally {
setLoadingMore(false); setLoadingMore(false);
} }
@@ -119,7 +119,7 @@ export function useTextChannels(guildId: string): UseTextChannelsReturn {
voiceApi voiceApi
.getTextChannels(guildId) .getTextChannels(guildId)
.then(setChannels) .then(setChannels)
.catch(() => {}) .catch((err) => console.error("useTextChannels:", err))
.finally(() => setLoading(false)); .finally(() => setLoading(false));
}, [guildId]); }, [guildId]);
@@ -147,7 +147,8 @@ export function useSearch(): UseSearchReturn {
try { try {
const result = await messagesApi.search(query, 50); const result = await messagesApi.search(query, 50);
setResults(result.results); setResults(result.results);
} catch { } catch (err) {
console.error("useSearch:", err);
setResults([]); setResults([]);
} finally { } finally {
setSearching(false); setSearching(false);
@@ -167,8 +168,8 @@ export function useImages(guildId: string) {
try { try {
const result = await messagesApi.getImages(guildId, 50); const result = await messagesApi.getImages(guildId, 50);
setImages(result.data); setImages(result.data);
} catch { } catch (err) {
// silently fail console.error("useImages:", err);
} }
}, [guildId]); }, [guildId]);
@@ -184,8 +185,8 @@ export function useReview(channelId?: string) {
try { try {
const result = await messagesApi.getReview(50, channelId || undefined); const result = await messagesApi.getReview(50, channelId || undefined);
setReviews(result.results); setReviews(result.results);
} catch { } catch (err) {
// silently fail console.error("useReview:", err);
} }
}, [channelId]); }, [channelId]);
@@ -217,9 +218,10 @@ export function useMessageDetail(): UseMessageDetailReturn {
messagesApi messagesApi
.getAttachments(detail.channel_id, 10) .getAttachments(detail.channel_id, 10)
.then((res) => setAttachments(res.data)) .then((res) => setAttachments(res.data))
.catch(() => {}); .catch((err) => console.error("useMessageDetail/attachments:", err));
} }
} catch { } catch (err) {
console.error("useMessageDetail:", err);
setMessage(null); setMessage(null);
} finally { } finally {
setLoading(false); setLoading(false);
@@ -28,8 +28,8 @@ export function useRecordings(): UseRecordingsReturn {
try { try {
const result = await recordingsApi.list(50); const result = await recordingsApi.list(50);
setRecordings(result.items); setRecordings(result.items);
} catch { } catch (err) {
// ignore console.error("useRecordings/refresh:", err);
} finally { } finally {
setLoading(false); setLoading(false);
} }
@@ -39,8 +39,8 @@ export function useRecordings(): UseRecordingsReturn {
try { try {
await recordingsApi.delete(id); await recordingsApi.delete(id);
setRecordings((prev) => prev.filter((r) => r.id !== id)); setRecordings((prev) => prev.filter((r) => r.id !== id));
} catch { } catch (err) {
// ignore console.error("useRecordings/remove:", err);
} }
}, []); }, []);
+4 -3
View File
@@ -23,8 +23,8 @@ export function useVoiceStatus(): UseVoiceStatusReturn {
try { try {
const status = await voiceApi.getStatus(); const status = await voiceApi.getStatus();
setVoiceStatus(status); setVoiceStatus(status);
} catch { } catch (err) {
// ignore console.error("useVoiceStatus:", err);
} }
}, []); }, []);
@@ -48,7 +48,8 @@ export function useVoiceChannels(): UseVoiceChannelsReturn {
try { try {
const ch = await voiceApi.getVoiceChannels(guildId); const ch = await voiceApi.getVoiceChannels(guildId);
setChannels(ch); setChannels(ch);
} catch { } catch (err) {
console.error("useVoiceChannels:", err);
setChannels([]); setChannels([]);
} finally { } finally {
setLoading(false); setLoading(false);