"use client"; import { useState, useEffect } from "react"; import CourseSettingsLink from "./CourseSettingsLink"; import ModuleList from "./modules/ModuleList"; import LeftChevron from "@/components/icons/LeftChevron"; import RightChevron from "@/components/icons/RightChevron"; const collapseThreshold = 1400; export default function CollapsableSidebar() { const [windowCollapseRecommended, setWindowCollapseRecommended] = useState(window.innerWidth <= collapseThreshold); const [userCollapsed, setUserCollapsed] = useState< "unset" | "collapsed" | "uncollapsed" >("unset"); useEffect(() => { function handleResize() { if (window.innerWidth <= collapseThreshold) { setWindowCollapseRecommended(true); } else { setWindowCollapseRecommended(false); } } window.addEventListener("resize", handleResize); return () => window.removeEventListener("resize", handleResize); }, []); let collapsed; if (userCollapsed === "unset") { collapsed = windowCollapseRecommended; } else { collapsed = userCollapsed === "collapsed"; } const widthClass = collapsed ? "w-0" : "w-96"; const visibilityClass = collapsed ? "invisible " : "visible"; return (