diff --git a/public/.env.example.js b/public/.env.example.js index 743ac79..6dfa2d2 100644 --- a/public/.env.example.js +++ b/public/.env.example.js @@ -6,3 +6,4 @@ var SSO_RESPONSE_TYPE = "code"; var SSO_CODE_CHALLENGE_METHOD = "S256"; var SSO_POST_LOGOUT_REDIRECT = "http://example.com?logout=1"; var CALENDAR_BASE_URL = "https://calendar.example.com"; +var MAIL_SPA_URL = "https://mail.example.com" diff --git a/src/features/Events/EventDisplayPreview.tsx b/src/features/Events/EventDisplayPreview.tsx index a70fb77..7350380 100644 --- a/src/features/Events/EventDisplayPreview.tsx +++ b/src/features/Events/EventDisplayPreview.tsx @@ -20,6 +20,7 @@ import { PopoverPosition, } from "@mui/material"; import EditIcon from "@mui/icons-material/Edit"; +import EmailIcon from "@mui/icons-material/Email"; import DeleteIcon from "@mui/icons-material/Delete"; import VisibilityIcon from "@mui/icons-material/Visibility"; import CloseIcon from "@mui/icons-material/Close"; @@ -61,6 +62,7 @@ export default function EventPreviewModal({ const user = useAppSelector((state) => state.user); const [showAllAttendees, setShowAllAttendees] = useState(false); const [openFullDisplay, setOpenFullDisplay] = useState(false); + const mailSpaUrl = (window as any).MAIL_SPA_URL ?? null; useEffect(() => { if (!event || !calendar) { @@ -120,6 +122,20 @@ export default function EventPreviewModal({ gap: 1, }} > + {mailSpaUrl && attendees.length > 1 && ( + + window.open( + `${mailSpaUrl}/mailto/?uri=mailto:${event.attendee + .map((a) => a.cal_address) + .join(",")}?subject=${event.title}` + ) + } + > + + + )} {user.userData.email !== event.organizer?.cal_address && (