🐛 fix(_details): addition ++

This commit is contained in:
Eshan Roy
2024-12-07 23:19:03 +05:30
parent e606b48eea
commit c2e81375de

View File

@@ -1,20 +1,72 @@
import React from 'react'; import React, { useEffect, useState } from "react";
import { Heart, Users, Shield } from 'lucide-react'; import { Heart, Users, Shield, Package, Coffee } from "lucide-react";
interface TeamMember {
login: string;
avatar_url: string;
html_url: string;
}
export function About() { export function About() {
const [teamMembers, setTeamMembers] = useState<TeamMember[]>([]);
const [loading, setLoading] = useState(true);
useEffect(() => {
const fetchTeamMembers = async () => {
try {
const response = await fetch(
"https://api.github.com/orgs/Snigdha-OS/members"
);
if (!response.ok) {
throw new Error("Failed to fetch team members");
}
const data = await response.json();
setTeamMembers(data);
} catch (error) {
console.error("Error fetching team members:", error);
} finally {
setLoading(false);
}
};
fetchTeamMembers();
}, []);
return ( return (
<div className="py-12"> <div className="py-12">
<div className="container mx-auto px-4"> <div className="container mx-auto px-4">
{/* Mission Section */} {/* Mission Section */}
<section className="mb-16 text-center"> <section className="mb-16 text-center">
<h1 className="text-4xl font-bold mb-6">About Linux Mint</h1> <h1 className="text-4xl font-bold mb-6">About Snigdha OS</h1>
<p className="text-xl text-gray-600 max-w-3xl mx-auto"> <p className="text-xl text-gray-600 max-w-3xl mx-auto">
Linux Mint is one of the most popular desktop Linux distributions and Snigdha OS is one of the most upcoming desktop Linux distributions and
used by millions of people. It is elegant, easy to use, comfortable, used by millions of people. It is elegant, easy to use, comfortable,
and powerful. and powerful.
</p> </p>
</section> </section>
{/* Features Section */}
<section className="mb-16">
<h2 className="text-3xl font-bold mb-8 text-center">Features</h2>
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
<FeatureCard
icon={<Package className="h-12 w-12 text-teal-500" />}
title="Fast & Lightweight"
description="Snigdha OS is optimized for performance, ensuring fast boot times and smooth user experiences."
/>
<FeatureCard
icon={<Shield className="h-12 w-12 text-green-500" />}
title="Security First"
description="We prioritize your privacy and security, offering regular security updates and patches."
/>
<FeatureCard
icon={<Coffee className="h-12 w-12 text-yellow-500" />}
title="Developer Friendly"
description="Snigdha OS comes with a wide range of tools and a solid environment for developers."
/>
</div>
</section>
{/* Values Section */} {/* Values Section */}
<section className="mb-16"> <section className="mb-16">
<div className="grid grid-cols-1 md:grid-cols-3 gap-8"> <div className="grid grid-cols-1 md:grid-cols-3 gap-8">
@@ -36,30 +88,58 @@ export function About() {
</div> </div>
</section> </section>
{/* Testimonials Section */}
<section className="mb-16 text-center bg-white py-12">
<h2 className="text-4xl font-extrabold text-indigo mb-8">What Our Users Say</h2>
<div className="flex flex-col md:flex-row gap-12 justify-center">
<Testimonial
name="John Doe"
role="Software Engineer"
quote="Snigdha OS is the perfect balance between simplicity and power. I use it daily for my work."
avatarUrl="https://avatars.githubusercontent.com/u/1?v=4" // GitHub avatar URL
profileUrl="https://github.com/eshanized"
/>
<Testimonial
name="Jane Smith"
role="Designer"
quote="I love the clean and beautiful interface. It makes my work much more enjoyable."
avatarUrl="https://avatars.githubusercontent.com/u/2?v=4" // GitHub avatar URL
profileUrl="https://github.com/janesmith"
/>
<Testimonial
name="Alice Johnson"
role="Student"
quote="I switched to Snigdha OS for its stability and performance. Its been a great experience so far."
avatarUrl="https://avatars.githubusercontent.com/u/3?v=4" // GitHub avatar URL
profileUrl="https://github.com/alicejohnson"
/>
</div>
</section>
{/* History Section */} {/* History Section */}
<section className="mb-16"> <section className="mb-16">
<h2 className="text-3xl font-bold mb-8">Our History</h2> <h2 className="text-3xl font-bold mb-8">Our History</h2>
<div className="bg-white rounded-lg shadow-lg p-8"> <div className="bg-white rounded-lg shadow-lg p-8">
<div className="space-y-6"> <div className="space-y-6">
<TimelineItem <TimelineItem
year="2006" year="2023"
title="The Beginning" title="The Beginning"
description="Linux Mint was founded by Clement Lefebvre and launched its first release, Ada." description="Snigdha OS was founded by Eshan Roy (aka eshanized) and launched its first release, Arctic."
/> />
<TimelineItem <TimelineItem
year="2008" year="2024"
title="Growing Popular" title="Growing Popular"
description="Linux Mint gained significant popularity and became one of the most widely used Linux distributions." description="Snigdha OS gained significant popularity and became one of the most widely used Linux distributions."
/> />
<TimelineItem <TimelineItem
year="2010" year="2024"
title="Mint Tools" title="Penetration Tools"
description="Development of Mint-specific tools began, making system management easier for users." description="Development of penetration-specific tools began, making system management easier for users."
/> />
<TimelineItem <TimelineItem
year="Present" year="Present"
title="Continuing Innovation" title="Continuing Innovation"
description="Linux Mint continues to innovate while maintaining its commitment to stability and user-friendliness." description="Snigdha OS continues to innovate while maintaining its commitment to stability and user-friendliness."
/> />
</div> </div>
</div> </div>
@@ -67,30 +147,45 @@ export function About() {
{/* Team Section */} {/* Team Section */}
<section> <section>
<h2 className="text-3xl font-bold mb-8">Leadership Team</h2> <h2 className="text-3xl font-bold mb-8 text-center">Leadership Team</h2>
<div className="grid grid-cols-1 md:grid-cols-3 gap-8"> {loading ? (
<TeamMember <p className="text-center text-gray-600">Loading team members...</p>
name="Clement Lefebvre" ) : (
role="Project Leader" <div className="grid grid-cols-1 md:grid-cols-3 gap-8">
image="https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-1.2.1&auto=format&fit=crop&w=500&q=60" {teamMembers.map((member) => (
/> <TeamMemberCard
<TeamMember key={member.login}
name="Gwendal Le Bihan" name={member.login}
role="Development Lead" image={member.avatar_url}
image="https://images.unsplash.com/photo-1519085360753-af0119f7cbe7?ixlib=rb-1.2.1&auto=format&fit=crop&w=500&q=60" profileUrl={member.html_url}
/> />
<TeamMember ))}
name="Joseph Mills" </div>
role="Community Manager" )}
image="https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?ixlib=rb-1.2.1&auto=format&fit=crop&w=500&q=60"
/>
</div>
</section> </section>
</div> </div>
</div> </div>
); );
} }
function FeatureCard({
icon,
title,
description,
}: {
icon: React.ReactNode;
title: string;
description: string;
}) {
return (
<div className="text-center p-6 bg-white rounded-lg shadow-lg hover:shadow-xl transition-shadow">
<div className="flex justify-center mb-4">{icon}</div>
<h3 className="text-xl font-bold mb-2">{title}</h3>
<p className="text-gray-600">{description}</p>
</div>
);
}
function ValueCard({ function ValueCard({
icon, icon,
title, title,
@@ -101,7 +196,7 @@ function ValueCard({
description: string; description: string;
}) { }) {
return ( return (
<div className="text-center p-6 bg-white rounded-lg shadow-lg"> <div className="text-center p-6 bg-white rounded-lg shadow-lg hover:shadow-xl transition-shadow">
<div className="flex justify-center mb-4">{icon}</div> <div className="flex justify-center mb-4">{icon}</div>
<h3 className="text-xl font-bold mb-2">{title}</h3> <h3 className="text-xl font-bold mb-2">{title}</h3>
<p className="text-gray-600">{description}</p> <p className="text-gray-600">{description}</p>
@@ -109,6 +204,45 @@ function ValueCard({
); );
} }
function Testimonial({
name,
role,
quote,
avatarUrl,
profileUrl,
}: {
name: string;
role: string;
quote: string;
avatarUrl: string;
profileUrl: string;
}) {
return (
<div className="flex-1 bg-white p-8 rounded-xl shadow-xl hover:shadow-2xl transition-shadow transform hover:scale-105">
<p className="text-lg italic text-gray-700 mb-4">"{quote}"</p>
<div className="flex items-center justify-center mt-4">
<img
src={avatarUrl}
alt={name}
className="w-20 h-20 rounded-full object-cover border-4 border-indigo-500 shadow-md transform hover:scale-110 transition-transform"
/>
<div className="ml-4">
<h3 className="font-bold text-xl text-gray-800">{name}</h3>
<p className="text-gray-500 text-sm">{role}</p>
<a
href={profileUrl}
target="_blank"
rel="noopener noreferrer"
className="text-indigo-600 hover:text-indigo-800 text-sm mt-2 inline-block"
>
View Profile
</a>
</div>
</div>
</div>
);
}
function TimelineItem({ function TimelineItem({
year, year,
title, title,
@@ -129,24 +263,31 @@ function TimelineItem({
); );
} }
function TeamMember({ function TeamMemberCard({
name, name,
role,
image, image,
profileUrl,
}: { }: {
name: string; name: string;
role: string;
image: string; image: string;
profileUrl: string;
}) { }) {
return ( return (
<div className="text-center"> <div className="text-center bg-white p-6 rounded-lg shadow-lg hover:shadow-2xl transition-shadow">
<img <img
src={image} src={image}
alt={name} alt={name}
className="w-32 h-32 rounded-full mx-auto mb-4 object-cover" className="w-32 h-32 rounded-full mx-auto mb-4 object-cover"
/> />
<h3 className="font-bold text-lg">{name}</h3> <h3 className="font-bold text-lg text-gray-800">{name}</h3>
<p className="text-gray-600">{role}</p> <a
href={profileUrl}
target="_blank"
rel="noopener noreferrer"
className="text-indigo-500 hover:text-indigo-700"
>
View Profile
</a>
</div> </div>
); );
} }