import React from "react"; import { getEventStart, getEventEnd, isAllDay, } from "../../../helpers/displayEvent"; import { isHidden } from "../../../helpers/common"; import { EventEvent, HideType } from "../../../../types/types"; import GoogleIcon from "@mui/icons-material/Google"; import AppleIcon from "@mui/icons-material/Apple"; import EventIcon from "@mui/icons-material/Event"; import { IconButton } from "@mui/material"; import { visuallyHidden } from "@mui/utils"; import { Box } from "@mui/system"; import { google } from "calendar-link"; const buildGoogleLink = (event: EventEvent) => { return google({ title: event.title, description: event.description_text.replace(/[\r\n]/g, `
`), location: event.location, start: getEventStart(event), end: getEventEnd(event), allDay: isAllDay(event), }); }; const buildGoogleStr = (event: EventEvent) => { const href = buildGoogleLink(event); return ( Add {event.title} to Google Calendar ); }; const buildiCal = (event: EventEvent) => { return ( Add {event.title} to iCal ); }; const buildOutlookCal = (event: EventEvent) => { return ( Add {event.title} to Outlook ); }; interface AddCalProps { event: EventEvent; hideaddcal?: HideType; } const AddCal = (props: AddCalProps) => { const { event, hideaddcal } = props; if (isHidden(hideaddcal)) { return <>; } return ( add to calendar {buildGoogleStr(event)} {buildiCal(event)} {buildOutlookCal(event)} ); }; export default AddCal; export { buildGoogleStr, buildiCal, buildOutlookCal, buildGoogleLink };