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)}/>
)
};