import { GearSix, Sidebar } from '@phosphor-icons/react'; import { initSettings, OptionsStore } from '@shared/storage/OptionsStore'; import { Button } from '@views/components/common/Button'; import CourseStatus from '@views/components/common/CourseStatus'; import Divider from '@views/components/common/Divider'; import { LargeLogo } from '@views/components/common/LogoIcon'; import ScheduleTotalHoursAndCourses from '@views/components/common/ScheduleTotalHoursAndCourses'; import useSchedules from '@views/hooks/useSchedules'; import { openTabFromContentScript } from '@views/lib/openNewTabFromContentScript'; import React, { useEffect, useState } from 'react'; /** * Opens the options page in a new tab. * @returns A promise that resolves when the options page is opened. */ const handleOpenOptions = async (): Promise => { const url = chrome.runtime.getURL('/options.html'); await openTabFromContentScript(url); }; interface CalendarHeaderProps { onSidebarToggle?: () => void; } /** * Renders the header component for the calendar. * @returns The JSX element representing the calendar header. */ export default function CalendarHeader({ onSidebarToggle }: CalendarHeaderProps): JSX.Element { const [enableCourseStatusChips, setEnableCourseStatusChips] = useState(false); const [_enableDataRefreshing, setEnableDataRefreshing] = useState(false); const [activeSchedule] = useSchedules(); useEffect(() => { initSettings().then(({ enableCourseStatusChips, enableDataRefreshing }) => { setEnableCourseStatusChips(enableCourseStatusChips); setEnableDataRefreshing(enableDataRefreshing); }); const l1 = OptionsStore.listen('enableCourseStatusChips', async ({ newValue }) => { setEnableCourseStatusChips(newValue); // console.log('enableCourseStatusChips', newValue); }); const l2 = OptionsStore.listen('enableDataRefreshing', async ({ newValue }) => { setEnableDataRefreshing(newValue); // console.log('enableDataRefreshing', newValue); }); return () => { OptionsStore.removeListener(l1); OptionsStore.removeListener(l2); }; }, []); return (
); }