diff --git a/frontend/src/pages/ArenaPage.vue b/frontend/src/pages/ArenaPage.vue index df705c2..aff7ef4 100644 --- a/frontend/src/pages/ArenaPage.vue +++ b/frontend/src/pages/ArenaPage.vue @@ -53,7 +53,9 @@ async function triggerFight() { const data = await res.json() router.push(`/arena/${data.fightId}`) } - } catch { /* */ } + } catch (err) { + console.warn('[Arena] triggerFight failed:', err) + } isMocking.value = false } diff --git a/frontend/src/pages/BotProfilePage.vue b/frontend/src/pages/BotProfilePage.vue index 93c2aa7..871fba7 100644 --- a/frontend/src/pages/BotProfilePage.vue +++ b/frontend/src/pages/BotProfilePage.vue @@ -77,6 +77,8 @@ const waitingFighters = ref([]) let pollHandle: ReturnType | null = null const isOwner = ref(false) +const loadError = ref('') +const fightError = ref('') const showCustomize = ref(false) const isSaving = ref(false) const custError = ref('') @@ -207,7 +209,11 @@ onMounted(async () => { try { const res = await fetch(`/api/bots/${encodeURIComponent(botName)}/stats`) if (res.ok) stats.value = await res.json() - } catch { /* */ } + else loadError.value = `Failed to load bot (${res.status})` + } catch (err) { + loadError.value = 'Network error loading bot profile' + console.warn('[BotProfile] load failed:', err) + } isLoading.value = false // Check ownership @@ -229,32 +235,46 @@ async function pollQueue() { const data = await res.json() waitingFighters.value = data.queue || [] } - } catch { /* */ } + } catch (err) { + console.warn('[BotProfile] queue poll failed:', err) + } } async function instantFight() { if (!stats.value || isJoining.value) return isJoining.value = true + fightError.value = '' try { const res = await fetch(`/api/queue/join/${stats.value.id}`, { method: 'POST' }) if (res.ok) { const data = await res.json() router.push(`/arena/${data.fightId}`) + } else { + fightError.value = `Matchmaking failed (${res.status})` } - } catch { /* */ } + } catch (err) { + fightError.value = 'Network error starting fight' + console.warn('[BotProfile] instant fight failed:', err) + } isJoining.value = false } async function fightSpecific(opponentBotId: string) { if (!stats.value || isJoining.value) return isJoining.value = true + fightError.value = '' try { const res = await fetch(`/api/fights/matchmake/${stats.value.id}`, { method: 'POST' }) if (res.ok) { const data = await res.json() router.push(`/arena/${data.fightId}`) + } else { + fightError.value = `Matchmaking failed (${res.status})` } - } catch { /* */ } + } catch (err) { + fightError.value = 'Network error starting fight' + console.warn('[BotProfile] fight specific failed:', err) + } isJoining.value = false } @@ -275,7 +295,7 @@ const tierClass = (t: number) => `tier-${t}`
-

Bot not found.

+

{{ loadError || 'Bot not found.' }}