@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
JavaScript
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