mirror of
https://github.com/randyjc/Rahoot.git
synced 2026-03-13 20:15:35 +01:00
40 lines
992 B
TypeScript
40 lines
992 B
TypeScript
import Button from "@rahoot/web/components/Button"
|
|
import Form from "@rahoot/web/components/Form"
|
|
import Input from "@rahoot/web/components/Input"
|
|
import { useEvent, useSocket } from "@rahoot/web/contexts/socketProvider"
|
|
import { usePlayerStore } from "@rahoot/web/stores/player"
|
|
import { KeyboardEvent, useState } from "react"
|
|
|
|
const Room = () => {
|
|
const { socket } = useSocket()
|
|
const { join } = usePlayerStore()
|
|
const [invitation, setInvitation] = useState("")
|
|
|
|
const handleJoin = () => {
|
|
socket?.emit("player:join", invitation)
|
|
}
|
|
|
|
const handleKeyDown = (event: KeyboardEvent) => {
|
|
if (event.key === "Enter") {
|
|
handleJoin()
|
|
}
|
|
}
|
|
|
|
useEvent("game:successRoom", (gameId) => {
|
|
join(gameId)
|
|
})
|
|
|
|
return (
|
|
<Form>
|
|
<Input
|
|
onChange={(e) => setInvitation(e.target.value)}
|
|
onKeyDown={handleKeyDown}
|
|
placeholder="PIN Code here"
|
|
/>
|
|
<Button onClick={handleJoin}>Submit</Button>
|
|
</Form>
|
|
)
|
|
}
|
|
|
|
export default Room
|