2025-03-08 19:36:49 +05:30

95 lines
3.8 KiB
TypeScript

"use client";
import React, { useState } from 'react';
import Navbar from '@/components/Navbar/navbar';
import Footer from "@/components/footer";
import { motion } from 'framer-motion';
import { FaArrowRight } from 'react-icons/fa';
const heading = "Marketplace - Discover and Try AI Micro SaaS Tools"
const description = "Explore a variety of AI-powered tools designed to enhance your business operations. Try them out and purchase the ones that fit your needs."
const tools = Array.from({ length: 50 }, (_, i) => ({
name: `Tool ${i + 1}`,
description: `Tool ${i + 1} is designed to help you with various tasks and improve your workflow.`,
image: `https://via.placeholder.com/150?text=Tool+${i + 1}`,
category: i % 5 === 0 ? 'Productivity' : i % 5 === 1 ? 'Marketing' : i % 5 === 2 ? 'Sales' : i % 5 === 3 ? 'HR' : 'Project Management',
link: `https://example.com/tool${i + 1}`
}));
const categories = ['All', 'Productivity', 'Marketing', 'Sales', 'HR', 'Project Management'];
export default function Marketplace() {
const [selectedCategory, setSelectedCategory] = useState('All');
const filteredTools = selectedCategory === 'All' ? tools : tools.filter(tool => tool.category === selectedCategory);
return (
<div className="min-h-screen bg-[#080E12] dark text-white overflow-x-hidden">
<Navbar />
{/* Hero Section */}
<div className='h-screen py-10 px-10 flex flex-col items-start justify-center'>
<h1 className="text-8xl mb-10">{heading}</h1>
<h2 className='text-4xl'>{description}</h2>
</div>
<div className="max-w-7xl mx-auto flex">
{/* Category Filters */}
<aside className="w-1/4 py-8 px-4 md:px-8 border-r sticky top-0">
<div className="sticky top-20">
<h3 className="text-2xl mb-4">Categories</h3>
<div className="flex flex-col space-y-4 mt-20">
{categories.map((category, index) => (
<button
key={index}
onClick={() => setSelectedCategory(category)}
className={`px-4 py-2 rounded-lg transition-all text-left ${selectedCategory === category ? 'text-white' : 'text-gray-400'}`}
>
{category}
</button>
))}
</div>
</div>
</aside>
{/* Tools List */}
<section className="w-3/4 py-16 px-4 md:px-8">
<motion.div
initial={{ opacity: 0, y: 30 }}
whileInView={{ opacity: 1, y: 0 }}
transition={{ duration: 0.6 }}
viewport={{ once: true }}
className="max-w-7xl mx-auto"
>
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
{filteredTools.map((tool, index) => (
<motion.div
key={index}
initial={{ opacity: 0, y: 30 }}
whileInView={{ opacity: 1, y: 0 }}
transition={{ duration: 0.6, delay: index * 0.1 }}
viewport={{ once: true }}
className="bg-[#121212] border border-gray-800 rounded-xl p-6"
>
<img src={tool.image} alt={tool.name} className="w-full h-40 object-cover rounded-lg mb-4" />
<h3 className="text-md text-white font-medium mb-2">{tool.name}</h3>
<p className="text-gray-400 mb-4 text-sm">{tool.description}</p>
<div className="text-gray-400">
<a href={tool.link} className="font-medium text-xs px-6 py-3 rounded-lg transition-all shadow-lg flex items-center gap-2 hover:scale-105">
Try Now
<FaArrowRight className="transition-transform duration-300" />
</a>
</div>
</motion.div>
))}
</div>
</motion.div>
</section>
</div>
<Footer />
</div>
);
}