UNPKG

@huddle01/react

Version:

The Huddle01 React SDK offers a comprehensive suite of hooks, methods and event listeners that allow for seamless real-time audio and video communication with minimal coding required.

45 lines (43 loc) 1.33 kB
import { useHuddle01_default } from "./chunk-6UAH4WUQ.js"; // src/hooks/useRoomMetadata.ts import { useState, useEffect, useCallback } from "react"; var useRoomMetadata = (props) => { const { huddleClient } = useHuddle01_default(); const room = huddleClient.room; const [roomData, setRoomData] = useState( room.getMetadata() ?? null ); const handleUpdateMetadata = useCallback(() => { const metadata = room.getMetadata(); setRoomData(metadata); if (props?.onMetadataUpdated) props.onMetadataUpdated(metadata); }, [props?.onMetadataUpdated]); useEffect(() => { const handleRoomClose = (data) => { setRoomData(null); if (props?.onLeave) props.onLeave(data); }; const handleRoomJoin = () => { console.info("EVENT TRIGGERED, ROOM JOINED"); }; room.once("room-joined", handleRoomJoin); room.once("room-closed", handleRoomClose); room.on("metadata-updated", handleUpdateMetadata); return () => { room.off("room-joined", handleRoomJoin); room.off("room-closed", handleRoomClose); room.off("metadata-updated", handleUpdateMetadata); }; }, [handleUpdateMetadata]); const updateMetadata = room.updateMetadata; return { roomData, updateMetadata }; }; export { useRoomMetadata }; //# sourceMappingURL=chunk-T3G6CI3E.js.map