-
Tags
+
+ Tags
+
{post.tags.map((tag) => (
{post.author.name}
-
{post.author.role}
+
+ {post.author.role}
+
{post.author.bio}
{post.author.twitter && (
@@ -342,8 +408,6 @@ export default function BlogArticle() {
)}
-
-
);
diff --git a/src/pages/ProjectDetails.tsx b/src/pages/ProjectDetails.tsx
index c6fe2d3..0720b41 100644
--- a/src/pages/ProjectDetails.tsx
+++ b/src/pages/ProjectDetails.tsx
@@ -1,18 +1,23 @@
-import { useParams, Link, useNavigate } from 'react-router-dom';
-import { motion } from 'framer-motion';
-import { ArrowLeft, ExternalLink, Github, Calendar, Clock, Users, ChevronRight } from 'lucide-react';
-import { Button } from '@/components/ui/button';
-import ReactMarkdown from 'react-markdown';
-import remarkGfm from 'remark-gfm';
-import Navbar from '@/components/Navbar';
-import Footer from '@/components/Footer';
-import PageTransition from '@/components/PageTransition';
-import { getProjectBySlug, getRelatedProjects } from '@/data/projectData';
+import PageTransition from "@/components/PageTransition";
+import { Button } from "@/components/ui/button";
+import { getProjectBySlug, getRelatedProjects } from "@/data/projectData";
+import { motion } from "framer-motion";
+import {
+ Calendar,
+ ChevronRight,
+ Clock,
+ ExternalLink,
+ Github,
+ Users,
+} from "lucide-react";
+import ReactMarkdown from "react-markdown";
+import { Link, useNavigate, useParams } from "react-router-dom";
+import remarkGfm from "remark-gfm";
export default function ProjectDetails() {
const { slug } = useParams<{ slug: string }>();
const navigate = useNavigate();
- const project = getProjectBySlug(slug || '');
+ const project = getProjectBySlug(slug || "");
if (!project) {
return (
@@ -20,8 +25,12 @@ export default function ProjectDetails() {
Project Not Found
-
The project you're looking for doesn't exist.
-
+
+ The project you're looking for doesn't exist.
+
+
@@ -30,17 +39,15 @@ export default function ProjectDetails() {
const relatedProjects = getRelatedProjects(project);
const categoryLabels: Record
= {
- web: 'Web Development',
- mobile: 'Mobile App',
- ai: 'AI & Machine Learning',
- cloud: 'Cloud Solutions',
+ web: "Web Development",
+ mobile: "Mobile App",
+ ai: "AI & Machine Learning",
+ cloud: "Cloud Solutions",
};
return (
-
-
{/* Hero */}
@@ -56,9 +63,16 @@ export default function ProjectDetails() {
transition={{ duration: 0.5 }}
className="flex items-center gap-2 text-sm text-muted-foreground mb-8"
>
-
Home
+
+ Home
+
-
Projects
+
+ Projects
+
{project.title}
@@ -132,7 +146,10 @@ export default function ProjectDetails() {
View Live
-
@@ -203,10 +222,24 @@ export default function ProjectDetails() {
{children}
,
- strong: ({ children }) => {children},
- ul: ({ children }) => ,
- li: ({ children }) => {children},
+ p: ({ children }) => (
+
+ {children}
+
+ ),
+ strong: ({ children }) => (
+
+ {children}
+
+ ),
+ ul: ({ children }) => (
+
+ ),
+ li: ({ children }) => (
+ {children}
+ ),
}}
>
{project.fullDescription}
@@ -262,7 +295,9 @@ export default function ProjectDetails() {
{project.challenges.map((challenge, index) => (
- {challenge}
+
+ {challenge}
+
))}
@@ -356,7 +391,10 @@ export default function ProjectDetails() {
className="text-center mt-12"
>
-
+
View All Projects
@@ -364,8 +402,6 @@ export default function ProjectDetails() {
)}
-
-
);
diff --git a/src/pages/Projects.tsx b/src/pages/Projects.tsx
index 0c6745c..28bfdc3 100644
--- a/src/pages/Projects.tsx
+++ b/src/pages/Projects.tsx
@@ -1,21 +1,27 @@
-import { useState } from 'react';
-import { motion, AnimatePresence, calcLength } from 'framer-motion';
-import { ArrowLeft, Globe, Smartphone, Brain, Cloud, ExternalLink, Workflow, Github } from 'lucide-react';
-import { Link } from 'react-router-dom';
-import { Button } from '@/components/ui/button';
-import Navbar from '@/components/Navbar';
-import Footer from '@/components/Footer';
-import PageTransition from '@/components/PageTransition';
-import { useProjects } from '@/hooks/queires/useProjects';
-import { projects } from '@/data/projectData';
+import PageTransition from "@/components/PageTransition";
+import { Button } from "@/components/ui/button";
+import { useProjects } from "@/hooks/queires/useProjects";
+import { AnimatePresence, motion } from "framer-motion";
+import {
+ ArrowLeft,
+ Brain,
+ Cloud,
+ ExternalLink,
+ Github,
+ Globe,
+ Smartphone,
+ Workflow,
+} from "lucide-react";
+import { useState } from "react";
+import { Link } from "react-router-dom";
const categories = [
- { id: 'all', name: 'All Projects', icon: null },
- { id: 'web', name: 'Web', icon: Globe },
- { id: 'mobile', name: 'Mobile', icon: Smartphone },
- { id: 'ai', name: 'AI', icon: Brain },
- { id: 'cloud', name: 'Cloud', icon: Cloud },
- { id: 'devops', name: 'DEVOPS', icon: Workflow },
+ { id: "all", name: "All Projects", icon: null },
+ { id: "web", name: "Web", icon: Globe },
+ { id: "mobile", name: "Mobile", icon: Smartphone },
+ { id: "ai", name: "AI", icon: Brain },
+ { id: "cloud", name: "Cloud", icon: Cloud },
+ { id: "devops", name: "DEVOPS", icon: Workflow },
];
const containerVariants = {
@@ -33,26 +39,24 @@ const itemVariants = {
visible: {
opacity: 1,
y: 0,
- transition: { duration: 0.5, ease: 'easeOut' as const },
+ transition: { duration: 0.5, ease: "easeOut" as const },
},
};
export default function Projects() {
-
- const {data: projectsData} = useProjects();
+ const { data: projectsData } = useProjects();
const projects = projectsData?.data.data.result;
- const [activeCategory, setActiveCategory] = useState('all');
+ const [activeCategory, setActiveCategory] = useState("all");
- const filteredProjects = activeCategory === 'all'
- ? projects
- : projects?.filter(project => project.category === activeCategory);
+ const filteredProjects =
+ activeCategory === "all"
+ ? projects
+ : projects?.filter((project) => project.category === activeCategory);
return (
-
-
{/* Hero Section */}
@@ -83,10 +87,12 @@ export default function Projects() {
className="text-center mb-12"
>
- Our Projects
+ Our{" "}
+ Projects
- Explore our portfolio of innovative solutions that have transformed businesses across industries.
+ Explore our portfolio of innovative solutions that have
+ transformed businesses across industries.
@@ -102,12 +108,15 @@ export default function Projects() {
return (
setActiveCategory(category.id)}
- className={`rounded-full px-6 transition-all duration-300 ${activeCategory === category.id
- ? 'neon-glow bg-primary text-primary-foreground'
- : 'glass border-primary/30 hover:border-primary'
- }`}
+ className={`rounded-full px-6 transition-all duration-300 ${
+ activeCategory === category.id
+ ? "neon-glow bg-primary text-primary-foreground"
+ : "glass border-primary/30 hover:border-primary"
+ }`}
>
{Icon && }
{category.name}
@@ -149,7 +158,10 @@ export default function Projects() {
{/* Category Badge */}
- {categories.find(c => c.id === project.category)?.name}
+ {
+ categories.find((c) => c.id === project.category)
+ ?.name
+ }
@@ -222,8 +234,6 @@ export default function Projects() {
)}
-
-
);