import React, { useState } from 'react';
import {
Calendar,
BookOpen,
Layout,
MessageCircle,
Lock,
CheckCircle2,
ChevronRight,
Zap,
Leaf,
Moon,
Sun,
Clock,
Utensils,
Plus,
Trash2,
Newspaper,
HelpCircle
} from 'lucide-react';
/**
* Application Cyklera - Version Ultra-Stable
* Suppression de tous les accents pour eviter les erreurs d'encodage
*/
const App = () => {
// Etats de l'application
const [activeTab, setActiveTab] = useState('program');
const [currentPhaseIdx, setCurrentPhaseIdx] = useState(1);
const [unlockedSessions, setUnlockedSessions] = useState([0]);
const [plannedItems, setPlannedItems] = useState([]);
// Definition des donnees (Texte sans aucun accent pour une compatibilite maximale)
const phases = [
{
id: 0,
name: "Phase Menstruelle",
duration: 8,
icon: ,
nutriGoal: "Remineralisation et soutien du fer. Privilegiez le chaud.",
dayType: { breakfast: "Porridge chaud", lunch: "Soupe de lentilles", snack: "Chocolat noir", dinner: "Bouillon d'os" },
sessions: ["Seance 01", "Seance 02"],
recipes: ["Bouillon d'os", "Infusion Framboisier", "Dahl de lentilles"],
progress: 85
},
{
id: 1,
name: "Phase Folliculaire et Ovulatoire",
duration: 14,
icon: ,
nutriGoal: "Vitalite et metabolisme des oestrogenes. Focus fibres.",
dayType: { breakfast: "Smoothie Vert", lunch: "Salade Quinoa", snack: "Yaourt Coco", dinner: "Saumon Asperges" },
sessions: ["Seance 01", "Seance 02", "Seance 03", "Seance 04", "Seance 05", "Seance 06"],
recipes: ["Buddha Bowl", "Smoothie Eclat", "Salade Detox"],
progress: 45
},
{
id: 2,
name: "Phase Luteale",
duration: 16,
icon: ,
nutriGoal: "Stabilisation de la glycemie et magnesium.",
dayType: { breakfast: "Oeufs et Avocat", lunch: "Poulet et Patate douce", snack: "Muffins Banane", dinner: "Curry de pois chiches" },
sessions: ["Seance 01", "Seance 02", "Seance 03", "Seance 04", "Seance 05", "Seance 06"],
recipes: ["Curry Coco", "Muffins Noix", "Veloute Courge"],
progress: 15
}
];
const currentPhase = phases[currentPhaseIdx];
const toggleSession = (idx) => {
if (idx === 0 || unlockedSessions.includes(idx - 1)) {
if (unlockedSessions.includes(idx)) {
if (!unlockedSessions.includes(idx + 1)) {
setUnlockedSessions(unlockedSessions.filter(i => i !== idx));
}
} else {
setUnlockedSessions([...unlockedSessions, idx]);
}
}
};
return (
{/* Barre de navigation */}
{activeTab === 'program' && (
{/* Carte de phase principale */}
{currentPhase.icon}
Phase Actuelle
{currentPhase.name}
Progression
Jours totaux: {currentPhase.duration}
Fin de phase estimee bientot
{/* Selecteur de phases */}
{phases.map((phase, idx) => (
))}
{/* Section Sport / Mouvement */}
Mouvement
{currentPhase.sessions.map((session, idx) => {
const isLocked = idx > 0 && !unlockedSessions.includes(idx - 1);
const isCompleted = unlockedSessions.includes(idx);
return (
{session}
{isLocked ?
: (isCompleted ?
:
)}
{!isLocked && !isCompleted && (
)}
);
})}
{/* Section Nutrition */}
Nutrition
Journee Type
{Object.entries(currentPhase.dayType).map(([key, val]) => (
))}
Recettes
{currentPhase.recipes.map((recipe, idx) => (
))}
)}
{/* Autres onglets */}
{activeTab !== 'program' && (
Cette section est en cours de preparation.
)}
);
};
export default App;