fix blank page, icons, add logging and EVM balance chart
- Fix blank page: set viewsRoot, base:'', history.replaceState in index.html - Fix chain icons: add dist/icons→views/mainview/icons copy rule - Add file-based logger (src/bun/lib/logger.ts) with logToFile RPC - Add frontend error overlay + global error listeners in index.svelte - Add EVM balance chart with time range filters (EvmDashboard.svelte) - Replace console.log with file logger throughout backend - Improve get-env.ts to read version.json for channel detection
This commit is contained in:
@@ -11,15 +11,50 @@
|
||||
} from '$lib/components/ui/card/index.js'
|
||||
import { navigate } from 'sv-router/generated'
|
||||
import { onMount } from 'svelte'
|
||||
import { frontendLog, frontendLogError } from '$lib/electrobun.js'
|
||||
|
||||
const w = wallet
|
||||
|
||||
let feError = $state<string | null>(null)
|
||||
|
||||
onMount(() => {
|
||||
w.init()
|
||||
moneroWallet.init()
|
||||
frontendLog('index.svelte mounted')
|
||||
w.init().catch((e) => frontendLogError('w.init() failed', e))
|
||||
moneroWallet.init().catch((e) => frontendLogError('moneroWallet.init() failed', e))
|
||||
})
|
||||
|
||||
$effect(() => {
|
||||
if (typeof window !== 'undefined') {
|
||||
const handler = (event: ErrorEvent) => {
|
||||
const msg = event.error?.stack || event.error?.message || event.message || 'unknown error'
|
||||
feError = msg
|
||||
frontendLogError('uncaught error', msg)
|
||||
}
|
||||
const rejectHandler = (event: PromiseRejectionEvent) => {
|
||||
const msg = event.reason?.stack || event.reason?.message || String(event.reason || 'unknown')
|
||||
feError = msg
|
||||
frontendLogError('unhandled rejection', msg)
|
||||
}
|
||||
window.addEventListener('error', handler)
|
||||
window.addEventListener('unhandledrejection', rejectHandler)
|
||||
return () => {
|
||||
window.removeEventListener('error', handler)
|
||||
window.removeEventListener('unhandledrejection', rejectHandler)
|
||||
}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
{#if feError}
|
||||
<div
|
||||
class="fixed inset-0 z-50 flex items-center justify-center bg-background/95 p-8">
|
||||
<div class="max-w-lg rounded-lg border border-destructive/50 bg-destructive/10 p-6">
|
||||
<p class="font-bold text-destructive text-sm mb-2">Frontend Error</p>
|
||||
<pre class="whitespace-pre-wrap font-mono text-xs text-destructive/80 max-h-96 overflow-y-auto">{feError}</pre>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<div class="mx-auto mt-24 max-w-sm">
|
||||
{#if !w.ready}
|
||||
<p class="text-center text-muted-foreground text-sm">
|
||||
|
||||
Reference in New Issue
Block a user