mirror of
https://github.com/codebox283/everydayserieswebsite.git
synced 2025-06-19 20:40:52 +00:00
95 lines
3.8 KiB
TypeScript
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>
|
|
);
|
|
}
|