feat(settings): allow disabling of auto-loading courses (#489)

This commit is contained in:
Samuel Gunter
2025-01-20 23:04:14 -06:00
committed by GitHub
parent cd05e5e7fc
commit b74c698866

View File

@@ -1,3 +1,4 @@
import { OptionsStore } from '@shared/storage/OptionsStore';
import type { Course, ScrapedRow } from '@shared/types/Course'; import type { Course, ScrapedRow } from '@shared/types/Course';
import ExtensionRoot from '@views/components/common/ExtensionRoot/ExtensionRoot'; import ExtensionRoot from '@views/components/common/ExtensionRoot/ExtensionRoot';
import AutoLoad from '@views/components/injected/AutoLoad/AutoLoad'; import AutoLoad from '@views/components/injected/AutoLoad/AutoLoad';
@@ -25,6 +26,7 @@ export default function CourseCatalogMain({ support }: Props): JSX.Element | nul
const [rows, setRows] = React.useState<ScrapedRow[]>([]); const [rows, setRows] = React.useState<ScrapedRow[]>([]);
const [selectedCourse, setSelectedCourse] = useState<Course | null>(null); const [selectedCourse, setSelectedCourse] = useState<Course | null>(null);
const [showPopup, setShowPopup] = useState(false); const [showPopup, setShowPopup] = useState(false);
const [enableScrollToLoad, setEnableScrollToLoad] = useState<boolean>(false);
useEffect(() => { useEffect(() => {
populateSearchInputs(); populateSearchInputs();
@@ -43,6 +45,10 @@ export default function CourseCatalogMain({ support }: Props): JSX.Element | nul
setRows(scrapedRows); setRows(scrapedRows);
}, [support]); }, [support]);
useEffect(() => {
OptionsStore.get('enableScrollToLoad').then(setEnableScrollToLoad);
}, []);
const addRows = (newRows: ScrapedRow[]) => { const addRows = (newRows: ScrapedRow[]) => {
newRows.forEach(row => { newRows.forEach(row => {
document.querySelector('table tbody')!.appendChild(row.element); document.querySelector('table tbody')!.appendChild(row.element);
@@ -83,7 +89,7 @@ export default function CourseCatalogMain({ support }: Props): JSX.Element | nul
onClose={() => setShowPopup(false)} onClose={() => setShowPopup(false)}
afterLeave={() => setSelectedCourse(null)} afterLeave={() => setSelectedCourse(null)}
/> />
<AutoLoad addRows={addRows} /> {enableScrollToLoad && <AutoLoad addRows={addRows} />}
</ExtensionRoot> </ExtensionRoot>
); );
} }