diff --git a/src/components/room/sidebar.tsx b/src/components/room/sidebar.tsx
index 1b1a297..afa613b 100644
--- a/src/components/room/sidebar.tsx
+++ b/src/components/room/sidebar.tsx
@@ -25,7 +25,9 @@ const Sidebar = () => {
return (
diff --git a/src/hooks/use-room.ts b/src/hooks/use-room.ts
index a480d6a..4cb638f 100644
--- a/src/hooks/use-room.ts
+++ b/src/hooks/use-room.ts
@@ -125,6 +125,10 @@ export const useRoom = () => {
const data = ValidationSchema.consumerStateData.parse(args);
closeConsumer(data);
},
+ [Actions.SendChat]: async args => {
+ const data = ValidationSchema.sendChat.parse(args);
+ console.log(data);
+ },
}),
[closeConsumer, createConsumer, pauseConsumer, peerActions, resumeConsumer]
);
diff --git a/src/lib/schema.ts b/src/lib/schema.ts
index 14bb675..7d4df60 100644
--- a/src/lib/schema.ts
+++ b/src/lib/schema.ts
@@ -3,6 +3,15 @@ import z from 'zod';
const producerSource = z.enum(['mic', 'camera', 'screen', 'screenAudio']);
const mediaKind = z.enum(['audio', 'video']);
+const peerDataSchema = z.object({
+ id: z.string(),
+ name: z.string(),
+ userId: z.string().optional(),
+ email: z.string().optional(),
+ photo: z.string().optional(),
+ color: z.string().optional(),
+});
+
export const ValidationSchema = {
peerData: z.object({
id: z.string(),
@@ -31,4 +40,12 @@ export const ValidationSchema = {
producerSource: producerSource,
fromProducer: z.boolean().optional(),
}),
+
+ sendChat: z.object({
+ id: z.string(),
+ text: z.string(),
+ sender: peerDataSchema,
+ receiver: peerDataSchema.optional(),
+ createdAt: z.number(),
+ }),
};