Skip to content

feat: enhance ambassador card social media buttons#5113

Merged
asyncapi-bot merged 29 commits intoasyncapi:masterfrom
yashdarekar17:yashdarekar1
Apr 18, 2026
Merged

feat: enhance ambassador card social media buttons#5113
asyncapi-bot merged 29 commits intoasyncapi:masterfrom
yashdarekar17:yashdarekar1

Conversation

@yashdarekar17
Copy link
Copy Markdown
Contributor

@yashdarekar17 yashdarekar17 commented Feb 8, 2026

Description

  • Replaced the plain text social media links (Twitter, GitHub, LinkedIn) on the Ambassador cards with brand-specific icons to improve visual consistency across the community page.

  • Implemented interactive hover states for each icon: black for GitHub and Twitter/X, and the official brand blue (#0077b5) for LinkedIn.

  • Refactored the Index component in pages/community/ambassadors/index.tsx to utilize existing icon components (IconTwitter, IconGithub, IconLinkedIn) while maintaining the original card layout and flexbox logic.

Related issue(s)
Fixes #5097

Summary by CodeRabbit

  • New Features

    • Social links on the ambassadors page now use interactive icons (GitHub, LinkedIn, Twitter), include aria-labels, and render Twitter only when available.
    • "Become an Ambassador" buttons now share a unified program link.
  • Style

    • Improved spacing, link appearance (removed underlines, added color transitions/hover states), cursor behavior, and simplified image/layout for cleaner alignment.

@netlify
Copy link
Copy Markdown

netlify Bot commented Feb 8, 2026

Deploy Preview for asyncapi-website ready!

Built without sensitive environment variables

Name Link
🔨 Latest commit 73390b2
🔍 Latest deploy log https://app.netlify.com/projects/asyncapi-website/deploys/69e356cb664afd000819e9ad
😎 Deploy Preview https://deploy-preview-5113--asyncapi-website.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Feb 8, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Replaces plain-text ambassador social links with brand icon components, adds aria-labels and spacing/hover styles, introduces a local ambassadorProgramUrl for CTA anchors, and simplifies image-wrapper markup and minor class whitespace cleanups.

Changes

Cohort / File(s) Summary
Ambassador page UI
pages/community/ambassadors/index.tsx
Replaced textual social links with IconGithub, IconTwitter, IconLinkedIn; added conditional rendering for twitterUrl, aria-labels, gap-4 and hover color/transition styles; introduced ambassadorProgramUrl constant used by CTA anchors; removed redundant comments and extra wrapper/divs; minor class whitespace adjustments on title and image wrapper.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰 I swapped plain text for icons bright,
GitHub, LinkedIn, Twitter in flight,
Little hops of pixels, tidy and spry,
Hover and click — a cheerful eye,
Ambassadors gleam beneath moonlight.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main change: enhancing ambassador card social media buttons by replacing text with icon components.
Linked Issues check ✅ Passed All coding requirements from issue #5097 are met: icons imported and used, hover states applied (black for GitHub/Twitter, #0077b5 for LinkedIn), h-5 w-5 sizing maintained, card flexbox logic preserved.
Out of Scope Changes check ✅ Passed All changes are scoped to issue #5097 requirements: icon replacement, hover state styling, conditional Twitter rendering, and refactored button links for DRY code principle.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@codecov
Copy link
Copy Markdown

codecov Bot commented Feb 8, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (3d5f973) to head (73390b2).
⚠️ Report is 1 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff            @@
##            master     #5113   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files           22        22           
  Lines          830       830           
  Branches       159       159           
=========================================
  Hits           830       830           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@asyncapi-bot
Copy link
Copy Markdown
Contributor

asyncapi-bot commented Feb 8, 2026

⚡️ Lighthouse report for the changes in this PR:

Category Score
🔴 Performance 45
🟢 Accessibility 98
🟢 Best practices 92
🟢 SEO 100
🔴 PWA 33

Lighthouse ran on https://deploy-preview-5113--asyncapi-website.netlify.app/

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Fix all issues with AI agents
In `@pages/community/ambassadors/index.tsx`:
- Line 77: The img element uses an invalid Tailwind class "full" (see the JSX
<img ... className='full' />); replace it with the proper Tailwind utility(s)
such as "w-full" (and optionally "h-auto" to preserve aspect ratio) so the image
regains its width constraint—for example, update the className on the <img>
element to use "w-full" instead of "full".
- Around line 145-154: Add accessible names to the social icon links by adding
an aria-label (or title) to each anchor that wraps the icons so screen readers
can announce them; for example update the anchor that uses ambassador.twitterUrl
and IconTwitter (data-testid='Ambassadors-members-twitter') to include a
descriptive aria-label like "Twitter — {ambassador.name}" and do the same for
the other two social anchors (the LinkedIn and GitHub icon anchors) referencing
their respective ambassador.{linkedinUrl} and ambassador.{githubUrl} properties
so each icon link has a clear accessible label.
🧹 Nitpick comments (1)
pages/community/ambassadors/index.tsx (1)

144-175: Social icon links look good overall — minor inconsistency with data-testid attributes.

The Twitter link has data-testid='Ambassadors-members-twitter' but the GitHub and LinkedIn links are missing their data-testid attributes. For test consistency, consider adding them.

🔧 Proposed fix
                  {ambassador.githubUrl && (
                    <a
                      href={ambassador.githubUrl}
                      target='_blank'
                      rel='noreferrer'
                      className='text-gray-500 hover:text-black transition-colors'
+                     data-testid='Ambassadors-members-github'
                    >
                      <IconGithub className='h-5 w-5 fill-current' />
                    </a>
                  )}
                  {ambassador.linkedinUrl && (
                    <a
                      href={ambassador.linkedinUrl}
                      target='_blank'
                      rel='noreferrer'
                      className='text-gray-500 hover:text-[`#0077b5`] transition-colors'
+                     data-testid='Ambassadors-members-linkedin'
                    >
                      <IconLinkedIn className='h-5 w-5 fill-current' />
                    </a>
                  )}

Comment thread pages/community/ambassadors/index.tsx Outdated
Comment thread pages/community/ambassadors/index.tsx
@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud Bot commented Feb 8, 2026

@SHUBHANSHU602
Copy link
Copy Markdown
Contributor

@yashdarekar17 this is totally insane , 21 commits without any discussion .

Comment thread pages/community/ambassadors/index.tsx Outdated
['name']
);

// Variable to handle long URL and pass max-len linter
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// Variable to handle long URL and pass max-len linter

don't add unnecessary comment

Comment thread pages/community/ambassadors/index.tsx
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

♻️ Duplicate comments (1)
pages/community/ambassadors/index.tsx (1)

76-76: ⚠️ Potential issue | 🟠 Major

Fix invalid utility class on the cover image.

Line 76 uses className='full'. Unless .full is custom-defined in repo styles, this is a no-op and the image loses width styling.

🐛 Proposed fix
-          <img src='/img/homepage/ambassador-cover.svg' alt='ambassador-cover' className='full' />
+          <img src='/img/homepage/ambassador-cover.svg' alt='ambassador-cover' className='w-full' />
#!/bin/bash
# Verify if `full` is actually defined as a custom CSS utility/class.

rg -n "className=['\"][^'\"]*\bfull\b" --iglob '**/*.{tsx,jsx,ts,js}'
rg -n "^\s*\.full\b" --iglob '**/*.{css,scss,sass,less,pcss}'

Expected result: if no .full class definition is found, full should be replaced with Tailwind utilities like w-full.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pages/community/ambassadors/index.tsx` at line 76, The img element using
className='full' is likely a no-op; check whether a .full CSS rule exists and if
not replace the JSX img's className ('full') with Tailwind utilities such as
'w-full h-auto object-cover' (or simply 'w-full') to restore correct width
behavior — locate the <img ... alt='ambassador-cover' className='full' />
instance in pages/community/ambassadors/index.tsx and update the className
accordingly.
🧹 Nitpick comments (1)
pages/community/ambassadors/index.tsx (1)

143-171: Render the optional Twitter social link conditionally to avoid dead icon anchors.

Line 145-153 always renders the Twitter anchor. Since one ambassador is missing a Twitter URL, the icon link becomes non-functional. Conditionally render it based on ambassador.twitterUrl.

The GitHub link should remain unconditional (GitHub is a required field for all ambassadors). LinkedIn can also remain unconditional (all ambassadors have LinkedIn profiles).

♻️ Suggested refactor
                 <div className='flex border-t p-2 gap-4' data-testid='Ambassadors-members-socials'>
-                  <a
-                    href={ambassador.twitterUrl}
-                    target='_blank'
-                    rel='noreferrer'
-                    className='text-gray-500 hover:text-black transition-colors'
-                    data-testid='Ambassadors-members-twitter'
-                    aria-label={`Twitter profile of ${ambassador.name}`}
-                  >
-                    <IconTwitter className='h-5 w-5 fill-current' />
-                  </a>
+                  {ambassador.twitterUrl && (
+                    <a
+                      href={ambassador.twitterUrl}
+                      target='_blank'
+                      rel='noreferrer'
+                      className='text-gray-500 hover:text-black transition-colors'
+                      data-testid='Ambassadors-members-twitter'
+                      aria-label={`Twitter profile of ${ambassador.name}`}
+                    >
+                      <IconTwitter className='h-5 w-5 fill-current' />
+                    </a>
+                  )}
                   <a
                     href={ambassador.githubUrl}
                     target='_blank'
                     rel='noreferrer'
                     className='text-gray-500 hover:text-black transition-colors'
                     aria-label={`GitHub profile of ${ambassador.name}`}
                   >
                     <IconGithub className='h-5 w-5 fill-current' />
                   </a>
                   <a
                     href={ambassador.linkedinUrl}
                     target='_blank'
                     rel='noreferrer'
                     className='text-gray-500 hover:text-[`#0077b5`] transition-colors'
                     aria-label={`LinkedIn profile of ${ambassador.name}`}
                   >
                     <IconLinkedIn className='h-5 w-5 fill-current' />
                   </a>
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pages/community/ambassadors/index.tsx` around lines 143 - 171, The Twitter
anchor for each ambassador is always rendered even when ambassador.twitterUrl is
missing, producing a dead icon link; update the JSX in
pages/community/ambassadors/index.tsx to render the <a ...
data-testid='Ambassadors-members-twitter'> and the IconTwitter component only
when ambassador.twitterUrl is truthy (e.g., wrap that anchor in a conditional
check like if ambassador.twitterUrl), leaving the GitHub and LinkedIn anchors
(IconGithub, IconLinkedIn) unchanged so required links remain unconditional.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In `@pages/community/ambassadors/index.tsx`:
- Line 76: The img element using className='full' is likely a no-op; check
whether a .full CSS rule exists and if not replace the JSX img's className
('full') with Tailwind utilities such as 'w-full h-auto object-cover' (or simply
'w-full') to restore correct width behavior — locate the <img ...
alt='ambassador-cover' className='full' /> instance in
pages/community/ambassadors/index.tsx and update the className accordingly.

---

Nitpick comments:
In `@pages/community/ambassadors/index.tsx`:
- Around line 143-171: The Twitter anchor for each ambassador is always rendered
even when ambassador.twitterUrl is missing, producing a dead icon link; update
the JSX in pages/community/ambassadors/index.tsx to render the <a ...
data-testid='Ambassadors-members-twitter'> and the IconTwitter component only
when ambassador.twitterUrl is truthy (e.g., wrap that anchor in a conditional
check like if ambassador.twitterUrl), leaving the GitHub and LinkedIn anchors
(IconGithub, IconLinkedIn) unchanged so required links remain unconditional.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 9834d692-56a6-45f6-b51a-cb28d446e7fb

📥 Commits

Reviewing files that changed from the base of the PR and between f3f25ef and 2081cad.

📒 Files selected for processing (1)
  • pages/community/ambassadors/index.tsx

Copy link
Copy Markdown
Member

@princerajpoot20 princerajpoot20 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. @yashdarekar17 Thanks for your effort

@princerajpoot20
Copy link
Copy Markdown
Member

/rtm

@princerajpoot20
Copy link
Copy Markdown
Member

/rtm

@sonarqubecloud
Copy link
Copy Markdown

@asyncapi-bot asyncapi-bot merged commit e928c87 into asyncapi:master Apr 18, 2026
22 of 23 checks passed
@github-project-automation github-project-automation Bot moved this from To Be Triaged to Done in Website - Kanban Apr 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

[FEATURE] Enhance Ambassador Card Social Media Buttons On Community Page

4 participants