add support for hiding non-assessments (discord issue)

This commit is contained in:
Alphons Joseph
2025-03-11 20:13:44 +08:00
parent 75e687f934
commit 8c2f36033f
+32
View File
@@ -991,6 +991,37 @@ function handleTimetableZoom(): void {
}) })
} }
function handleTimetableAssessmentHide(): void {
const hideControls = document.createElement("div")
hideControls.className = "timetable-hide-controls"
const hideOn = document.createElement("button")
hideOn.className = "uiButton timetable-hide iconFamily"
hideOn.innerHTML = "" // Using unicode for zoom in icon
hideControls.appendChild(hideOn)
const toolbar = document.getElementById("toolbar")
toolbar?.appendChild(hideControls)
function hideElements(): void {
const entries = document.querySelectorAll(".entry")
entries.forEach((entry: Element) => {
const entryEl = entry as HTMLElement
if (!entryEl.classList.contains("assessment") && !(entryEl.style.display === "none")) {
entryEl.style.display = "none"
} else {
entryEl.style.display = ""
}
})
}
hideOn.addEventListener("click", () => {
hideElements()
})
}
async function handleNotices(node: Element): Promise<void> { async function handleNotices(node: Element): Promise<void> {
if (!(node instanceof HTMLElement)) return if (!(node instanceof HTMLElement)) return
if (!settingsState.animations) return if (!settingsState.animations) return
@@ -1068,6 +1099,7 @@ async function handleTimetable(): Promise<void> {
} }
handleTimetableZoom() handleTimetableZoom()
handleTimetableAssessmentHide()
} }
async function handleNewsPage(): Promise<void> { async function handleNewsPage(): Promise<void> {