diff --git a/client-src/routes/index.tsx b/client-src/routes/index.tsx
index c53e16d..41d7f92 100644
--- a/client-src/routes/index.tsx
+++ b/client-src/routes/index.tsx
@@ -1,7 +1,7 @@
import { createFileRoute } from "@tanstack/react-router";
import UserToolbar from "../views/room/UserToolbar";
import usePartySocket from "partysocket/react";
-import { useState } from "react";
+import { useRef, useState } from "react";
import { FromServerSocketMessage } from "../../isomophic-src/isomorphic";
import UserMessage from "../views/room/UserMessage";
@@ -28,7 +28,6 @@ function Index() {
return (
-
Welcome Home!
{images.map((image, index) => (
diff --git a/client-src/views/room/UserToolbar.tsx b/client-src/views/room/UserToolbar.tsx
index 29dc3b6..84d1c97 100644
--- a/client-src/views/room/UserToolbar.tsx
+++ b/client-src/views/room/UserToolbar.tsx
@@ -11,10 +11,12 @@ export default function UserToolbar() {
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 (
<>
+
-
-
+ }}
+ className="w-full bg-green-400 hover:bg-green-600 hover:text-green-300 border-2 border-green-800 rounded p-4"
+ >
+ Send
+
+
>
@@ -72,8 +82,6 @@ function CustomizeFrogDialog({ dialogRef, frog, hat, onFrogComplete, onHatComple
const [hatIndex, setHatIndex] = useState(HATS.findIndex((v) => v === hat));
const [frogIndex, setFrogIndex] = useState(FROGS.findIndex((v) => v === frog));
- useEffect(() => console.log({ hatIndex, HATS, hat }), [hat]);
-
const currentHat = useMemo(() => HATS[hatIndex], [hatIndex]);
const currentFrog = useMemo(() => FROGS[frogIndex], [frogIndex]);
diff --git a/isomophic-src/isomorphic.ts b/isomophic-src/isomorphic.ts
index 7680160..25bd0b4 100644
--- a/isomophic-src/isomorphic.ts
+++ b/isomophic-src/isomorphic.ts
@@ -5,13 +5,24 @@ const UploadSVGSchema = z.object({
svg: z.string(),
});
+const RibbitSchema = z.object({
+ type: z.literal("ribbit"),
+ name: z.string()
+});
+
// The type of messages sent from the client to the server via WebSocket
export const FromClientSocketMessageSchema = z.union([
UploadSVGSchema,
+ RibbitSchema
]);
export type FromClientSocketMessage = z.infer;
+const RibbitSentSchema = z.object({
+ type: z.literal("ribbit_sent"),
+ name: z.string()
+});
+
const SVGUploadedSchema = z.object({
type: z.literal("svg_uploaded"),
svgPath: z.string(),
@@ -20,6 +31,7 @@ const SVGUploadedSchema = z.object({
// The type of messages sent from the server to the client via WebSocket
export const FromServerSocketMessageSchema = z.union([
SVGUploadedSchema,
+ RibbitSentSchema
]);
-export type FromServerSocketMessage = z.infer;
\ No newline at end of file
+export type FromServerSocketMessage = z.infer;
diff --git a/public/ribbit.mp3 b/public/ribbit.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..dda078a0e55e435a0ff4206e74045cc92afce450
GIT binary patch
literal 10676
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
literal 0
HcmV?d00001
diff --git a/server-src/server.ts b/server-src/server.ts
index 13fb968..e87b57f 100644
--- a/server-src/server.ts
+++ b/server-src/server.ts
@@ -33,6 +33,12 @@ export class Chat extends Server {
}));
break;
}
+ case "ribbit": {
+ this.broadcast(getMessageForClient({
+ type: "ribbit_sent",
+ name: data.name
+ }));
+ }
}
}
}