"use client"; import { useState, useEffect } from "react"; // Monday-style columns const COLUMNS = [ { id: "brainstorming", name: "💡 Brainstorming", color: "#ff6b6b" }, { id: "planning", name: "📋 Planning", color: "#ffd93d" }, { id: "ready", name: "✅ Ready", color: "#6bcb77" }, { id: "in-progress", name: "🚀 In Progress", color: "#4d96ff" }, { id: "review", name: "👀 Review", color: "#9b59b6" }, { id: "done", name: "🎉 Done", color: "#00d2d3" }, ]; interface Feature { id: string; title: string; description: string; column: string; projectId: string; approved: boolean; implemented: boolean; } // Project features - these will be listed for approval const PROJECT_FEATURES_INITIAL: Feature[] = [ // SiteMente v1 { id: "s1", title: "Vertical Pack Cards", description: "Beautiful cards for Real Estate, Restaurant, Clinic verticals on landing", column: "brainstorming", projectId: "sitemente-v1", approved: false, implemented: false }, { id: "s2", title: "Contact/Onboarding Form", description: "Lead capture form with business type selection", column: "brainstorming", projectId: "sitemente-v1", approved: false, implemented: false }, { id: "s3", title: "AI Widget Live Demo", description: "Working voice/chat AI widget on landing page", column: "brainstorming", projectId: "sitemente-v1", approved: false, implemented: false }, { id: "s4", title: "Mobile Responsive Pass", description: "Full mobile responsiveness audit and fixes", column: "planning", projectId: "sitemente-v1", approved: false, implemented: false }, { id: "s5", title: "Demo Pages SEO", description: "Per-vertical landing pages with unique meta tags", column: "planning", projectId: "sitemente-v1", approved: false, implemented: false }, { id: "s6", title: "Lead Capture Integration", description: "Connect forms to email/CRM notification", column: "planning", projectId: "sitemente-v1", approved: false, implemented: false }, { id: "s7", title: "WhatsApp Business Integration", description: "Auto-send leads to WhatsApp", column: "planning", projectId: "sitemente-v1", approved: false, implemented: false }, { id: "s8", title: "Pricing Toggle", description: "Monthly/Annual toggle with discount display", column: "ready", projectId: "sitemente-v1", approved: false, implemented: false }, { id: "s9", title: "Case Studies Section", description: "Real testimonials from Costa del Sol clients", column: "ready", projectId: "sitemente-v1", approved: false, implemented: false }, { id: "s10", title: "Blog Section", description: "SEO blog with AI-generated content tips", column: "in-progress", projectId: "sitemente-v1", approved: false, implemented: false }, // HolaCompi v1 { id: "h1", title: "Voice AI Agent", description: "Real voice conversation with callers", column: "brainstorming", projectId: "holacompi-v1", approved: false, implemented: false }, { id: "h2", title: "WhatsApp Integration", description: "AI responds on WhatsApp Business", column: "brainstorming", projectId: "holacompi-v1", approved: false, implemented: false }, { id: "h3", title: "Consumer Rights Chatbot", description: "Legal info chatbot for immigrants", column: "brainstorming", projectId: "holacompi-v1", approved: false, implemented: false }, { id: "h4", title: "Spanish Bureaucracy Guide", description: "AI guide through Spanish paperwork", column: "planning", projectId: "holacompi-v1", approved: false, implemented: false }, { id: "h5", title: "Multi-language Support", description: "ES, EN, FR, AR, RO language options", column: "planning", projectId: "holacompi-v1", approved: false, implemented: false }, { id: "h6", title: "Emergency Contacts", description: "Quick access to emergency services by location", column: "ready", projectId: "holacompi-v1", approved: false, implemented: false }, // Infrastructure { id: "i1", title: "Production Deployment", description: "Deploy to production domain (sitemente.com)", column: "planning", projectId: "infrastructure", approved: false, implemented: false }, { id: "i2", title: "Cloud Backups", description: "Automated daily backups to cloud storage", column: "planning", projectId: "infrastructure", approved: false, implemented: false }, { id: "i3", title: "Monitoring Setup", description: "Uptime monitoring and alerts", column: "planning", projectId: "infrastructure", approved: false, implemented: false }, { id: "i4", title: "SSL Certificate", description: "Proper HTTPS for production", column: "ready", projectId: "infrastructure", approved: false, implemented: false }, { id: "i5", title: "Email Notifications", description: "System sends emails for important events", column: "in-progress", projectId: "infrastructure", approved: false, implemented: false }, ]; const PROJECTS = [ { id: "sitemente-v1", name: "SiteMente v1", emoji: "🏢", description: "AI website platform for local businesses", color: "#8B5CF6" }, { id: "holacompi-v1", name: "HolaCompi v1", emoji: "🤝", description: "AI ally for immigrants & consumers", color: "#EC4899" }, { id: "infrastructure", name: "Infrastructure", emoji: "⚙️", description: "DevOps, deployment & maintenance", color: "#10B981" }, ]; export default function MondayBoard() { const [mounted, setMounted] = useState(false); const [selectedProject, setSelectedProject] = useState("sitemente-v1"); const [features, setFeatures] = useState([]); const [showApproval, setShowApproval] = useState(null); useEffect(() => { setMounted(true); setFeatures(PROJECT_FEATURES_INITIAL); }, []); if (!mounted) { return (
Loading...
); } const projectFeatures = features.filter(f => f.projectId === selectedProject); const getColumnFeatures = (columnId: string) => { return projectFeatures.filter(f => f.column === columnId); }; const approveFeature = (featureId: string) => { setFeatures(prev => prev.map(f => f.id === featureId ? { ...f, approved: true, column: "ready" } : f )); setShowApproval(null); }; const markImplemented = (featureId: string) => { setFeatures(prev => prev.map(f => f.id === featureId ? { ...f, implemented: true, column: "done" } : f )); }; const getProgress = () => { const total = projectFeatures.length; const done = projectFeatures.filter(f => f.column === "done").length; return total > 0 ? Math.round((done / total) * 100) : 0; }; const currentFeature = showApproval ? features.find(f => f.id === showApproval) : null; return (
{/* Project Selector */}
Project:
{PROJECTS.map(proj => ( ))}
{getProgress()}%
{/* Board */}
{COLUMNS.map(column => { const columnFeatures = getColumnFeatures(column.id); return (
{/* Column Header */}
{column.name} {columnFeatures.length}
{/* Features List */}
{columnFeatures.map(feature => (
{ if (!feature.approved && !feature.implemented) { setShowApproval(feature.id); } }} >

{feature.title}

{feature.description}

{feature.approved && !feature.implemented && ( )} {feature.approved && ( ✓ Approved )} {feature.implemented && ( 🎉 Live )}
))} {columnFeatures.length === 0 && (
No items
)}
); })}
{/* Approval Modal */} {showApproval && currentFeature && (
setShowApproval(null)} >
e.stopPropagation()} >

🚀 Approve Feature?

{currentFeature.description}

{currentFeature.title}

{currentFeature.description}

Clicking approve will move this to Ready column for implementation

)}
); }