-
Notifications
You must be signed in to change notification settings - Fork 374
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
Blog Pages is Added #2024
Blog Pages is Added #2024
Conversation
@Tanmay-Mirgal is attempting to deploy a commit to the Vivek Prajapati's projects Team on Vercel. A member of the Team first needs to authorize it. |
WalkthroughThe recent changes enhance the application's routing and introduce a new blog feature. A Changes
Poem
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
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 as PR comments)
Additionally, you can add CodeRabbit Configuration File (
|
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.
Actionable comments posted: 2
Outside diff range, codebase verification and nitpick comments (1)
src/User/pages/Blog/Blog.jsx (1)
4-49
: Consider using dynamic data in the future.The static data structure is correct for now, but ensure that the final implementation fetches real data.
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (2)
- src/App.jsx (2 hunks)
- src/User/pages/Blog/Blog.jsx (1 hunks)
Files skipped from review due to trivial changes (1)
- src/App.jsx
Additional comments not posted (3)
src/User/pages/Blog/Blog.jsx (3)
1-2
: Imports look good.The imports are necessary and correctly included.
51-51
: Component definition looks good.The functional component definition is standard and appropriate.
53-117
: Overall JSX structure looks good.The JSX structure is well-organized and follows best practices.
src/User/pages/Blog/Blog.jsx
Outdated
{articles.map((article, index) => ( | ||
<motion.article | ||
key={index} | ||
className="bg-white p-6 rounded-md shadow-sm hover:shadow-lg transition-shadow duration-300 flex" | ||
initial={{ opacity: 0, y: 20 }} | ||
animate={{ opacity: 1, y: 0 }} | ||
transition={{ duration: 0.5, delay: index * 0.2 }} | ||
> | ||
<img src={article.img} alt="placeholder" className="w-24 h-24 rounded-md mr-4"/> | ||
<div> | ||
<a href="#" className="text-xl font-bold text-blue-600 hover:underline"> | ||
{article.title} | ||
</a> | ||
<p className="text-gray-500 text-sm mt-2">{article.time}</p> | ||
</div> | ||
</motion.article> | ||
))} |
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.
Use a unique key prop.
Using the array index as a key can lead to issues. Consider using a unique identifier.
- {articles.map((article, index) => (
- <motion.article key={index}
+ {articles.map((article) => (
+ <motion.article key={article.title}
Also applies to: 97-111
src/User/pages/Blog/Blog.jsx
Outdated
<div className="bg-gray-100 min-h-screen"> | ||
<header className="bg-white shadow-md py-6"> | ||
<div className="container mx-auto px-6"> | ||
<div className="flex items-center justify-between mt-[10vh]"> | ||
<h1 className="text-4xl font-extrabold text-transparent bg-clip-text bg-gradient-to-r from-blue-500 to-green-500"> | ||
Vigy Blog | ||
</h1> | ||
<div> | ||
<button className="bg-blue-500 text-white py-2 px-6 rounded-md hover:bg-blue-600 transition duration-300 ease-in-out transform hover:scale-105"> | ||
Subscribe | ||
</button> | ||
<button className="ml-4 py-2 px-6 rounded-md border border-gray-300 hover:bg-gray-100 transition duration-300 ease-in-out transform hover:scale-105"> | ||
Sign In | ||
</button> | ||
</div> | ||
</div> | ||
</div> | ||
</header> | ||
<main className="container mx-auto px-6 py-8 flex"> | ||
<div className="w-2/3"> | ||
<h2 className="text-3xl font-bold mb-6">Latest Headlines</h2> | ||
<div className="space-y-6"> | ||
{articles.map((article, index) => ( | ||
<motion.article | ||
key={index} | ||
className="bg-white p-6 rounded-md shadow-sm hover:shadow-lg transition-shadow duration-300 flex" | ||
initial={{ opacity: 0, y: 20 }} | ||
animate={{ opacity: 1, y: 0 }} | ||
transition={{ duration: 0.5, delay: index * 0.2 }} | ||
> | ||
<img src={article.img} alt="placeholder" className="w-24 h-24 rounded-md mr-4"/> | ||
<div> | ||
<a href="#" className="text-xl font-bold text-blue-600 hover:underline"> | ||
{article.title} | ||
</a> | ||
<p className="text-gray-500 text-sm mt-2">{article.time}</p> | ||
</div> | ||
</motion.article> | ||
))} | ||
</div> | ||
</div> | ||
<div className="w-1/3 pl-6"> | ||
<h3 className="text-2xl font-bold mb-6">Most Popular News</h3> | ||
<div className="space-y-6"> | ||
{popularArticles.map((article, index) => ( | ||
<motion.article | ||
key={index} | ||
className="bg-white p-6 rounded-md shadow-sm hover:shadow-lg transition-shadow duration-300 flex" | ||
initial={{ opacity: 0, y: 20 }} | ||
animate={{ opacity: 1, y: 0 }} | ||
transition={{ duration: 0.5, delay: index * 0.2 + 0.5 }} | ||
> | ||
<img src={article.img} alt="placeholder" className="w-16 h-16 rounded-md mr-4"/> | ||
<div> | ||
<a href="#" className="text-lg font-bold text-blue-600 hover:underline"> | ||
{article.title} | ||
</a> | ||
</div> | ||
</motion.article> | ||
))} | ||
</div> | ||
</div> | ||
</main> | ||
</div> | ||
); |
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.
Add alt text to images for accessibility.
Ensure all images have descriptive alt text for better accessibility.
- <img src={article.img} alt="placeholder" className="w-24 h-24 rounded-md mr-4"/>
+ <img src={article.img} alt={article.title} className="w-24 h-24 rounded-md mr-4"/>
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.
<div className="bg-gray-100 min-h-screen"> | |
<header className="bg-white shadow-md py-6"> | |
<div className="container mx-auto px-6"> | |
<div className="flex items-center justify-between mt-[10vh]"> | |
<h1 className="text-4xl font-extrabold text-transparent bg-clip-text bg-gradient-to-r from-blue-500 to-green-500"> | |
Vigy Blog | |
</h1> | |
<div> | |
<button className="bg-blue-500 text-white py-2 px-6 rounded-md hover:bg-blue-600 transition duration-300 ease-in-out transform hover:scale-105"> | |
Subscribe | |
</button> | |
<button className="ml-4 py-2 px-6 rounded-md border border-gray-300 hover:bg-gray-100 transition duration-300 ease-in-out transform hover:scale-105"> | |
Sign In | |
</button> | |
</div> | |
</div> | |
</div> | |
</header> | |
<main className="container mx-auto px-6 py-8 flex"> | |
<div className="w-2/3"> | |
<h2 className="text-3xl font-bold mb-6">Latest Headlines</h2> | |
<div className="space-y-6"> | |
{articles.map((article, index) => ( | |
<motion.article | |
key={index} | |
className="bg-white p-6 rounded-md shadow-sm hover:shadow-lg transition-shadow duration-300 flex" | |
initial={{ opacity: 0, y: 20 }} | |
animate={{ opacity: 1, y: 0 }} | |
transition={{ duration: 0.5, delay: index * 0.2 }} | |
> | |
<img src={article.img} alt="placeholder" className="w-24 h-24 rounded-md mr-4"/> | |
<div> | |
<a href="#" className="text-xl font-bold text-blue-600 hover:underline"> | |
{article.title} | |
</a> | |
<p className="text-gray-500 text-sm mt-2">{article.time}</p> | |
</div> | |
</motion.article> | |
))} | |
</div> | |
</div> | |
<div className="w-1/3 pl-6"> | |
<h3 className="text-2xl font-bold mb-6">Most Popular News</h3> | |
<div className="space-y-6"> | |
{popularArticles.map((article, index) => ( | |
<motion.article | |
key={index} | |
className="bg-white p-6 rounded-md shadow-sm hover:shadow-lg transition-shadow duration-300 flex" | |
initial={{ opacity: 0, y: 20 }} | |
animate={{ opacity: 1, y: 0 }} | |
transition={{ duration: 0.5, delay: index * 0.2 + 0.5 }} | |
> | |
<img src={article.img} alt="placeholder" className="w-16 h-16 rounded-md mr-4"/> | |
<div> | |
<a href="#" className="text-lg font-bold text-blue-600 hover:underline"> | |
{article.title} | |
</a> | |
</div> | |
</motion.article> | |
))} | |
</div> | |
</div> | |
</main> | |
</div> | |
); | |
<div className="bg-gray-100 min-h-screen"> | |
<header className="bg-white shadow-md py-6"> | |
<div className="container mx-auto px-6"> | |
<div className="flex items-center justify-between mt-[10vh]"> | |
<h1 className="text-4xl font-extrabold text-transparent bg-clip-text bg-gradient-to-r from-blue-500 to-green-500"> | |
Vigy Blog | |
</h1> | |
<div> | |
<button className="bg-blue-500 text-white py-2 px-6 rounded-md hover:bg-blue-600 transition duration-300 ease-in-out transform hover:scale-105"> | |
Subscribe | |
</button> | |
<button className="ml-4 py-2 px-6 rounded-md border border-gray-300 hover:bg-gray-100 transition duration-300 ease-in-out transform hover:scale-105"> | |
Sign In | |
</button> | |
</div> | |
</div> | |
</div> | |
</header> | |
<main className="container mx-auto px-6 py-8 flex"> | |
<div className="w-2/3"> | |
<h2 className="text-3xl font-bold mb-6">Latest Headlines</h2> | |
<div className="space-y-6"> | |
{articles.map((article, index) => ( | |
<motion.article | |
key={index} | |
className="bg-white p-6 rounded-md shadow-sm hover:shadow-lg transition-shadow duration-300 flex" | |
initial={{ opacity: 0, y: 20 }} | |
animate={{ opacity: 1, y: 0 }} | |
transition={{ duration: 0.5, delay: index * 0.2 }} | |
> | |
<img src={article.img} alt={article.title} className="w-24 h-24 rounded-md mr-4"/> | |
<div> | |
<a href="#" className="text-xl font-bold text-blue-600 hover:underline"> | |
{article.title} | |
</a> | |
<p className="text-gray-500 text-sm mt-2">{article.time}</p> | |
</div> | |
</motion.article> | |
))} | |
</div> | |
</div> | |
<div className="w-1/3 pl-6"> | |
<h3 className="text-2xl font-bold mb-6">Most Popular News</h3> | |
<div className="space-y-6"> | |
{popularArticles.map((article, index) => ( | |
<motion.article | |
key={index} | |
className="bg-white p-6 rounded-md shadow-sm hover:shadow-lg transition-shadow duration-300 flex" | |
initial={{ opacity: 0, y: 20 }} | |
animate={{ opacity: 1, y: 0 }} | |
transition={{ duration: 0.5, delay: index * 0.2 + 0.5 }} | |
> | |
<img src={article.img} alt="placeholder" className="w-16 h-16 rounded-md mr-4"/> | |
<div> | |
<a href="#" className="text-lg font-bold text-blue-600 hover:underline"> | |
{article.title} | |
</a> | |
</div> | |
</motion.article> | |
))} | |
</div> | |
</div> | |
</main> | |
</div> | |
); |
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.
Actionable comments posted: 0
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (1)
- src/User/pages/Blog/Blog.jsx (1 hunks)
Files skipped from review as they are similar to previous changes (1)
- src/User/pages/Blog/Blog.jsx
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
Congratulations, Your pull request has been successfully merged 🥳🎉 Thank you for your contribution to the project 🚀 Keep Contributing!! ✨ |
Fixes Issue
Fix Issue : #2023
Closes : #2023
Changes proposed
Screenshots
Note to reviewers
Summary by CodeRabbit