2026-06-22 21:57:32 +02:00
|
|
|
import { useEffect } from 'react'
|
|
|
|
|
import { useWaste } from './store'
|
|
|
|
|
import { Onboarding } from './pages/Onboarding'
|
|
|
|
|
import { Chat } from './pages/Chat'
|
|
|
|
|
import './App.css'
|
|
|
|
|
|
2026-06-23 00:06:41 +02:00
|
|
|
// When served from the anchor (non-localhost), default to browser mode.
|
|
|
|
|
// When running locally, try the daemon first.
|
|
|
|
|
const isLocal = window.location.hostname === 'localhost' || window.location.hostname === '127.0.0.1'
|
2026-06-22 21:57:32 +02:00
|
|
|
const DAEMON_WS = import.meta.env.VITE_DAEMON_WS ?? 'ws://127.0.0.1:17338'
|
|
|
|
|
|
|
|
|
|
export default function App() {
|
2026-06-23 00:06:41 +02:00
|
|
|
const { connect, connectBrowser, daemonStatus, localPeer } = useWaste()
|
2026-06-22 21:57:32 +02:00
|
|
|
|
|
|
|
|
useEffect(() => {
|
2026-06-23 00:06:41 +02:00
|
|
|
if (isLocal) {
|
|
|
|
|
connect(DAEMON_WS)
|
|
|
|
|
} else {
|
|
|
|
|
connectBrowser()
|
|
|
|
|
}
|
|
|
|
|
}, [connect, connectBrowser])
|
2026-06-22 21:57:32 +02:00
|
|
|
|
|
|
|
|
if (daemonStatus !== 'connected' || !localPeer) {
|
|
|
|
|
return <Onboarding status={daemonStatus} />
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return <Chat />
|
|
|
|
|
}
|