import Card from "react-bootstrap/Card"; import Button from "react-bootstrap/Button"; import DashboardCard from "./DashboardCard"; import {useContext, useMemo, useState} from "react"; import {Teacher, Term} from "../../interfaces"; import Form from "react-bootstrap/Form"; import {isHiddenTeacher, sectionsTaughtThisTerm} from "../../lib/teachers"; import {globalContext} from "../../contexts"; import {getTeachersForDay} from "../../lib/teachers"; type QuickEmailButtonProps = { title: string, teachers: Teacher[], body: string } const QuickEmailButton = ({title, teachers, body}: QuickEmailButtonProps) => ; const openEmailTemplate = (to: string[], body: string) => { const deduplicatedEmails = Array.from(new Set(to)); // Open the mailto URL and focus the window const win = window.open(`mailto:${deduplicatedEmails.join(",")}?body=${encodeURI(body)}`, "_blank"); if (win !== null) { win.focus(); } }; type TeacherObject = { semester: Teacher[], today: Teacher[], tomorrow: Teacher[] } export default function QuickEmailCard({currentTerm}: { currentTerm: Term | null }) { const {psData} = useContext(globalContext); const [hideTeachers, setHideTeachers] = useState(true); const teachers = useMemo(() => { const teachers: TeacherObject = { semester: [], today: [], tomorrow: [] }; const currentDate = new Date(); if (currentTerm !== null) { teachers.semester = psData.teachers.filter(t => sectionsTaughtThisTerm(t, currentTerm)); teachers.today = getTeachersForDay(currentDate, psData.schedule); teachers.tomorrow = getTeachersForDay(new Date(new Date().setDate(currentDate.getDate() + 1)), psData.schedule); } return teachers; }, [psData.teachers, currentTerm, psData.schedule]); const displayTeachers: TeacherObject = useMemo(() => (!hideTeachers || currentTerm === null) ? teachers : { semester: teachers.semester.filter(t => !isHiddenTeacher(t, currentTerm)), today: teachers.today.filter(t => !isHiddenTeacher(t, currentTerm)), tomorrow: teachers.tomorrow.filter(t => !isHiddenTeacher(t, currentTerm)) } , [teachers, hideTeachers, currentTerm]); const emailBodyTemplate = `Dear teachers,\n\n\n\nThanks,\n${psData.student.firstName}`; return ( Quick Email Compose to: setHideTeachers(e.currentTarget.checked)}/>
) };