diff --git a/src/components/dynamic-bg.tsx b/src/components/dynamic-bg.tsx index fdcff9c..09c7d2d 100644 --- a/src/components/dynamic-bg.tsx +++ b/src/components/dynamic-bg.tsx @@ -20,7 +20,7 @@ const DynamicBg = () => { const parallaxOffset = scrollY * 0.5; return ( -
+
{ const chatOpen = useModalChatOpen(); + const { signalingService } = useSignaling(); + const peerMe = usePeerMe(); + const [message, setMessage] = useState(''); + + const handleSendChat = async () => { + if (!signalingService) return; + signalingService.sendMessage({ + action: Actions.SendChat, + args: { + id: uuidv4(), + text: message, + sender: peerMe, + createdAt: Date.now(), + }, + }); + console.log(message, 'sent'); + }; return (
{ className=" h-12 flex items-center gap-2 bg-gray-700/40 p-2 rounded-md " title="Coming soon" > - setMessage(event.target.value)} className=" flex-1 bg-transparent focus:outline-none border-none focus:border-none placeholder:text-gray-500 text-sm" placeholder="Send a message..." /> - +
diff --git a/src/components/room/chat/chat.tsx b/src/components/room/chat/chat.tsx index bc223ad..14e61bd 100644 --- a/src/components/room/chat/chat.tsx +++ b/src/components/room/chat/chat.tsx @@ -11,7 +11,7 @@ const Chat = () => { variant="ghost" size="icon" className="w-12 h-12 rounded-xl text-white relative - bg-gradient-to-br from-white/15 to-white/1 backdrop-blur-xl + bg-linear-to-br from-white/15 to-white/1 backdrop-blur-xl " > diff --git a/src/components/room/display/index.tsx b/src/components/room/display/index.tsx index 88ebd41..0afabe3 100644 --- a/src/components/room/display/index.tsx +++ b/src/components/room/display/index.tsx @@ -5,15 +5,17 @@ import ScreenView from './screen-view'; const Display = () => { return (
- {/* change padding to pt-10 */} - {/* screen sharing */} - - {/* peers grid */} - - {/* chat and attendees */} - +
+ {/* change padding to pt-10 */} + {/* screen sharing */} + + {/* peers grid */} + + {/* chat and attendees */} + +
); }; diff --git a/src/components/room/display/main-grid.tsx b/src/components/room/display/main-grid.tsx index 70e5a23..ca08506 100644 --- a/src/components/room/display/main-grid.tsx +++ b/src/components/room/display/main-grid.tsx @@ -88,8 +88,8 @@ const MainGrid = () => {
{layout ? ( diff --git a/src/components/room/display/screen-view.tsx b/src/components/room/display/screen-view.tsx index 4219315..7f9db11 100644 --- a/src/components/room/display/screen-view.tsx +++ b/src/components/room/display/screen-view.tsx @@ -48,7 +48,7 @@ const ScreenView = () => { return (
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(), + }), };