This commit is contained in:
Chris Wanstrath 2026-01-20 22:29:01 -08:00
parent 9f1fc1c179
commit 08f04e09d4
4 changed files with 21 additions and 20 deletions

View File

@ -1,10 +1,6 @@
import { render } from 'hono/jsx/dom'
import { render } from 'hono/jsx/dom' // needed to use the same hono/jsx as the frontend
import { setup } from 'pyre/client'
import type { Game } from '../types'
import Board from './board'
const root = document.getElementById('root')!
setup<Game>(game => {
render(game ? <Board game={game} /> : <h1>Loading...</h1>, root)
})
setup<Game>(render, game => <Board game={game} />)

View File

@ -1,13 +0,0 @@
import { initWebsocket, onUpdate } from './websocket'
export function setup<G>(onRender: (game: G | undefined) => void) {
let game: G | undefined = undefined
onUpdate((newGame: G) => {
game = newGame
onRender(game)
})
initWebsocket()
onRender(game)
}

18
src/client/setup.tsx Normal file
View File

@ -0,0 +1,18 @@
import { type Child, render as renderJsx } from 'hono/jsx/dom'
import { initWebsocket, onUpdate } from './websocket'
const root = document.getElementById('root')!
export function setup<G>(render: typeof renderJsx, onRender: (game: G) => Child) {
let game: G | undefined = undefined
onUpdate((newGame: G) => {
game = newGame
render(game ? onRender(game) : <Loading />, root)
})
initWebsocket()
render(game ? onRender(game) : <Loading />, root)
}
const Loading = () => <h1>Loading...</h1>

View File

@ -6,7 +6,7 @@ const GIT_HASH = process.env.RENDER_GIT_COMMIT?.slice(0, 7)
export default () => <>
<html lang="en">
<head>
<title>hype</title>
<title>🔥 pyre</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="color-scheme" content="light dark" />