From 1ebb45b73d1f9bdbb69a5e0f815828eded3113a0 Mon Sep 17 00:00:00 2001 From: Taehee Choi Date: Wed, 30 Mar 2022 12:56:43 -0700 Subject: [PATCH] contacts and meeting details pages now show joinUrl in a popup window --- .../body-components/UpperBody.tsx | 27 ++++++++++++++++-- .../meeting-details-components/Header.tsx | 28 +++++++++++++++++-- 2 files changed, 49 insertions(+), 6 deletions(-) diff --git a/src/components/contacts/contacts-components/body-components/UpperBody.tsx b/src/components/contacts/contacts-components/body-components/UpperBody.tsx index 8f1af91..b70f538 100644 --- a/src/components/contacts/contacts-components/body-components/UpperBody.tsx +++ b/src/components/contacts/contacts-components/body-components/UpperBody.tsx @@ -1,5 +1,14 @@ -import { Box, Button, IconButton, Typography } from "@mui/material"; -import React from "react"; +import { + Box, + Button, + Dialog, + DialogContent, + DialogContentText, + DialogTitle, + IconButton, + Typography, +} from "@mui/material"; +import React, { useState } from "react"; import PhoneIcon from "@mui/icons-material/Phone"; import AddIcon from "@mui/icons-material/Add"; import UserLite from "../../../../api-bodies/UserLite"; @@ -26,6 +35,7 @@ interface Props { const UpperBody: React.FC = ({ contactInfo }) => { const dispatch = useAppDispatch(); + const [dialog, setDialog] = useState({ open: false, url: "" }); const userStatus: UserStatus = useAppSelector((state) => selectUserStatus(state, contactInfo.uuid) ); @@ -54,7 +64,7 @@ const UpperBody: React.FC = ({ contactInfo }) => { `/users/${me}/meetings`, JSON.stringify(newMeeting) ); - window.open(response.data.joinUrl, "_blank")?.focus(); + setDialog({ open: true, url: response.data.joinUrl }); } catch (e) { console.log(e); } @@ -141,6 +151,17 @@ const UpperBody: React.FC = ({ contactInfo }) => { ) : null} + { + setDialog({ open: false, url: "" }); + }} + > + Join + + {dialog.url} + + ); }; diff --git a/src/components/meeting-details/meeting-details-components/Header.tsx b/src/components/meeting-details/meeting-details-components/Header.tsx index 0299555..3c6b2f4 100644 --- a/src/components/meeting-details/meeting-details-components/Header.tsx +++ b/src/components/meeting-details/meeting-details-components/Header.tsx @@ -1,5 +1,15 @@ -import { AppBar, Button, IconButton, Toolbar, Typography } from "@mui/material"; -import React from "react"; +import { + AppBar, + Button, + Dialog, + DialogContent, + DialogContentText, + DialogTitle, + IconButton, + Toolbar, + Typography, +} from "@mui/material"; +import React, { useState } from "react"; import CloseIcon from "@mui/icons-material/Close"; import { useAppDispatch } from "../../../redux/hooks"; import { close } from "../../../redux/slices/meetingDetailsOpenSlice"; @@ -11,6 +21,7 @@ interface Props { const Header: React.FC = ({ meeting }) => { const dispatch = useAppDispatch(); + const [dialog, setDialog] = useState({ open: false, url: "" }); return ( @@ -22,7 +33,7 @@ const Header: React.FC = ({ meeting }) => { variant="contained" color="secondary" onClick={() => { - window.open(meeting.joinUrl, "_blank")?.focus(); + setDialog({ open: true, url: meeting.joinUrl }); }} > Join @@ -37,6 +48,17 @@ const Header: React.FC = ({ meeting }) => { + { + setDialog({ open: false, url: "" }); + }} + > + Join + + {dialog.url} + + ); };