From 631419267d49a99001d75d51a1a7e3a3751b5a5d Mon Sep 17 00:00:00 2001 From: Corbin Crutchley Date: Sat, 15 Nov 2025 10:13:33 -0800 Subject: [PATCH 1/4] chore: WIP --- client-src/routes/index.tsx | 23 ++++++++-- client-src/views/draw/services/socket.ts | 5 --- client-src/views/room/UserToolbar.tsx | 55 +++++++++++++++++------- isomophic-src/isomorphic.ts | 13 ++++++ server-src/server.ts | 11 +++++ 5 files changed, 83 insertions(+), 24 deletions(-) diff --git a/client-src/routes/index.tsx b/client-src/routes/index.tsx index 19a99ac..02e8e89 100644 --- a/client-src/routes/index.tsx +++ b/client-src/routes/index.tsx @@ -1,11 +1,12 @@ import { createFileRoute } from "@tanstack/react-router"; import UserToolbar from "../views/room/UserToolbar"; import usePartySocket from "partysocket/react"; -import { useRef, useState } from "react"; +import { useEffect, useRef, useState } from "react"; import { Frog, FromServerSocketMessage, Hat, SVGUploaded } from "../../isomophic-src/isomorphic"; import UserMessage from "../views/room/UserMessage"; -import { HAT_MAP } from "../views/room/state/hats"; -import { FROG_MAP } from "../views/room/state/frogs"; +import { HAT_MAP, HATS, REVERSE_HAT_MAP } from "../views/room/state/hats"; +import { FROG_MAP, FROGS, REVERSE_FROG_MAP } from "../views/room/state/frogs"; +import { socketSend } from "../views/draw/services/socket"; export const Route = createFileRoute("/")({ component: Index, @@ -14,6 +15,8 @@ export const Route = createFileRoute("/")({ function Index() { const [messages, setMessages] = useState([]); const [userMap, setUserMap] = useState({} as Record); + const [hat, setHat] = useState("/TopHatP.png"); + const [frog, setFrog] = useState("/Frog1AP.png"); usePartySocket({ host: window.location.host, @@ -37,10 +40,19 @@ function Index() { })); break; } + case "get_frog": { + setHat(HAT_MAP[data.hat]!); + setFrog(FROG_MAP[data.frog]!); + break; + } } }, }); + useEffect(() => { + socketSend({ type: "request-frog" }); + }, []); + return (
    @@ -49,7 +61,10 @@ function Index() { ))}
- +
); diff --git a/client-src/views/draw/services/socket.ts b/client-src/views/draw/services/socket.ts index 8177fa5..cacbdac 100644 --- a/client-src/views/draw/services/socket.ts +++ b/client-src/views/draw/services/socket.ts @@ -4,8 +4,3 @@ import { socket } from "../constants/constants"; export function socketSend(type: FromClientSocketMessage) { socket.send(JSON.stringify(type)); } - -socket.addEventListener('message', (event) => { - const data: FromServerSocketMessage = JSON.parse(event.data); - console.log({ data }); -}); \ No newline at end of file diff --git a/client-src/views/room/UserToolbar.tsx b/client-src/views/room/UserToolbar.tsx index 4a5ccb5..6f85dd6 100644 --- a/client-src/views/room/UserToolbar.tsx +++ b/client-src/views/room/UserToolbar.tsx @@ -7,17 +7,22 @@ import { FROGS, REVERSE_FROG_MAP } from "./state/frogs"; import { socketSend } from "../draw/services/socket"; import { app } from "../draw/state"; -export default function UserToolbar() { +interface UserToolbarProps { + hat: string; + frog: string; + setFrog: (value: string) => void; + setHat: (value: string) => void; +} + +export default function UserToolbar({ hat, frog, setFrog, setHat }: UserToolbarProps) { const [name, setName] = useState("frogboi"); - const [hat, setHat] = useState("/TopHatP.png"); - const [frog, setFrog] = useState("/Frog1AP.png"); const ribbitRef = useRef(null); const customizeDialogRef = useRef(null); return ( <> -
- - -
- - @@ -111,6 +134,8 @@ function CustomizeFrogDialog({ dialogRef, frog, hat, onFrogComplete, onHatComple
@@ -64,7 +73,10 @@ export default function UserToolbar({ hat, frog, setFrog, setHat }: UserToolbarP Send -
- - -
- diff --git a/server-src/server.ts b/server-src/server.ts index 6c21644..bafdca2 100644 --- a/server-src/server.ts +++ b/server-src/server.ts @@ -49,7 +49,7 @@ export class Chat extends Server { case "request-frog": { const hat = await this.ctx.storage.get("hat") || ""; const frog = await this.ctx.storage.get("frog") || "Frog1AP"; - this.broadcast(getMessageForClient({ + connection.send(getMessageForClient({ type: "get_frog", hat, frog, -- 2.51.2