From 803b15a677a9a283154efe8879ac8d416012c81e Mon Sep 17 00:00:00 2001 From: Corbin Crutchley Date: Sat, 15 Nov 2025 16:34:54 -0800 Subject: [PATCH] chore: properly fix the initial load --- client-src/constants/socket.ts | 4 - client-src/main.tsx | 16 +--- client-src/routes/index.tsx | 36 +++++---- client-src/views/draw/services/socket.ts | 2 +- client-src/views/room/UserToolbar.tsx | 93 +++++++++++++++++------- server-src/server.ts | 2 +- 6 files changed, 93 insertions(+), 60 deletions(-) delete mode 100644 client-src/constants/socket.ts diff --git a/client-src/constants/socket.ts b/client-src/constants/socket.ts deleted file mode 100644 index e749bc7..0000000 --- a/client-src/constants/socket.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { createContext } from "react"; -import PartySocket from "partysocket"; - -export const SocketContext = createContext(null!); \ No newline at end of file diff --git a/client-src/main.tsx b/client-src/main.tsx index 82fc8ab..48c4a6b 100644 --- a/client-src/main.tsx +++ b/client-src/main.tsx @@ -5,8 +5,6 @@ import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; // Import the generated route tree import { routeTree } from "./routeTree.gen"; -import PartySocket from "partysocket"; -import { SocketContext } from "./constants/socket"; // Create a new router instance const router = createRouter({ routeTree }); @@ -18,12 +16,6 @@ declare module "@tanstack/react-router" { } } -const socket = new PartySocket({ - host: window.location.host, - room: "room-1", - party: "chat", -}) - const queryClient = new QueryClient(); // Render the app @@ -32,11 +24,9 @@ if (!rootElement.innerHTML) { const root = createRoot(rootElement); root.render( - - - - - + + + , ); } diff --git a/client-src/routes/index.tsx b/client-src/routes/index.tsx index f772648..e28ce6d 100644 --- a/client-src/routes/index.tsx +++ b/client-src/routes/index.tsx @@ -1,21 +1,27 @@ import { createFileRoute } from "@tanstack/react-router"; import UserToolbar from "../views/room/UserToolbar"; -import { useContext, useEffect, useState } from "react"; -import { Frog, FromServerSocketMessage, Hat, SVGUploaded } from "../../isomophic-src/isomorphic"; +import { useEffect, 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 { socketSend } from "../views/draw/services/socket"; -import { SocketContext } from "../constants/socket"; +import { socket } from "../views/draw/constants/constants"; export const Route = createFileRoute("/")({ component: Index, }); function Index() { - const socket = useContext(SocketContext); const [messages, setMessages] = useState([]); - const [userMap, setUserMap] = useState({} as Record); + const [userMap, setUserMap] = useState( + {} as Record, + ); const [hat, setHat] = useState("/TopHatP.png"); const [frog, setFrog] = useState("/Frog1AP.png"); @@ -39,11 +45,8 @@ function Index() { break; } case "get_frog": { - debugger; - if (data.userId !== socket.id) return; setHat(HAT_MAP[data.hat]!); setFrog(FROG_MAP[data.frog]!); - console.log({data}) break; } } @@ -53,7 +56,7 @@ function Index() { return () => { socket.removeEventListener("message", onMessage); }; - }, [socket]); + }, []); useEffect(() => { function onOpen() { @@ -65,20 +68,23 @@ function Index() { return () => { socket.removeEventListener("open", onOpen); }; - }, [socket]); + }, []); return (
    {messages.map((message, i) => ( - + ))}
- +
); diff --git a/client-src/views/draw/services/socket.ts b/client-src/views/draw/services/socket.ts index cacbdac..c39d919 100644 --- a/client-src/views/draw/services/socket.ts +++ b/client-src/views/draw/services/socket.ts @@ -1,4 +1,4 @@ -import { FromClientSocketMessage, FromServerSocketMessage } from "../../../../isomophic-src/isomorphic"; +import { FromClientSocketMessage } from "../../../../isomophic-src/isomorphic"; import { socket } from "../constants/constants"; export function socketSend(type: FromClientSocketMessage) { diff --git a/client-src/views/room/UserToolbar.tsx b/client-src/views/room/UserToolbar.tsx index 6f85dd6..ab2e65f 100644 --- a/client-src/views/room/UserToolbar.tsx +++ b/client-src/views/room/UserToolbar.tsx @@ -1,12 +1,13 @@ -import { RefObject, useEffect, useMemo, useRef, useState } from "react"; +import { RefObject, useMemo, useRef, useState } from "react"; import { Controls } from "../draw/components/controls"; import { Editor } from "../draw/components/editor"; -import EditPencil from "/StreamlineFreehand-EditPencil.svg" with { type: "svg" }; import { HATS, REVERSE_HAT_MAP } from "./state/hats"; import { FROGS, REVERSE_FROG_MAP } from "./state/frogs"; import { socketSend } from "../draw/services/socket"; import { app } from "../draw/state"; +const EditPencil = `/StreamlineFreehand-EditPencil.svg`; + interface UserToolbarProps { hat: string; frog: string; @@ -14,7 +15,12 @@ interface UserToolbarProps { setHat: (value: string) => void; } -export default function UserToolbar({ hat, frog, setFrog, setHat }: UserToolbarProps) { +export default function UserToolbar({ + hat, + frog, + setFrog, + setHat, +}: UserToolbarProps) { const [name, setName] = useState("frogboi"); const ribbitRef = useRef(null); const customizeDialogRef = useRef(null); @@ -42,7 +48,10 @@ export default function UserToolbar({ hat, frog, setFrog, setHat }: UserToolbarP onChange={(e) => setName(e.currentTarget.value)} className="text-lg text-center w-fit border-2 border-green-800 bg-white font-bold rounded pl-2" /> - @@ -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