{"version":3,"sources":["components/Video/index.jsx","utils/index.js","components/NavBar/index.js","components/Home/index.jsx","App.js","index.js","../node_modules/peerjs/dist sync"],"names":["socket","socketId","elms","Video","match","history","useHistory","userVideoRef","useRef","peers","myPeer","window","location","pathname","origin","useState","faker","internet","userName","username","setUsername","isAskForUsername","setIsAskForUsername","isVideoActive","setIsVideoActive","isAudioActive","setIsAudioActive","isScreenActive","setIsScreenActive","isChatModalOpen","setIsChatModalOpen","isScreenAvailable","setIsScreenAvailable","chatMessages","setChatMessages","userMessage","setUserMessage","totalNewMessages","setTotalNewMessages","handleToggleChatModal","getPermissions","a","navigator","mediaDevices","getDisplayMedia","getUserMedia","video","audio","then","stream","localStream","current","srcObject","catch","e","console","log","addMessage","data","sender","socketIdSender","prevState","addVideoStream","elmt","addEventListener","play","document","getElementById","appendChild","useEffect","io","connect","secure","path","Peer","host","on","call","answer","createElement","userVideoStream","id","emit","params","url","userId","remove","connectToNewUser","querySelector","parentNode","removeChild","main","minWidth","offsetWidth","height","String","width","videos","querySelectorAll","length","style","minHeight","setProperty","changeCssVideos","userAgent","toLowerCase","vendor","test","isChrome","className","Input","placeholder","value","onChange","target","variant","color","onClick","ref","autoPlay","muted","IconButton","getTracks","forEach","track","stop","err","setTimeout","push","Badge","badgeContent","max","Modal","show","onHide","Header","closeButton","Title","Body","map","item","index","key","textAlign","wordBreak","Footer","paddingTop","disable","text","clipboard","writeText","message","success","error","textArea","body","focus","select","execCommand","NavBar","Home","roomId","setRoomId","src","alt","tempRoomId","trim","Math","random","toString","substring","App","props","basename","process","exact","component","ReactDOM","render","webpackEmptyContext","req","Error","code","keys","resolve","module","exports"],"mappings":"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","file":"static/js/main.da71fb53.chunk.js","sourcesContent":["import React, { useState, useRef, useEffect } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport io from \"socket.io-client\";\nimport Peer from \"peerjs\";\nimport faker from \"faker\";\nimport { isChrome, changeCssVideos, addVideoStreamBase } from \"../../utils\";\nimport { IconButton, Badge, Input } from \"@material-ui/core\";\nimport { Center, VStack, Button } from \"@chakra-ui/react\";\nimport VideocamIcon from \"@material-ui/icons/Videocam\";\nimport VideocamOffIcon from \"@material-ui/icons/VideocamOff\";\nimport MicIcon from \"@material-ui/icons/Mic\";\nimport MicOffIcon from \"@material-ui/icons/MicOff\";\nimport ScreenShareIcon from \"@material-ui/icons/ScreenShare\";\nimport StopScreenShareIcon from \"@material-ui/icons/StopScreenShare\";\nimport CallEndIcon from \"@material-ui/icons/CallEnd\";\nimport ChatIcon from \"@material-ui/icons/Chat\";\nimport { message } from \"antd\";\nimport { Modal } from \"react-bootstrap\";\nimport \"antd/dist/antd.css\";\nimport \"bootstrap/dist/css/bootstrap.css\";\nimport \"./Video.scss\";\n\n// const server_url =\n// \tprocess.env.NODE_ENV === \"production\"\n// \t\t? \"https://incog-317412.el.r.appspot.com/\"\n// \t\t: \"https://incog-317412.el.r.appspot.com/\";\nconst server_url = \"incog-317412.el.r.appspot.com/\";\n\nlet socket = null;\nlet socketId = null;\nlet elms = 0;\n\nconst Video = ({ match }) => {\n\tconst history = useHistory();\n\tconst userVideoRef = useRef(null);\n\tconst peers = useRef([]);\n\tconst myPeer = useRef(null);\n\tconst { pathname, origin } = window.location;\n\n\tconst [username, setUsername] = useState(faker.internet.userName());\n\tconst [isAskForUsername, setIsAskForUsername] = useState(true);\n\tconst [isVideoActive, setIsVideoActive] = useState(true);\n\tconst [isAudioActive, setIsAudioActive] = useState(true);\n\tconst [isScreenActive, setIsScreenActive] = useState(false);\n\tconst [isChatModalOpen, setIsChatModalOpen] = useState(false);\n\tconst [isScreenAvailable, setIsScreenAvailable] = useState(false);\n\tconst [chatMessages, setChatMessages] = useState([]);\n\tconst [userMessage, setUserMessage] = useState(\"\");\n\tconst [totalNewMessages, setTotalNewMessages] = useState(0);\n\n\tconst handleToggleVideo = () => setIsVideoActive(!isVideoActive);\n\tconst handleToggleAudio = () => setIsAudioActive(!isAudioActive);\n\tconst handleToggleScreen = () => setIsScreenActive(!isScreenActive);\n\tconst handleToggleChatModal = () => {\n\t\tif (!isChatModalOpen) {\n\t\t\tsetTotalNewMessages(0);\n\t\t}\n\t\tsetIsChatModalOpen(!isChatModalOpen);\n\t};\n\tconst sendChatMessage = () => {\n\t\tif (socket) socket.emit(\"chat-message\", userMessage, username);\n\t\tsetUserMessage(\"\");\n\t};\n\n\tconst handleEndCall = () => {\n\t\tif (socket) socket = null;\n\t\ttry {\n\t\t\tlet tracks = userVideoRef.current.srcObject.getTracks();\n\t\t\ttracks.forEach((track) => track.stop());\n\t\t} catch (err) {\n\t\t\tconsole.log(err);\n\t\t}\n\t\tsetTimeout(() => {\n\t\t\thistory.push(\"/\");\n\t\t}, 100);\n\t};\n\n\tconst handleCopyUrl = () => {\n\t\tlet text = origin + pathname;\n\t\tif (!navigator.clipboard) {\n\t\t\tlet textArea = document.createElement(\"textarea\");\n\t\t\ttextArea.value = text;\n\t\t\tdocument.body.appendChild(textArea);\n\t\t\ttextArea.focus();\n\t\t\ttextArea.select();\n\t\t\ttry {\n\t\t\t\tdocument.execCommand(\"copy\");\n\t\t\t\tmessage.success(\"Link copied to clipboard!\");\n\t\t\t} catch (err) {\n\t\t\t\tmessage.error(\"Failed to copy\");\n\t\t\t}\n\t\t\tdocument.body.removeChild(textArea);\n\t\t\treturn;\n\t\t}\n\t\tnavigator.clipboard.writeText(text).then(\n\t\t\t() => {\n\t\t\t\tmessage.success(\"Link copied to clipboard!\");\n\t\t\t},\n\t\t\t() => {\n\t\t\t\tmessage.error(\"Failed to copy\");\n\t\t\t}\n\t\t);\n\t};\n\n\t// Callback Functions\n\n\t// const gotMessageFromServer = async (fromId, message) => {\n\t// \tlet signal = JSON.parse(message);\n\n\t// \tif (fromId !== socketId) {\n\t// \t\tif (signal.sdp) {\n\t// \t\t\tawait connections[fromId].setRemoteDescription(\n\t// \t\t\t\tnew RTCSessionDescription(signal.sdp)\n\t// \t\t\t);\n\t// \t\t\tif (signal.sdp.type === \"offer\") {\n\t// \t\t\t\tconst description = await connections[\n\t// \t\t\t\t\tfromId\n\t// \t\t\t\t].createAnswer();\n\t// \t\t\t\tawait connections[fromId].setLocalDescription(description);\n\t// \t\t\t\tsocket.emit(\n\t// \t\t\t\t\t\"signal\",\n\t// \t\t\t\t\tfromId,\n\t// \t\t\t\t\tJSON.stringify({\n\t// \t\t\t\t\t\tsdp: connections[fromId].localDescription,\n\t// \t\t\t\t\t})\n\t// \t\t\t\t);\n\t// \t\t\t}\n\t// \t\t}\n\n\t// \t\tif (signal.ice) {\n\t// \t\t\tconnections[fromId]\n\t// \t\t\t\t.addIceCandidate(new RTCIceCandidate(signal.ice))\n\t// \t\t\t\t.catch((e) => console.log(e));\n\t// \t\t}\n\t// \t}\n\t// };\n\n\tconst getPermissions = async () => {\n\t\ttry {\n\t\t\tif (navigator.mediaDevices.getDisplayMedia) {\n\t\t\t\tsetIsScreenAvailable(true);\n\t\t\t} else {\n\t\t\t\tsetIsScreenAvailable(false);\n\t\t\t}\n\n\t\t\tif (isVideoActive || isAudioActive) {\n\t\t\t\tnavigator.mediaDevices\n\t\t\t\t\t.getUserMedia({\n\t\t\t\t\t\tvideo: isVideoActive,\n\t\t\t\t\t\taudio: isAudioActive,\n\t\t\t\t\t})\n\t\t\t\t\t.then((stream) => {\n\t\t\t\t\t\twindow.localStream = stream;\n\t\t\t\t\t\tuserVideoRef.current.srcObject = window.localStream;\n\t\t\t\t\t})\n\t\t\t\t\t.catch((e) => console.log(e));\n\t\t\t}\n\t\t} catch (e) {\n\t\t\treturn null;\n\t\t}\n\t};\n\n\tconst addMessage = (data, sender, socketIdSender) => {\n\t\tsetChatMessages((prevState) => [\n\t\t\t...prevState,\n\t\t\t{ sender: sender, data: data },\n\t\t]);\n\t\tif (socketIdSender !== socketId) {\n\t\t\tif (!isChatModalOpen) setTotalNewMessages(totalNewMessages + 1);\n\t\t\telse setTotalNewMessages(0);\n\t\t}\n\t};\n\n\t// Callback Functions\n\n\tuseEffect(() => {\n\t\tgetPermissions();\n\t\t// eslint-disable-next-line\n\t}, [isAskForUsername, isVideoActive, isAudioActive]);\n\n\tfunction addVideoStream(video, stream) {\n\t\tvideo.srcObject = stream;\n\t\tvideo.addEventListener(\"loadedmetadata\", () => {\n\t\t\tvideo.play();\n\t\t});\n\t\taddVideoStreamBase(video);\n\t}\n\n\tfunction connectToNewUser(userId, stream) {\n\t\tconst call = myPeer.current.call(userId, stream);\n\t\tconst video = document.createElement(\"video\");\n\t\tcall.on(\"stream\", (userVideoStream) => {\n\t\t\taddVideoStream(video, userVideoStream);\n\t\t});\n\t\tcall.on(\"close\", () => {\n\t\t\tvideo.remove();\n\t\t});\n\n\t\tpeers.current[userId] = call;\n\t}\n\n\tuseEffect(() => {\n\t\tif (!isAskForUsername) {\n\t\t\tsocket = io.connect(server_url, {\n\t\t\t\tsecure: true,\n\t\t\t\tpath: \"/api/v1/conference/join\",\n\t\t\t});\n\n\t\t\tmyPeer.current = new Peer({\n\t\t\t\thost: server_url,\n\t\t\t});\n\t\t\tconsole.log(myPeer.current);\n\t\t\tmyPeer.current.on(\"call\", (call) => {\n\t\t\t\tcall.answer(window.localStream);\n\t\t\t\tconst video = document.createElement(\"video\");\n\t\t\t\tcall.on(\"stream\", (userVideoStream) => {\n\t\t\t\t\taddVideoStream(video, userVideoStream);\n\t\t\t\t});\n\t\t\t});\n\t\t\tmyPeer.current.on(\"open\", (id) => {\n\t\t\t\tsocket.emit(\"join-room\", match.params.url, id);\n\t\t\t});\n\n\t\t\tsocket.on(\"user-connected\", (userId) => {\n\t\t\t\tconnectToNewUser(userId, window.localStream);\n\t\t\t});\n\n\t\t\t// socket.on(\"signal\", gotMessageFromServer);\n\n\t\t\tsocket.on(\"connect\", () => {\n\t\t\t\tsocket.emit(\"join-call\", origin + pathname);\n\t\t\t\tsocketId = socket.id;\n\t\t\t});\n\n\t\t\tsocket.on(\"chat-message\", addMessage);\n\n\t\t\tsocket.on(\"user-left\", (id) => {\n\t\t\t\tlet video = document.querySelector(`[data-socket=\"${id}\"]`);\n\t\t\t\tif (video !== null) {\n\t\t\t\t\telms--;\n\t\t\t\t\tvideo.parentNode.removeChild(video);\n\n\t\t\t\t\tlet main = document.getElementById(\"main\");\n\t\t\t\t\tchangeCssVideos(main, elms);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t///////////////\n\t\t\t///////////////\n\t\t}\n\t\t// eslint-disable-next-line\n\t}, [isAskForUsername]);\n\n\tif (!isChrome()) {\n\t\treturn <>Only works in chrome;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{isAskForUsername && (\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\tSet your username\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tsetUsername(e.target.value)\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t setIsAskForUsername(false)}\n\t\t\t\t\t\t\t\t\tclassName=\"username-selector__button\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tConnect\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t)}\n\t\t\t{!isAskForUsername && (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{isVideoActive ? (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{isAudioActive ? : }\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t{isScreenAvailable && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{isScreenActive ? (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tChat Room\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{chatMessages && chatMessages.length ? (\n\t\t\t\t\t\t\t\tchatMessages.map((item, index) => (\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{item.sender}: {item.data}\n\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t

No message yet

\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t setUserMessage(e.target.value)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tSend\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tCopy invite link\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default Video;\n","export function isChrome() {\n\tlet userAgent = (navigator && (navigator.userAgent || \"\")).toLowerCase();\n\tlet vendor = (navigator && (navigator.vendor || \"\")).toLowerCase();\n\tlet matchChrome = /google inc/.test(vendor)\n\t\t? userAgent.match(/(?:chrome|crios)\\/(\\d+)/)\n\t\t: null;\n\t// let matchFirefox = userAgent.match(/(?:firefox|fxios)\\/(\\d+)/)\n\t// return matchChrome !== null || matchFirefox !== null\n\treturn matchChrome !== null;\n}\n\nexport function changeCssVideos(main, elms) {\n\tif (main) {\n\t\tlet widthMain = main.offsetWidth;\n\t\tlet minWidth = \"30%\";\n\t\tif ((widthMain * 30) / 100 < 300) {\n\t\t\tminWidth = \"300px\";\n\t\t}\n\t\tlet minHeight = \"40%\";\n\n\t\tlet height = String(100 / elms) + \"%\";\n\t\tlet width = \"\";\n\t\tif (elms === 0 || elms === 1) {\n\t\t\twidth = \"100%\";\n\t\t\theight = \"100%\";\n\t\t} else if (elms === 2) {\n\t\t\twidth = \"45%\";\n\t\t\theight = \"100%\";\n\t\t} else if (elms === 3 || elms === 4) {\n\t\t\twidth = \"35%\";\n\t\t\theight = \"50%\";\n\t\t} else {\n\t\t\twidth = String(100 / elms) + \"%\";\n\t\t}\n\n\t\tlet videos = main.querySelectorAll(\"video\");\n\t\tfor (let a = 0; a < videos.length; ++a) {\n\t\t\tvideos[a].style.minWidth = minWidth;\n\t\t\tvideos[a].style.minHeight = minHeight;\n\t\t\tvideos[a].style.setProperty(\"width\", width);\n\t\t\tvideos[a].style.setProperty(\"height\", height);\n\t\t}\n\n\t\treturn { minWidth, minHeight, width, height };\n\t}\n}\n\nexport function addVideoStreamBase(elmt) {\n\tlet main = document.getElementById(\"main\");\n\tmain.appendChild(elmt);\n}\n\nexport function addVideoStream(cssMesure, main, event, socketListId) {\n\tif (cssMesure) {\n\t\tlet video = document.createElement(\"video\");\n\n\t\tlet css = {\n\t\t\tminWidth: cssMesure.minWidth,\n\t\t\tminHeight: cssMesure.minHeight,\n\t\t\tmaxHeight: \"100%\",\n\t\t\tmargin: \"10px\",\n\t\t};\n\t\tfor (let i in css) video.style[i] = css[i];\n\n\t\tvideo.className += \" video_call_screen__video_stream\";\n\t\tvideo.style.setProperty(\"width\", cssMesure.width);\n\t\tvideo.style.setProperty(\"height\", cssMesure.height);\n\t\tvideo.setAttribute(\"data-socket\", socketListId);\n\t\tvideo.srcObject = event.stream;\n\t\tvideo.autoplay = true;\n\t\tvideo.playsinline = true;\n\n\t\tmain.appendChild(video);\n\t}\n}\n","import React from \"react\";\nimport \"./index.scss\";\n\nfunction NavBar() {\n\treturn (\n\t\t
\n\t\t\t
Incogly
\n\t\t
\n\t);\n}\n\nexport default NavBar;\n","import React, { useState } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport { Input, Button } from \"@chakra-ui/react\";\nimport NavBar from \"../NavBar\";\nimport \"./Home.scss\";\n\nconst Home = () => {\n\tconst history = useHistory();\n\tconst [roomId, setRoomId] = useState(\"\");\n\n\tconst joinRoom = () => {\n\t\tlet tempRoomId;\n\t\tif (roomId) tempRoomId = roomId.trim();\n\t\telse tempRoomId = Math.random().toString(36).substring(2, 7);\n\t\thistory.push(`/${tempRoomId}`);\n\t};\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\tConnect\n\t\t\t\t\t\t&\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tCollaborate\n\t\t\t\t\t\t\t{\" \"}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\twithout friction.\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\tGo anonymous,\n\t\t\t\t\t\t
\n\t\t\t\t\t\tGo incogly.\n\t\t\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\tStart or join a meeting\n\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t setRoomId(e.target.value)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tStart Collaborating\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default Home;\n","import * as React from \"react\";\nimport Video from \"./components/Video\";\nimport Home from \"./components/Home\";\nimport { BrowserRouter as Router, Switch, Route } from \"react-router-dom\";\nimport { ChakraProvider } from \"@chakra-ui/react\";\n\nconst App = (props) => {\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default App;\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport App from \"./App\";\nimport \"./global_styling/index.scss\";\n\nReactDOM.render(, document.getElementById(\"root\"));\n","function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = 198;"],"sourceRoot":""}