import { Button } from "@xtablo/ui/components/button"; import { ArrowLeft, ArrowRight, HelpCircle, X } from "lucide-react"; import React, { useState } from "react"; import { twMerge } from "tailwind-merge"; interface TutorialStep { id: string; title: string; description: string; target?: string; position?: "top" | "bottom" | "left" | "right"; action?: () => void; } interface TabloTutorialProps { isOpen: boolean; onClose: () => void; onCreateTablo: () => void; } const tutorialSteps: TutorialStep[] = [ { id: "welcome", title: "Bienvenue sur XTablo ! 🎉", description: "Découvrez comment XTablo peut révolutionner votre façon de gérer vos tablos, équipes et collaborations.", }, { id: "what-is-tablo", title: "Qu'est-ce qu'un Tablo ?", description: "Un Tablo est un espace de travail collaboratif qui regroupe toutes les fonctionnalités dont vous avez besoin : conversations, planning, documents et plus encore.", }, { id: "tablo-features", title: "Fonctionnalités des Tablos", description: "Chaque Tablo vous donne accès à :\n• 💬 Conversations en temps réel\n• 📅 Planning partagé\n• 📝 Notes et documents\n• 👥 Gestion d'équipe", }, { id: "tablo-status", title: "Gérer le statut des Tablos", description: "Organisez vos tablos avec les statuts :\n• 📋 À faire : Tablos en attente\n• 🔄 En cours : Tablos actifs\n• ✅ Terminé : Tablos complétés", }, { id: "collaboration", title: "Collaboration d'équipe", description: "Invitez vos collègues dans vos Tablos. Vous serez Admin du Tablo que vous créez, et pourrez inviter d'autres membres en tant qu'invités.", }, { id: "navigation", title: "Navigation rapide", description: "Utilisez le clic droit sur un Tablo pour accéder rapidement aux conversations et au planning. Filtrez vos Tablos par statut pour une meilleure organisation.", }, { id: "create-first-tablo", title: "Créer votre premier Tablo", description: "Vous êtes maintenant prêt à utiliser XTablo ! Créez votre premier Tablo pour commencer.", target: "create-tablo-button", position: "bottom", action: () => { // Do nothing }, // Will be set by the parent component }, ]; export const TabloTutorial: React.FC = ({ isOpen, onClose, onCreateTablo }) => { const [currentStep, setCurrentStep] = useState(0); const currentStepData = tutorialSteps[currentStep]; const handleNext = () => { if (currentStep < tutorialSteps.length - 1) { setCurrentStep(currentStep + 1); } else { handleClose(); } }; const handlePrevious = () => { if (currentStep > 0) { setCurrentStep(currentStep - 1); } }; const handleClose = () => { setCurrentStep(0); localStorage.setItem("xtablo-tutorial-completed", "true"); onClose(); }; const handleCreateTabloAction = () => { if (currentStepData.id === "create-first-tablo") { onCreateTablo(); handleNext(); } }; const handleSkip = () => { setCurrentStep(tutorialSteps.length - 1); }; if (!isOpen) return null; return (
{/* Header */}

Guide de démarrage

Étape {currentStep + 1} sur {tutorialSteps.length}

{/* Progress Bar */}
{/* Content */}

{currentStepData.title}

{currentStepData.description}
{/* Actions */}
{currentStep > 0 && ( )}
{currentStep < tutorialSteps.length - 1 && ( )} {currentStepData.id === "create-first-tablo" ? ( ) : ( )}
{/* Completion Message */} {currentStep === tutorialSteps.length - 1 && (
Félicitations ! Vous êtes prêt à utiliser XTablo.
)}
); };