forked from naman79820/circuitverse-leaderboard
-
Notifications
You must be signed in to change notification settings - Fork 49
feat: add Vue Simulator section to Releases page #175
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
naman79820
merged 15 commits into
CircuitVerse:main
from
Ayush1169:fix/vue-simulator-releases
Jan 9, 2026
Merged
Changes from 13 commits
Commits
Show all changes
15 commits
Select commit
Hold shift + click to select a range
666014f
feat: add dynamic releases page with contributor recognition
Ayush1169 0bb4702
fix: align release types, workflow, and UI with generated data
Ayush1169 68562be
fix: add security rel attributes to external links
Ayush1169 f7f9c43
chore: remove unused ts-node dependency
Ayush1169 cc2a92f
Merge branch 'main' into fix/bug
Ayush1169 76cadc6
fix: restore next-env.d.ts as ambient declaration
Ayush1169 234323a
chore: remove generated releases data file
Ayush1169 812aa62
chore: restore jsx preserve for Next.js compatibility
Ayush1169 f730362
fix: improve release summaries and harden data generation
Ayush1169 a4e0527
fix: improve mobile responsiveness of releases page
Ayush1169 72c6b8c
Merge branch 'main' into fix/release
Ayush1169 fa0f3ad
fix: improve releases card header wrapping on small screens
Ayush1169 2245ea5
feat: add vue simulator releases tab
Ayush1169 4ac6337
fixed vue simulator releases tab
Ayush1169 ccdafe6
Update .gitignore to allow overrides.gen.css
naman79820 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,28 +1,17 @@ | ||
| import { getReleases } from "@/lib/releases"; | ||
| import { ReleaseCard } from "@/components/Releases/ReleaseCard"; | ||
| import ReleasesClient from "@/components/Releases/ReleasesClient"; | ||
|
|
||
| export default async function ReleasesPage() { | ||
| const releases = await getReleases(); | ||
|
|
||
| return ( | ||
| <div className="max-w-5xl mx-auto px-4 py-10 space-y-6"> | ||
| <div> | ||
| <h1 className="text-3xl font-bold text-[#50B78B]"> | ||
| Releases | ||
| </h1> | ||
| <p className="text-sm text-zinc-500 mt-1"> | ||
| Celebrating contributors across CircuitVerse releases | ||
| </p> | ||
| </div> | ||
| <div className="mx-auto w-full max-w-5xl px-4 py-10"> | ||
| <h1 className="text-3xl font-bold text-[#50B78B]">Releases</h1> | ||
| <p className="text-sm text-zinc-500 mt-1"> | ||
| Celebrating contributors across CircuitVerse releases | ||
| </p> | ||
|
|
||
| <div className="space-y-4"> | ||
| {releases.map((release, index) => ( | ||
| <ReleaseCard | ||
| key={`${release.repoSlug}-${release.version}`} | ||
| release={release} | ||
| /> | ||
| ))} | ||
| </div> | ||
| <ReleasesClient releases={releases} /> | ||
| </div> | ||
| ); | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,61 @@ | ||
| "use client"; | ||
|
|
||
| import { useState } from "react"; | ||
| import { Release } from "@/lib/releases"; | ||
| import { ReleaseCard } from "./ReleaseCard"; | ||
|
|
||
| export default function ReleasesClient({ | ||
| releases, | ||
| }: { | ||
| releases: Release[]; | ||
| }) { | ||
| const [activeRepo, setActiveRepo] = | ||
| useState<"Mobile App" | "Vue Simulator">("Mobile App"); | ||
|
|
||
| const filtered = releases.filter( | ||
| (r) => r.repo === activeRepo | ||
| ); | ||
|
|
||
| return ( | ||
| <div className="mt-6 space-y-6"> | ||
| {/* Tabs */} | ||
| <div className="flex gap-6 border-b pb-2"> | ||
| <button | ||
| onClick={() => setActiveRepo("Mobile App")} | ||
| className={ | ||
| activeRepo === "Mobile App" | ||
| ? "font-semibold text-[#50B78B]" | ||
| : "text-zinc-500" | ||
| } | ||
| > | ||
| Mobile App | ||
| </button> | ||
|
|
||
| <button | ||
| onClick={() => setActiveRepo("Vue Simulator")} | ||
| className={ | ||
| activeRepo === "Vue Simulator" | ||
| ? "font-semibold text-[#50B78B]" | ||
| : "text-zinc-500" | ||
| } | ||
| > | ||
| Vue Simulator | ||
| </button> | ||
| </div> | ||
|
|
||
| {/* Content */} | ||
| {filtered.length === 0 ? ( | ||
| <p className="text-sm text-zinc-500"> | ||
| No releases yet for {activeRepo}. | ||
| </p> | ||
| ) : ( | ||
| filtered.map((release) => ( | ||
| <ReleaseCard | ||
| key={`${release.repoSlug}-${release.version}`} | ||
| release={release} | ||
| /> | ||
| )) | ||
| )} | ||
| </div> | ||
| ); | ||
| } | ||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing ARIA attributes for accessible tab navigation.
The tab buttons lack proper ARIA attributes needed for screen reader users and assistive technology. Tab interfaces should implement the ARIA tabs pattern with:
role="tablist"on the containerrole="tab"on each buttonaria-selected="true|false"to indicate the active tabaria-controlslinking each tab to its panel♿ Proposed accessibility improvements
{/* Tabs */} - <div className="flex gap-6 border-b pb-2"> + <div role="tablist" className="flex gap-6 border-b pb-2"> <button + role="tab" + aria-selected={activeRepo === "Mobile App"} + aria-controls="releases-panel" onClick={() => setActiveRepo("Mobile App")} className={ activeRepo === "Mobile App" ? "font-semibold text-[#50B78B]" : "text-zinc-500" } > Mobile App </button> <button + role="tab" + aria-selected={activeRepo === "Vue Simulator"} + aria-controls="releases-panel" onClick={() => setActiveRepo("Vue Simulator")} className={ activeRepo === "Vue Simulator" ? "font-semibold text-[#50B78B]" : "text-zinc-500" } > Vue Simulator </button> </div> {/* Content */} - {filtered.length === 0 ? ( + <div id="releases-panel" role="tabpanel"> + {filtered.length === 0 ? ( <p className="text-sm text-zinc-500"> No releases yet for {activeRepo}. </p> ) : ( filtered.map((release) => ( <ReleaseCard key={`${release.repoSlug}-${release.version}`} release={release} /> )) )} + </div>For full keyboard support, also add arrow key handlers to move focus between tabs.
🤖 Prompt for AI Agents