import { initSettings, OptionsStore } from '@shared/storage/OptionsStore'; import { Status } from '@shared/types/Course'; 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 Text from '@views/components/common/Text/Text'; import useSchedules from '@views/hooks/useSchedules'; import { getUpdatedAtDateTimeString } from '@views/lib/getUpdatedAtDateTimeString'; import { openTabFromContentScript } from '@views/lib/openNewTabFromContentScript'; import React, { useEffect, useState } from 'react'; import MenuIcon from '~icons/material-symbols/menu'; import RefreshIcon from '~icons/material-symbols/refresh'; import SettingsIcon from '~icons/material-symbols/settings'; /** * 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 (
)}
{enableCourseStatusChips && ( <> )} {/*
); }