Skip to content

[Feat] Issue-1050 Revamp release page UI - #1076

Open
SwarajKeshari wants to merge 8 commits into
stagefrom
feat/issue-1050-revamp-release-page-ui
Open

[Feat] Issue-1050 Revamp release page UI#1076
SwarajKeshari wants to merge 8 commits into
stagefrom
feat/issue-1050-revamp-release-page-ui

Conversation

@SwarajKeshari

Copy link
Copy Markdown
Contributor

Description

Closes #1050

Revamp the Release Page UI with a modular component architecture.

What changed:

  • New page layout — Replaced the single monolithic component with dedicated modular components: ReleaseHero, ChangeLog, AvatarStack, and VersionCard, each with scoped CSS modules.

  • Hero section — New ReleaseHero component displays the selected version's landing page screenshot with version badge and release date. Image resolution is data-driven via HERO_IMAGE_MAP in Constants.js, with automatic fallback to the latest image for versions that didn't ship a UI change — ensuring old releases always show their era-correct screenshot.

  • Changelog sectionChangeLog renders per-version release notes. Each entry shows the feature category badge, description, PR number (where available), and contributor avatar(s). Supports single and multiple contributors per entry.

  • Contributor avatars — New AvatarStack component renders overlapping GitHub avatars with hover tooltips linking to contributor profiles. Handles both contributor (single) and contributors (array) shapes defensively.

  • Version selectorVersionCard lists all available versions. Selecting one updates the hero image and changelog in sync.

  • Centralized data — All release content (versions, entries, contributors, hero image keys) is defined in RELEASE_DATA inside Constants.js. Synced with live website data across all versions: v0.8.0, v0.7.0, v0.6.0, and Previous Versions.

  • Defensive rendering — All components handle missing/partial data (no PR number, no contributors, null entries) without crashing.

  • Tests — Added unit tests for all new components (ReleaseHero, AvatarStack, ChangeLog, VersionCard) and updated Release.test.jsx.All 618 UI tests pass.

What type of PR is this? (Check all applicable)

  • 🍕 Feature
  • 🐛 Bug Fix
  • 📄 Documentation Update
  • 👨‍💻 Code Refactor
  • 🔥 Performance Improvements
  • ✅ Test
  • 🛠️ CI/CD

Screenshots

Screencast.From.2026-07-19.23-53-50.webm

Checklist

  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes

@github-actions github-actions Bot added the enhancement New feature or request label Jul 19, 2026
@SwarajKeshari SwarajKeshari changed the title Feat/issue 1050 revamp release page UI [Feat] Issue-1050 Revamp release page UI Jul 19, 2026
…mponents

Add test coverage for partial/missing data scenarios across all release
page components:

- VersionCard: null entry guard, missing prNumber/title/description/category,
  contributor field precedence and malformed contributor filtering
- AvatarStack: empty/null users, invalid username filtering, fallback
  avatarUrl/profileUrl generation, excess count badge
- ReleaseHero: contributors section conditional rendering, null selectedRelease
  guard, heroImage key fallback, CTA click without DOM target
- ChangeLog: 'Select Release' fallback, empty entries state, category filter
  logic, null selectedRelease guard, active category reset on version switch
- Release page: author excluded from hero contributors, deduplication logic,
  default version in dropdown trigger
- Clean up duplicate CSS selectors and fix color contrast for badges
- Add explicit type=button attributes and apply optional chaining
- Parameterize ReleaseHero tests and simplify VersionCard conditional logi
@SwarajKeshari
SwarajKeshari force-pushed the feat/issue-1050-revamp-release-page-ui branch from 9cdb43f to 2207498 Compare July 20, 2026 13:02
…ease constants

- Replace transparent badge background colors with solid hex values in VersionCard to satisfy WCAG contrast requirements.
- Remove redundant avatarUrl and profileUrl properties from RELEASE_DATA.
@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
9.8% Duplication on New Code (required ≤ 3%)

See analysis details on SonarQube Cloud

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Revamp Release Page UI

1 participant