Skip to content

Instantly share code, notes, and snippets.

View Manitej66's full-sized avatar
🏠
Working from home

Manitej Manitej66

🏠
Working from home
  • @laiout
  • India
  • 20:19 (UTC +05:30)
View GitHub Profile
const Rooms = () => {
const [rooms, setRooms] = useState([]);
const [loading, setLoading] = useState(true);
const { currentUser } = useContext(AuthContext);
const [load, setLoad] = useState(false);
const deleteRoom = async (id) => {
setLoad(true);
deleteDoc(doc(db, "rooms", id))
.then(() => setLoad(false))
client.on("token-privilege-will-expire", async (token) => {
const new_token = await getToken(name);
client.renewToken(new_token);
});
...
let UID = 0;
let URL = "YOUR_SERVER_URL";
const getToken = async (name) => {
const data = await (
await fetch(URL + "/rtc/" + name + "/publisher/uid/" + UID)
).json();
return data.rtcToken;
};
const join = async () => {
setLoad(true);
const { token, uid } = await (
await fetch(
`https://agora-token.azurewebsites.net/api/trigger?name=${room}`
)
).json();
client.join(token, room, uid, async (userId) => {
setStreamId(userId);
localStorage.setItem("ID", id);
const Modal_ = ({ state, title, setState }) => {
const { currentUser } = useContext(AuthContext);
const [loading, setLoading] = useState(false);
const [name, setName] = useState("");
const history = useHistory();
const [hidden, setHidden] = useState(false);
const createRoom = async () => {
if (name.trim().length > 0) {
setLoading(true);
const room = await addDoc(collection(db, "rooms"), {
const Home = () => {
const [state, setState] = useState(false);
const [title, setTitle] = useState("");
return (
<>
<Modal_ state={state} setState={setState} title={title} />
<Button
onClick={() => {
setTitle("create room");
setState(true);
import Button from "@geist-ui/react/esm/button";
import { signInWithPopup } from "firebase/auth";
import { auth, provider } from "../firebase";
import { useHistory } from "react-router";
import { useContext, useEffect } from "react";
import { AuthContext } from "../AuthContext";
const Login = () => {
const history = useHistory();
const { currentUser } = useContext(AuthContext);
useEffect(() => {
import React, { useEffect, useState } from "react";
import { onAuthStateChanged } from "firebase/auth";
import { auth } from "./firebase";
import Loading from "@geist-ui/react/esm/loading";
export const AuthContext = React.createContext();
export const AuthProvider = ({ children }) => {
const [currentUser, setCurrentUser] = useState(null);
const [pending, setPending] = useState(true);
import React, { useContext } from "react";
import { Route, Redirect } from "react-router-dom";
import { AuthContext } from "../AuthContext";
const PrivateRoute = ({ component: RouteComponent, ...rest }) => {
const { currentUser } = useContext(AuthContext);
return (
<Route
{...rest}
render={(routeProps) =>
currentUser ? (
import { BrowserRouter as Router, Route } from "react-router-dom";
import { AuthProvider } from "./AuthContext";
import Page from "@geist-ui/react/esm/page";
import Home from "./components/Home";
import Login from "./components/Login";
import PrivateRoute from "./utils/PrivateRoute";
import Navbar from "./utils/Navbar";
import Join from "./components/Join";
const App = () => {
return (