Skip to content

Conversation

@Priyank0703
Copy link

@Priyank0703 Priyank0703 commented Jul 29, 2025

fix: #4065

Description

  • Case Studies page table is now mobile responsive
  • proof(img) :
Screenshot 2025-07-29 203355

fix: #4065

Summary by CodeRabbit

  • Style
    • Updated JSX to use double quotes for attribute values and improved indentation for consistency.
    • Enhanced table styling for better readability and responsiveness, including horizontal scrolling on smaller screens.
    • Improved list and link styling for better spacing, accessibility, and user experience.
    • Removed deprecated HTML tags and updated class names for modern layout practices.

@netlify
Copy link

netlify bot commented Jul 29, 2025

Deploy Preview for asyncapi-website ready!

Built without sensitive environment variables

Name Link
🔨 Latest commit 52e4b38
🔍 Latest deploy log https://app.netlify.com/projects/asyncapi-website/deploys/6888e63b65e67e000893d00e
😎 Deploy Preview https://deploy-preview-4289--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
Contributor

coderabbitai bot commented Jul 29, 2025

Walkthrough

The update refactors the Case Studies page by converting single quotes to double quotes in JSX attributes, reformatting elements for consistent indentation, and restructuring the Adopters table for improved mobile responsiveness. Additional accessibility and styling enhancements were applied to anchor tags and list elements. No logic or data flow changes were made.

Changes

Cohort / File(s) Change Summary
Case Studies Page JSX & Table Responsiveness
pages/casestudies/index.tsx
Converted single to double quotes in JSX, improved formatting, replaced <center> with a responsive <div>, updated table and list class names for mobile-friendliness, and enhanced anchor tag accessibility and styling.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Assessment against linked issues

Objective Addressed Explanation
Make Case Studies page table mobile responsive so all information is accessible and readable (#4065)

Suggested labels

ready-to-merge

Suggested reviewers

  • derberg
  • anshgoyalevil
  • Mayaleeeee

Poem

A table once wide, now scrolls with delight,
On screens big or small, its data in sight.
Double quotes glisten, classes align,
Mobile or desktop, the view is now fine.
🐇✨
Responsive and neat—
This page is a treat!

Note

⚡️ Unit Test Generation is now available in beta!

Learn more here, or try it out under "Finishing Touches" below.

✨ Finishing Touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai generate unit tests to generate unit tests for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@asyncapi-bot
Copy link
Contributor

⚡️ Lighthouse report for the changes in this PR:

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

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

Copy link
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

🧹 Nitpick comments (3)
pages/casestudies/index.tsx (3)

110-118: Border style is inconsistent across columns.

<th> #1 uses border while the others use border-2. Stick to one style for visual consistency:

-<th className="border p-2 font-bold text-left">Company name</th>
+<th className='border-2 p-2 font-bold text-left'>Company name</th>

94-99: Prefer TextLink component for external link.

For consistency and accessibility (automatic rel='noreferrer noopener') use the project's TextLink instead of a raw <a>:

-<a className='underline' href='https://github.com/asyncapi/website/blob/master/config/adopters.yml'>
-  submit a pull request
-</a>
+<TextLink href='https://github.com/asyncapi/website/blob/master/config/adopters.yml'>
+  submit a pull request
+</TextLink>

30-33: Unneeded explicit type annotations.

const description: string = '...' is redundant—TypeScript infers string. Dropping the annotation keeps the code concise:

-const description: string =
-  'Learn about different case studies based on AsyncAPI spec and related tools.';
+const description =
+  'Learn about different case studies based on AsyncAPI spec and related tools.';
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 2ea60a6 and 52e4b38.

📒 Files selected for processing (1)
  • pages/casestudies/index.tsx (1 hunks)
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: akshatnema
PR: asyncapi/website#3262
File: components/Avatar.tsx:35-44
Timestamp: 2024-10-11T10:46:58.882Z
Learning: In Next.js, when avoiding nested `<a>` tags due to hydration issues, use accessible non-link elements like `<button>` or `<span>` with appropriate roles, `tabIndex`, and event handlers to maintain accessibility and SEO.
Learnt from: akshatnema
PR: asyncapi/website#3262
File: components/newsroom/FeaturedBlogPost.tsx:90-92
Timestamp: 2024-10-11T07:38:35.745Z
Learning: In Next.js, nested `<a>` tags cause hydration issues due to invalid HTML. To fix this, avoid nesting `<a>` tags by replacing inner `<a>` tags with non-interactive elements like `<span>`, and use click handlers to maintain interactivity if needed.
pages/casestudies/index.tsx (4)

Learnt from: akshatnema
PR: #3262
File: components/newsroom/FeaturedBlogPost.tsx:90-92
Timestamp: 2024-10-11T07:38:35.745Z
Learning: In Next.js, nested <a> tags cause hydration issues due to invalid HTML. To fix this, avoid nesting <a> tags by replacing inner <a> tags with non-interactive elements like <span>, and use click handlers to maintain interactivity if needed.

Learnt from: akshatnema
PR: #3262
File: components/Avatar.tsx:35-44
Timestamp: 2024-10-11T10:46:58.882Z
Learning: In Next.js, when avoiding nested <a> tags due to hydration issues, use accessible non-link elements like <button> or <span> with appropriate roles, tabIndex, and event handlers to maintain accessibility and SEO.

Learnt from: akshatnema
PR: #3101
File: tests/fixtures/rssData.js:1-57
Timestamp: 2024-11-01T13:32:15.472Z
Learning: In the tests/fixtures/rssData.js file of the @asyncapi/website project, tests for edge cases such as empty strings for title or excerpt, very long text content, international characters (UTF-8), or malformed URLs in slug or cover are not necessary because these cases will not occur.

Learnt from: anshgoyalevil
PR: #3557
File: tests/fixtures/markdown/check-edit-links-data.js:3-11
Timestamp: 2025-01-19T04:51:41.255Z
Learning: In the AsyncAPI website repository, the test data in tests/fixtures/markdown/check-edit-links-data.js intentionally includes inconsistent paths (with and without 'docs' prefix) to verify the script's ability to normalize and handle ambiguous path structures.

🧬 Code Graph Analysis (1)
pages/casestudies/index.tsx (5)
components/layout/GenericLayout.tsx (1)
  • GenericLayout (25-51)
components/typography/Heading.tsx (1)
  • Heading (30-85)
components/typography/Paragraph.tsx (1)
  • Paragraph (28-56)
components/typography/TextLink.tsx (1)
  • TextLink (21-42)
components/CaseStudyCard.tsx (1)
  • CaseStudyCard (16-40)
🪛 GitHub Actions: PR testing - if Node project
pages/casestudies/index.tsx

[error] 30-30: Prettier formatting error: Delete newline and spaces. (prettier/prettier)


[error] 38-38: Prettier formatting error: Replace double quotes with single quotes. (prettier/prettier) and jsx-quotes: Unexpected usage of doublequote.


[error] 39-39: Prettier formatting error: Replace double quotes with single quotes. (prettier/prettier) and jsx-quotes: Unexpected usage of doublequote.


[error] 41-41: Prettier formatting error: Replace double quotes with single quotes. (prettier/prettier) and jsx-quotes: Unexpected usage of doublequote.


[error] 42-42: Prettier formatting error: Replace double quotes with single quotes. (prettier/prettier) and jsx-quotes: Unexpected usage of doublequote.


[error] 46-48: Prettier formatting error: Replace multiline JSX props with single line and use single quotes. (prettier/prettier) and jsx-quotes: Unexpected usage of doublequote.


[error] 50-50: Prettier formatting error: Replace multiline text with corrected line breaks. (prettier/prettier)


[error] 56-58: Prettier formatting error: Replace multiline JSX props with single line and use single quotes. (prettier/prettier) and jsx-quotes: Unexpected usage of doublequote.


[error] 60-60: Prettier formatting error: Delete newline and spaces. (prettier/prettier)


[error] 62-64: Prettier formatting error: Replace multiline JSX props with single line and use single quotes. (prettier/prettier) and jsx-quotes: Unexpected usage of doublequote.


[error] 72-72: Prettier formatting error: Replace double quotes with single quotes. (prettier/prettier) and jsx-quotes: Unexpected usage of doublequote.


[error] 76-78: Prettier formatting error: Replace double quotes with single quotes. (prettier/prettier) and jsx-quotes: Unexpected usage of doublequote.


[error] 82-84: Prettier formatting error: Replace multiline JSX props with single line and use single quotes. (prettier/prettier) and jsx-quotes: Unexpected usage of doublequote.


[error] 86-86: Prettier formatting error: Delete newline and spaces. (prettier/prettier)


[error] 89-91: Prettier formatting error: Replace multiline JSX props with single line and use single quotes. (prettier/prettier) and jsx-quotes: Unexpected usage of doublequote.


[error] 94-96: Prettier formatting error: Replace multiline JSX props with single line and use single quotes. (prettier/prettier) and jsx-quotes: Unexpected usage of doublequote.


[error] 100-100: Prettier formatting error: Replace multiline text with corrected line breaks. (prettier/prettier)


[error] 110-111: Prettier formatting error: Replace double quotes with single quotes. (prettier/prettier) and jsx-quotes: Unexpected usage of doublequote.


[error] 114-116: Prettier formatting error: Replace double quotes with single quotes. (prettier/prettier) and jsx-quotes: Unexpected usage of doublequote.


[error] 121-122: Prettier formatting error: Replace double quotes with single quotes. (prettier/prettier) and jsx-quotes: Unexpected usage of doublequote.


[error] 125-127: Prettier formatting error: Replace double quotes with single quotes. (prettier/prettier) and jsx-quotes: Unexpected usage of doublequote.


[error] 128-131: Prettier formatting error: Delete extra spaces and newlines. (prettier/prettier)


[error] 132-134: Prettier formatting error: Replace double quotes with single quotes. (prettier/prettier) and jsx-quotes: Unexpected usage of doublequote.


[error] 135-135: Prettier formatting error: Replace double quotes with single quotes. (prettier/prettier) and jsx-quotes: Unexpected usage of doublequote.


[error] 136-139: Prettier formatting error: Delete extra spaces and newlines. (prettier/prettier)


[error] 140-140: Prettier formatting error: Unexpected trailing comma. (comma-dangle)

⏰ Context from checks skipped due to timeout of 180000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Lighthouse CI

Comment on lines +38 to +48
className="relative mx-auto max-w-xl px-4 py-10 sm:px-6 lg:max-w-screen-xl lg:px-8"
data-testid="CaseStudy-main"
>
<div className='grid lg:grid-cols-9 lg:gap-8 lg:text-center'>
<div className='col-span-5 col-start-3'>
<div className="grid lg:grid-cols-9 lg:gap-8 lg:text-center">
<div className="col-span-5 col-start-3">
<Heading level={HeadingLevel.h1} typeStyle={HeadingTypeStyle.lg}>
{title}
</Heading>
<Paragraph typeStyle={ParagraphTypeStyle.md} className='my-4 max-w-4xl'>
The best way to learn how to use AsyncAPI is not only through documentation that usually is focused on
recommendations and best practices. It is also good to confront with real-life case studies that explain
how people really use AsyncAPI and what are their flows.
<Paragraph
typeStyle={ParagraphTypeStyle.md}
className="my-4 max-w-4xl"
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue

CI is red – fix Prettier/ESLint violations (quotes & prop formatting).

The project’s lint rules expect single quotes in JSX and to avoid unnecessary multi-line props. The newly-added lines use double quotes and break the pipeline (see GH-Actions log).
Run npm run lint -- --fix (or prettier --write) and commit the auto-formatted file.

Example of the required change:

-<div
-  className="relative mx-auto max-w-xl px-4 py-10 sm:px-6 lg:max-w-screen-xl lg:px-8"
-  data-testid="CaseStudy-main"
->
+<div
+  className='relative mx-auto max-w-xl px-4 py-10 sm:px-6 lg:max-w-screen-xl lg:px-8'
+  data-testid='CaseStudy-main'>
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
className="relative mx-auto max-w-xl px-4 py-10 sm:px-6 lg:max-w-screen-xl lg:px-8"
data-testid="CaseStudy-main"
>
<div className='grid lg:grid-cols-9 lg:gap-8 lg:text-center'>
<div className='col-span-5 col-start-3'>
<div className="grid lg:grid-cols-9 lg:gap-8 lg:text-center">
<div className="col-span-5 col-start-3">
<Heading level={HeadingLevel.h1} typeStyle={HeadingTypeStyle.lg}>
{title}
</Heading>
<Paragraph typeStyle={ParagraphTypeStyle.md} className='my-4 max-w-4xl'>
The best way to learn how to use AsyncAPI is not only through documentation that usually is focused on
recommendations and best practices. It is also good to confront with real-life case studies that explain
how people really use AsyncAPI and what are their flows.
<Paragraph
typeStyle={ParagraphTypeStyle.md}
className="my-4 max-w-4xl"
<div
className='relative mx-auto max-w-xl px-4 py-10 sm:px-6 lg:max-w-screen-xl lg:px-8'
data-testid='CaseStudy-main'>
<div className="grid lg:grid-cols-9 lg:gap-8 lg:text-center">
<div className="col-span-5 col-start-3">
<Heading level={HeadingLevel.h1} typeStyle={HeadingTypeStyle.lg}>
{title}
</Heading>
<Paragraph
typeStyle={ParagraphTypeStyle.md}
className="my-4 max-w-4xl"
🧰 Tools
🪛 GitHub Actions: PR testing - if Node project

[error] 38-38: Prettier formatting error: Replace double quotes with single quotes. (prettier/prettier) and jsx-quotes: Unexpected usage of doublequote.


[error] 39-39: Prettier formatting error: Replace double quotes with single quotes. (prettier/prettier) and jsx-quotes: Unexpected usage of doublequote.


[error] 41-41: Prettier formatting error: Replace double quotes with single quotes. (prettier/prettier) and jsx-quotes: Unexpected usage of doublequote.


[error] 42-42: Prettier formatting error: Replace double quotes with single quotes. (prettier/prettier) and jsx-quotes: Unexpected usage of doublequote.


[error] 46-48: Prettier formatting error: Replace multiline JSX props with single line and use single quotes. (prettier/prettier) and jsx-quotes: Unexpected usage of doublequote.

🤖 Prompt for AI Agents
In pages/casestudies/index.tsx around lines 38 to 48, the code uses double
quotes in JSX attributes and breaks props into multiple lines, causing
Prettier/ESLint violations. To fix this, replace double quotes with single
quotes in JSX attributes and consolidate multi-line props into single lines
where possible. Run the project's lint auto-fix command (npm run lint -- --fix
or prettier --write) to automatically format the file and then commit the
changes.

Comment on lines +128 to +141
{entry.resources.map(
(resource: Resource, resourceIndex: number) => (
<li key={resourceIndex}>
<a
className="text-cyan-600 hover:underline break-all"
href={resource.link}
target="_blank"
rel="noopener noreferrer"
>
{resource.title}
</a>
</li>
))}
</ul>
</td>
</tr>
))}
</tbody>
</table>
</div>
</center>
),
)}
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue

Remove dangling comma – linter error.

There is a trailing comma after the closing parenthesis of the map callback which Prettier flags (comma-dangle). Drop it:

-            ),
-          )}
+            )
+          )}
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
{entry.resources.map(
(resource: Resource, resourceIndex: number) => (
<li key={resourceIndex}>
<a
className="text-cyan-600 hover:underline break-all"
href={resource.link}
target="_blank"
rel="noopener noreferrer"
>
{resource.title}
</a>
</li>
))}
</ul>
</td>
</tr>
))}
</tbody>
</table>
</div>
</center>
),
)}
{entry.resources.map(
(resource: Resource, resourceIndex: number) => (
<li key={resourceIndex}>
<a
className="text-cyan-600 hover:underline break-all"
href={resource.link}
target="_blank"
rel="noopener noreferrer"
>
{resource.title}
</a>
</li>
)
)}
🧰 Tools
🪛 GitHub Actions: PR testing - if Node project

[error] 128-131: Prettier formatting error: Delete extra spaces and newlines. (prettier/prettier)


[error] 132-134: Prettier formatting error: Replace double quotes with single quotes. (prettier/prettier) and jsx-quotes: Unexpected usage of doublequote.


[error] 135-135: Prettier formatting error: Replace double quotes with single quotes. (prettier/prettier) and jsx-quotes: Unexpected usage of doublequote.


[error] 136-139: Prettier formatting error: Delete extra spaces and newlines. (prettier/prettier)


[error] 140-140: Prettier formatting error: Unexpected trailing comma. (comma-dangle)

🤖 Prompt for AI Agents
In pages/casestudies/index.tsx around lines 128 to 141, remove the trailing
comma after the closing parenthesis of the map callback function to fix the
Prettier linter error. Simply delete the comma following the closing parenthesis
of the map method.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] Case Studies page table is not mobile responsive

2 participants