feat: Topics page loads with all categories collapsed; expand/collapse…

- "frontend/src/pages/TopicsBrowse.tsx"
- "frontend/src/App.css"

GSD-Task: S02/T01
This commit is contained in:
jlightner 2026-03-31 08:30:55 +00:00
parent df559bbca0
commit a9b65fcea9
2 changed files with 16 additions and 4 deletions

View file

@ -2315,7 +2315,19 @@ a.app-footer__repo:hover {
/* ── Sub-topics inside card ───────────────────────────────────────────────── */
.topic-subtopics-wrapper {
display: grid;
grid-template-rows: 0fr;
transition: grid-template-rows 300ms ease;
}
.topic-subtopics-wrapper[data-expanded="true"] {
grid-template-rows: 1fr;
}
.topic-subtopics {
overflow: hidden;
min-height: 0;
border-top: 1px solid var(--color-border);
}

View file

@ -34,8 +34,8 @@ export default function TopicsBrowse() {
const data = await fetchTopics();
if (!cancelled) {
setCategories(data);
// All expanded by default
setExpanded(new Set(data.map((c) => c.name)));
// Start collapsed
setExpanded(new Set());
}
} catch (err) {
if (!cancelled) {
@ -151,7 +151,7 @@ export default function TopicsBrowse() {
</button>
</div>
{isExpanded && (
<div className="topic-subtopics-wrapper" data-expanded={isExpanded}>
<div className="topic-subtopics">
{cat.sub_topics.map((st) => {
const stSlug = st.name.toLowerCase().replace(/\s+/g, "-");
@ -175,7 +175,7 @@ export default function TopicsBrowse() {
);
})}
</div>
)}
</div>
</div>
);
})}