import React, { useState, useEffect } from 'react';
import { BarChart, LineChart, Line, Bar, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer } from 'recharts';
import { Calendar, Clock, Heart, Droplet, Moon, Activity, User, Settings, BookOpen, MessageCircle, Bell, Menu, X, ChevronRight, Plus, Check, ChevronDown, ChevronUp, Info, AlertCircle, Thermometer, Smile, Frown, Zap, Coffee, Utensils, Edit, ArrowLeft, ArrowRight, Trash2, Save } from 'lucide-react';
// Mock data for demonstration
const mockSleepData = [
{ day: 'Pon', hours: 7.5 },
{ day: 'Wt', hours: 6.8 },
{ day: 'Śr', hours: 7.2 },
{ day: 'Czw', hours: 8.0 },
{ day: 'Pt', hours: 6.5 },
{ day: 'Sob', hours: 7.8 },
{ day: 'Ndz', hours: 8.5 },
];
const mockMoodData = [
{ day: 'Pon', level: 7 },
{ day: 'Wt', level: 6 },
{ day: 'Śr', level: 8 },
{ day: 'Czw', level: 7 },
{ day: 'Pt', level: 5 },
{ day: 'Sob', level: 9 },
{ day: 'Ndz', level: 8 },
];
const mockCycleData = {
cycleLength: 28,
currentDay: 14,
periodLength: 5,
nextPeriod: '15.06.2024',
fertility: 'wysoka',
symptoms: ['wrażliwość piersi', 'zmiany nastroju'],
lastPeriodDate: '18.05.2024',
currentPhase: 'owulacyjna',
phaseDay: 2,
predictedPhases: [
{ name: 'menstruacyjna', start: 1, end: 5, color: '#F87171' },
{ name: 'folikularna', start: 6, end: 13, color: '#60A5FA' },
{ name: 'owulacyjna', start: 14, end: 16, color: '#34D399' },
{ name: 'lutealna', start: 17, end: 28, color: '#A78BFA' }
],
historicalCycles: [
{ startDate: '20.04.2024', length: 29 },
{ startDate: '23.03.2024', length: 28 },
{ startDate: '24.02.2024', length: 27 },
{ startDate: '28.01.2024', length: 28 },
{ startDate: '31.12.2023', length: 28 },
{ startDate: '03.12.2023', length: 29 }
],
symptomHistory: [
{ date: '18.05.2024', symptoms: ['ból brzucha', 'zmęczenie'], flow: 'średnie', mood: 'zmęczona' },
{ date: '19.05.2024', symptoms: ['ból brzucha', 'ból głowy'], flow: 'obfite', mood: 'rozdrażniona' },
{ date: '20.05.2024', symptoms: ['ból brzucha'], flow: 'średnie', mood: 'neutralna' },
{ date: '21.05.2024', symptoms: [], flow: 'skąpe', mood: 'neutralna' },
{ date: '22.05.2024', symptoms: [], flow: 'skąpe', mood: 'spokojna' },
{ date: '28.05.2024', symptoms: ['wrażliwość piersi'], flow: null, mood: 'energiczna' },
{ date: '01.06.2024', symptoms: ['wrażliwość piersi', 'zwiększone libido'], flow: null, mood: 'energiczna' }
]
};
const mockHabits = [
{ id: 1, name: 'Woda', icon: 'Droplet', target: 8, current: 5, unit: 'szklanek' },
{ id: 2, name: 'Aktywność', icon: 'Activity', target: 30, current: 15, unit: 'minut' },
{ id: 3, name: 'Sen', icon: 'Moon', target: 8, current: 7, unit: 'godzin' },
{ id: 4, name: 'Medytacja', icon: 'Heart', target: 10, current: 5, unit: 'minut' },
];
const mockReminders = [
{ id: 1, time: '10:00', text: 'Wypij szklankę wody', completed: true },
{ id: 2, time: '12:30', text: 'Zrób przerwę od komputera', completed: false },
{ id: 3, time: '15:00', text: 'Krótki spacer', completed: false },
{ id: 4, time: '18:00', text: 'Ćwiczenia mięśni dna miednicy', completed: false },
];
const mockPreventiveExams = [
{ id: 1, name: 'Cytologia', date: '15.07.2024', priority: 'wysoki' },
{ id: 2, name: 'Badanie krwi', date: '03.08.2024', priority: 'średni' },
{ id: 3, name: 'USG piersi', date: '22.09.2024', priority: 'średni' },
];
// New mock data for expanded cycle tracking
const mockSymptoms = [
{ id: 1, category: 'Samopoczucie', options: ['Zmęczenie', 'Zawroty głowy', 'Ból głowy', 'Bezsenność', 'Mdłości'] },
{ id: 2, category: 'Emocje', options: ['Drażliwość', 'Smutek', 'Niepokój', 'Wahania nastroju', 'Euforia'] },
{ id: 3, category: 'Ciało', options: ['Ból brzucha', 'Wrażliwość piersi', 'Wzdęcia', 'Bóle pleców', 'Opuchlizna'] },
{ id: 4, category: 'Skóra', options: ['Trądzik', 'Suchość', 'Zaczerwienienie', 'Świąd', 'Nadmierna potliwość'] },
{ id: 5, category: 'Libido', options: ['Zwiększone', 'Zmniejszone'] },
{ id: 6, category: 'Inne', options: ['Apetyt ↑', 'Apetyt ↓', 'Pragnienie słodyczy', 'Zatrzymanie wody'] }
];
const mockFlowOptions = [
{ id: 1, label: 'Skąpe', color: '#FECACA' },
{ id: 2, label: 'Średnie', color: '#EF4444' },
{ id: 3, label: 'Obfite', color: '#B91C1C' },
{ id: 4, label: 'Bardzo obfite', color: '#7F1D1D' }
];
const mockPhaseRecommendations = {
menstruacyjna: {
info: 'To czas krwawienia, kiedy poziom hormonów, zwłaszcza estrogenu i progesteronu, jest niski. Możesz odczuwać zmęczenie, wrażliwość emocjonalną i podatność na stres.',
selfCare: [
'Daj sobie czas na odpoczynek, jeśli czujesz zmęczenie',
'Pij ciepłe napary (np. z imbiru, rumianku) dla ukojenia',
'Jedz lekkostrawne, bogate w żelazo potrawy',
'Używaj ciepłych termoforów w celu łagodzenia bólu brzucha'
],
emotional: [
'Daj sobie przestrzeń na emocje, bez ich oceniania',
'Porozmawiaj z bliskimi i poproś o wsparcie w razie potrzeby',
'Praktykuj krótkie ćwiczenia mindfulness'
]
},
folikularna: {
info: 'Twój organizm przygotowuje się do owulacji, a poziom estrogenu rośnie. Możesz odczuwać więcej energii, kreatywności i motywacji.',
selfCare: [
'Wykorzystaj przypływ energii na aktywność fizyczną (joga, bieganie, siłownia)',
'Jedz pełnowartościowe posiłki, bogate w białko i zdrowe tłuszcze',
'Planuj i realizuj wyzwania wymagające kreatywności i koncentracji'
],
emotional: [
'Wykorzystaj ten czas na realizację ważnych zadań i spotkania',
'Dziel się pomysłami i inspiruj innych swoją energią',
'Podejmuj się bardziej wymagających projektów'
]
},
owulacyjna: {
info: 'To moment największej płodności. Wysoki poziom estrogenu i testosteronu może przekładać się na lepsze samopoczucie i pewność siebie.',
selfCare: [
'Ciesz się swoim ciałem poprzez aktywność fizyczną, taniec czy spacer w naturze',
'Dbaj o nawilżenie organizmu i zdrową dietę',
'Spędzaj czas z bliskimi - to dobry moment na budowanie relacji'
],
emotional: [
'Wykorzystaj swoją towarzyskość i otwartość na głębsze rozmowy i relacje',
'Celebruj swoją kobiecość i pewność siebie',
'Podejmuj aktywności społeczne lub budujące pewność siebie'
]
},
lutealna: {
info: 'Po owulacji poziom progesteronu wzrasta. Możesz odczuwać większą wrażliwość emocjonalną, zmiany nastroju i objawy zespołu napięcia przedmiesiączkowego (PMS).',
selfCare: [
'Słuchaj swojego ciała i zwolnij tempo w przypadku zmęczenia',
'Unikaj nadmiaru kofeiny i cukru, które mogą nasilać wahania nastroju',
'Praktykuj relaksujące aktywności (medytacja, czytanie, ciepła kąpiel)'
],
emotional: [
'Bądź dla siebie łagodna i nie wymagaj od siebie więcej niż możesz dać',
'Komunikuj bliskim swoje odczucia, by mogli okazać więcej zrozumienia',
'Stosuj proste techniki zarządzania stresem i napięciem'
]
}
};
// Special sections data
const mockTransWomenContent = {
hormonalChanges: {
title: 'Świadomość zmian hormonalnych',
info: 'Hormonalna terapia zastępcza (HTZ) wpływa na Twój organizm, nastrój, poziom energii i retencję wody. Regularne monitorowanie jest kluczowe dla Twojego zdrowia.',
recommendations: [
'Prowadź dziennik objawów związanych z HTZ',
'Monitoruj zmiany nastroju i poziomu energii',
'Pamiętaj o regularnych konsultacjach lekarskich',
'Zwracaj uwagę na retencję wody i zmiany wagi'
]
},
mentalHealth: {
title: 'Zdrowie psychiczne i emocjonalne',
info: 'Dbanie o zdrowie psychiczne jest równie ważne jak dbanie o zdrowie fizyczne. Praktyki wspierające samoakceptację mogą znacząco poprawić Twoje samopoczucie.',
recommendations: [
'Praktykuj codzienne afirmacje i ćwiczenia wspierające samoakceptację',
'Rozważ dołączenie do grup wsparcia LGBTQ+',
'Stosuj techniki mindfulness pomagające w radzeniu sobie ze stresem',
'Celebruj małe i duże sukcesy w swojej podróży'
]
},
physicalActivity: {
title: 'Ruch i aktywność fizyczna',
info: 'Aktywność fizyczna wspiera nie tylko zdrowie fizyczne, ale także psychiczne. Odpowiednio dobrane ćwiczenia mogą wspierać Twoje cele związane z tranzycją.',
recommendations: [
'Wybieraj ćwiczenia wspierające feminizację sylwetki',
'Poszukaj przyjaznych przestrzeni treningowych',
'Dostosuj intensywność treningu do swojego samopoczucia',
'Pamiętaj o odpowiedniej regeneracji po treningu'
]
},
nutrition: {
title: 'Zdrowe odżywianie',
info: 'Odpowiednia dieta może wspierać efekty HTZ i ogólne zdrowie. Szczególnie ważne są produkty bogate w wapń i witaminę D dla zdrowia kości.',
recommendations: [
'Jedz produkty bogate w wapń i witaminę D',
'Dbaj o odpowiednią ilość białka w diecie',
'Pij dużo wody, szczególnie przy zatrzymaniu wody',
'Ogranicz spożycie alkoholu i kofeiny'
]
},
bodyAcceptance: {
title: 'Seksualność i akceptacja ciała',
info: 'Akceptacja własnego ciała to proces. Praktyki afirmujące mogą pomóc w budowaniu pozytywnego stosunku do własnego ciała i seksualności.',
recommendations: [
'Praktykuj ćwiczenia afirmujące ciało',
'Eksperymentuj z ubiorem i stylem, który sprawia, że czujesz się dobrze',
'Bądź cierpliwa wobec zmian zachodzących w Twoim ciele',
'Komunikuj swoje potrzeby i granice partnerowi/partnerce'
]
},
sexualHealth: {
title: 'Zdrowie seksualne i reprodukcyjne',
info: 'Regularne badania profilaktyczne są kluczowe dla Twojego zdrowia. Znajdź przyjaznych specjalistów, którzy rozumieją Twoje potrzeby.',
recommendations: [
'Regularnie wykonuj badania profilaktyczne',
'Zapoznaj się z informacjami o zdrowiu intymnym po operacjach affirming',
'Znajdź przyjaznych specjalistów zdrowia seksualnego',
'Edukuj się na temat profilaktyki infekcji intymnych'
]
}
};
const mockPostMenopausalContent = {
hormonalHealth: {
title: 'Zdrowie hormonalne i ogólne samopoczucie',
info: 'Po menopauzie poziom estrogenów i progesteronu znacząco spada, co może wpływać na wiele aspektów zdrowia. Regularne monitorowanie i odpowiednie wsparcie mogą złagodzić objawy.',
recommendations: [
'Monitoruj objawy takie jak uderzenia gorąca, nocne poty, bezsenność',
'Rozważ naturalne metody łagodzenia objawów (fitoestrogeny, techniki relaksacyjne)',
'Konsultuj się regularnie z lekarzem w sprawie hormonalnej terapii zastępczej',
'Praktykuj techniki relaksacyjne wspierające równowagę emocjonalną'
]
},
boneHealth: {
title: 'Zdrowie kości i stawów',
info: 'Spadek poziomu estrogenów po menopauzie przyspiesza utratę masy kostnej, zwiększając ryzyko osteoporozy. Odpowiednia dieta i aktywność fizyczna mogą pomóc w utrzymaniu zdrowia kości.',
recommendations: [
'Wykonuj regularnie badania densytometryczne',
'Jedz produkty bogate w wapń i witaminę D',
'Praktykuj ćwiczenia z obciążeniem (spacery, pilates, trening siłowy)',
'Unikaj palenia i nadmiernego spożycia alkoholu'
]
},
heartHealth: {
title: 'Zdrowie serca',
info: 'Po menopauzie ryzyko chorób sercowo-naczyniowych wzrasta. Regularne badania i zdrowy styl życia mogą pomóc w utrzymaniu zdrowia serca.',
recommendations: [
'Monitoruj ciśnienie krwi i poziom cholesterolu',
'Stosuj dietę śródziemnomorską bogatą w oliwę z oliwek, ryby i warzywa',
'Bądź aktywna fizycznie przez co najmniej 30 minut dziennie',
'Praktykuj techniki redukcji stresu'
]
},
skinHair: {
title: 'Skóra, włosy i ogólne samopoczucie',
info: 'Spadek poziomu estrogenów wpływa na skórę, włosy i paznokcie. Odpowiednia pielęgnacja może pomóc w utrzymaniu ich w dobrej kondycji.',
recommendations: [
'Stosuj kremy nawilżające i ochronę przeciwsłoneczną',
'Używaj olejów naturalnych (z wiesiołka, arganowy) dla zdrowej cery i włosów',
'Pij dużo wody dla nawilżenia od wewnątrz',
'Praktykuj masaż twarzy i ciała poprawiający krążenie'
]
},
intimateHealth: {
title: 'Zdrowie intymne i libido',
info: 'Zmiany hormonalne po menopauzie mogą prowadzić do suchości pochwy i zmian w libido. Odpowiednie produkty i ćwiczenia mogą pomóc w utrzymaniu zdrowia intymnego.',
recommendations: [
'Stosuj lubrykanty i produkty nawilżające na bazie wody lub olejków',
'Wykonuj regularnie ćwiczenia mięśni dna miednicy (Kegla)',
'Komunikuj swoje potrzeby partnerowi',
'Rozważ konsultację z seksuologiem lub ginekologiem'
]
},
mentalEmotional: {
title: 'Zdrowie psychiczne i emocjonalne',
info: 'Menopauza to czas zmian nie tylko fizycznych, ale i emocjonalnych. Dbanie o zdrowie psychiczne jest równie ważne jak dbanie o zdrowie fizyczne.',
recommendations: [
'Rozwijaj nowe pasje i zainteresowania',
'Utrzymuj aktywne życie społeczne',
'Praktykuj mindfulness, afirmacje i wdzięczność',
'Prowadź dziennik refleksji i celebruj nowy etap życia'
]
}
};
export default function WellnessApp() {
const [activeTab, setActiveTab] = useState('dashboard');
const [showMenu, setShowMenu] = useState(false);
const [waterIntake, setWaterIntake] = useState(5);
const [showOnboarding, setShowOnboarding] = useState(false);
const [onboardingStep, setOnboardingStep] = useState(1);
const [userData, setUserData] = useState({
name: 'Anna',
age: '26-35',
goals: ['Lepszy sen', 'Więcej ruchu', 'Zdrowie reprodukcyjne'],
trackPeriod: true,
sleepHours: '7-8',
activityLevel: 'Średni - czasem ćwiczę',
userType: 'regular' // 'regular', 'trans', 'postmenopausal'
});
const [userPreferences, setUserPreferences] = useState({
theme: 'light',
notifications: true,
privacyMode: false,
language: 'polski'
});
// New state for expanded cycle tracking
const [activeCycleSection, setActiveCycleSection] = useState('overview');
const [selectedDate, setSelectedDate] = useState(new Date());
const [showSymptomTracker, setShowSymptomTracker] = useState(false);
const [selectedSymptoms, setSelectedSymptoms] = useState([]);
const [selectedFlow, setSelectedFlow] = useState(null);
const [selectedMood, setSelectedMood] = useState(null);
const [showPhaseInfo, setShowPhaseInfo] = useState(false);
const [cycleSettings, setCycleSettings] = useState({
averageCycleLength: 28,
averagePeriodLength: 5,
trackFertility: true,
notifyBeforePeriod: true,
notifyPhaseChange: true,
privacyLevel: 'standard' // 'standard', 'high', 'maximum'
});
const [showCycleSettings, setShowCycleSettings] = useState(false);
const [showSpecialSection, setShowSpecialSection] = useState(false);
const [activeSpecialSection, setActiveSpecialSection] = useState(null);
const handleOnboardingNext = () => {
if (onboardingStep < 5) {
setOnboardingStep(onboardingStep + 1);
} else {
setShowOnboarding(false);
// Here we would normally save the user data to the backend
console.log("User data collected:", userData);
}
};
const handleGoalToggle = (goal) => {
if (userData.goals.includes(goal)) {
setUserData({
...userData,
goals: userData.goals.filter(g => g !== goal)
});
} else {
setUserData({
...userData,
goals: [...userData.goals, goal]
});
}
};
const incrementWater = () => {
if (waterIntake < 8) {
setWaterIntake(waterIntake + 1);
// Update the mock habits data
const updatedHabits = [...mockHabits];
const waterHabit = updatedHabits.find(h => h.name === 'Woda');
if (waterHabit) {
waterHabit.current = waterIntake + 1;
}
}
};
const toggleReminder = (id) => {
const updatedReminders = mockReminders.map(reminder =>
reminder.id === id ? { ...reminder, completed: !reminder.completed } : reminder
);
// In a real app, we would update the state here
console.log("Updated reminders:", updatedReminders);
};
const handleSymptomToggle = (symptom) => {
if (selectedSymptoms.includes(symptom)) {
setSelectedSymptoms(selectedSymptoms.filter(s => s !== symptom));
} else {
setSelectedSymptoms([...selectedSymptoms, symptom]);
}
};
const saveSymptomData = () => {
// In a real app, we would save this data to the backend
console.log("Saving symptom data:", {
date: selectedDate,
symptoms: selectedSymptoms,
flow: selectedFlow,
mood: selectedMood
});
setShowSymptomTracker(false);
};
const handleUserTypeChange = (type) => {
setUserData({
...userData,
userType: type
});
// Reset special section if changing user type
setShowSpecialSection(false);
setActiveSpecialSection(null);
};
const toggleSpecialSection = (section) => {
if (activeSpecialSection === section) {
setActiveSpecialSection(null);
} else {
setActiveSpecialSection(section);
}
};
// Onboarding component
const Onboarding = () => {
return (
{onboardingStep === 1 && (
Witaj w Wellness Asystentce!
Pomożemy Ci stworzyć spersonalizowane doświadczenie wellness. Zacznijmy od podstawowych informacji.
)}
{onboardingStep === 2 && (
Twoje cele wellness
Wybierz obszary, na których najbardziej Ci zależy:
{['Lepszy sen', 'Więcej ruchu', 'Zdrowe odżywianie', 'Redukcja stresu', 'Zdrowie reprodukcyjne', 'Zdrowie seksualne', 'Profilaktyka zdrowotna'].map((goal) => (
handleGoalToggle(goal)}
>
{goal}
{userData.goals.includes(goal) && }
))}
)}
{onboardingStep === 3 && (
Zdrowie reprodukcyjne
Wybierz opcję, która najlepiej do Ciebie pasuje:
{
setUserData({...userData, trackPeriod: true, userType: 'regular'});
}}
>
Chcę śledzić cykl menstruacyjny
{userData.userType === 'regular' && userData.trackPeriod === true && }
{
setUserData({...userData, trackPeriod: false, userType: 'postmenopausal'});
}}
>
Jestem po menopauzie
{userData.userType === 'postmenopausal' && }
{
setUserData({...userData, trackPeriod: false, userType: 'trans'});
}}
>
Jestem kobietą trans
{userData.userType === 'trans' && }
{
setUserData({...userData, trackPeriod: false, userType: 'regular'});
}}
>
Nie chcę śledzić cyklu
{userData.userType === 'regular' && userData.trackPeriod === false && }
)}
{onboardingStep === 4 && (
Twoje nawyki snu
Ile godzin snu potrzebujesz, aby czuć się wypoczęta?
)}
{onboardingStep === 5 && (
Poziom aktywności
Jak oceniasz swój obecny poziom aktywności fizycznej?
{['Niski - mało się ruszam', 'Średni - czasem ćwiczę', 'Wysoki - regularnie trenuję'].map((level) => (
setUserData({...userData, activityLevel: level})}
>
{level}
{userData.activityLevel === level && }
))}
)}
);
};
// Side menu component
const SideMenu = () => {
return (
Menu
{userData.name || 'Użytkowniczka'}
{userData.age || '26-35'} lat
);
};
// Dashboard tab content
const DashboardTab = () => {
return (
Dzień dobry,
{userData.name || 'Użytkowniczko'}!
Dziś jest dobry dzień, aby zadbać o siebie.
{userData.trackPeriod && (
Twój cykl
Dzień cyklu
{mockCycleData.currentDay}
Faza
{mockCycleData.currentPhase}
Następna miesiączka
{mockCycleData.nextPeriod}
{mockCycleData.predictedPhases.map((phase) => (
))}
Dzień 1
Dzień {mockCycleData.cycleLength}
)}
Twoje dzisiejsze nawyki
{mockHabits.map((habit) => (
{habit.icon === 'Droplet' &&
}
{habit.icon === 'Activity' &&
}
{habit.icon === 'Moon' &&
}
{habit.icon === 'Heart' &&
}
{habit.name}
{habit.current}/{habit.target} {habit.unit}
{habit.name === 'Woda' && (
)}
))}
Twój sen w tym tygodniu
[`${value} godz`, 'Sen']}
contentStyle={{ borderRadius: '8px', border: 'none', boxShadow: '0 2px 8px rgba(0,0,0,0.1)' }}
/>
Dzisiejsze przypomnienia
{mockReminders.map((reminder) => (
toggleReminder(reminder.id)}
>
{reminder.completed && }
{reminder.time}
))}
);
};
// Enhanced Cycle tracking tab content
const CycleTab = () => {
// Symptom tracker modal
const SymptomTracker = () => {
return (
Dodaj objawy
{mockSymptoms.map((category) => (
{category.category}
{category.options.map((symptom) => (
))}
))}
{/* Flow intensity selector (only shown if date is within period) */}
Intensywność krwawienia
{mockFlowOptions.map((option) => (
))}
{/* Mood selector */}
Nastrój
{['Spokojna', 'Energiczna', 'Zmęczona', 'Rozdrażniona', 'Smutna', 'Szczęśliwa', 'Zestresowana', 'Neutralna'].map((mood) => (
))}
);
};
// Phase info modal
const PhaseInfoModal = () => {
const phase = mockCycleData.currentPhase;
const phaseInfo = mockPhaseRecommendations[phase];
return (
Faza {phase}
Rekomendacje dbania o siebie
{phaseInfo.selfCare.map((item, index) => (
-
{item}
))}
Wsparcie emocjonalne
{phaseInfo.emotional.map((item, index) => (
-
{item}
))}
);
};
// Cycle settings modal
const CycleSettingsModal = () => {
return (
Ustawienia cyklu
setCycleSettings({...cycleSettings, trackFertility: !cycleSettings.trackFertility})}
>
setCycleSettings({...cycleSettings, notifyBeforePeriod: !cycleSettings.notifyBeforePeriod})}
>
setCycleSettings({...cycleSettings, notifyPhaseChange: !cycleSettings.notifyPhaseChange})}
>
);
};
// Cycle Overview Section
const CycleOverview = () => {
return (
Twój cykl
Dzień cyklu
{mockCycleData.currentDay}
Faza
{mockCycleData.currentPhase}
Następna miesiączka
{mockCycleData.nextPeriod}
Twój kalendarz cyklu
{mockCycleData.predictedPhases.map((phase) => (
))}
1
{mockCycleData.currentDay}
Dziś
{mockCycleData.cycleLength}
Płodność
{mockCycleData.fertility}
Długość cyklu
{mockCycleData.cycleLength} dni
Fazy cyklu
{mockCycleData.predictedPhases.map((phase) => (
{phase.name}
Dni {phase.start}-{phase.end}
))}
Rekomendacje dla Twojej fazy
{mockPhaseRecommendations[mockCycleData.currentPhase].info}
{mockPhaseRecommendations[mockCycleData.currentPhase].selfCare.slice(0, 3).map((rec, index) => (
))}
Zaobserwowane objawy
{mockCycleData.symptoms.map((symptom, index) => (
{symptom}
))}
{mockCycleData.symptoms.length === 0 && (
Brak objawów na dziś. Dodaj swoje obserwacje.
)}
Ostatnie wpisy
{mockCycleData.symptomHistory.slice(0, 3).map((entry, index) => (
{entry.date}
{entry.flow && (
{entry.flow}
)}
{entry.symptoms.map((symptom, i) => (
{symptom}
))}
{entry.mood && (
{entry.mood}
)}
))}
);
};
// Cycle Analysis Section
const CycleAnalysis = () => {
return (
Analiza Twojego cyklu
Poznaj wzorce swojego organizmu
Statystyki cyklu
Średnia długość cyklu
28.2 dni
Średnia długość miesiączki
5.1 dni
Regularność cyklu
Wysoka (±1 dzień)
Historia długości cyklu
({
month: cycle.startDate.split('.')[1] + '/' + cycle.startDate.split('.')[2].substring(2),
length: cycle.length
}))} margin={{ top: 5, right: 5, bottom: 5, left: 0 }}>
[`${value} dni`, 'Długość cyklu']}
contentStyle={{ borderRadius: '8px', border: 'none', boxShadow: '0 2px 8px rgba(0,0,0,0.1)' }}
/>
Najczęstsze objawy
Faza menstruacyjna
ból brzucha (80%)
zmęczenie (65%)
ból głowy (40%)
Faza folikularna
energia (70%)
dobry nastrój (60%)
Faza owulacyjna
zwiększone libido (75%)
wrażliwość piersi (50%)
Faza lutealna
wzdęcia (65%)
drażliwość (60%)
apetyt na słodycze (55%)
Korelacje
Zauważyliśmy następujące zależności w Twoich danych:
Aktywność fizyczna a nastrój
W dni, kiedy ćwiczysz, Twój nastrój jest lepszy, szczególnie w fazie lutealnej.
Kofeina a objawy PMS
Dni z wysokim spożyciem kofeiny korelują z silniejszymi objawami PMS w fazie lutealnej.
Sen a energia
Dni z 7+ godzinami snu wiążą się z wyższym poziomem energii, szczególnie w fazie folikularnej.
);
};
// Calendar Section
const CycleCalendar = () => {
const currentMonth = new Date().toLocaleString('pl-PL', { month: 'long', year: 'numeric' });
const daysInMonth = 30; // Simplified for demo
// Generate calendar days
const calendarDays = Array.from({ length: daysInMonth }, (_, i) => {
const day = i + 1;
let phase = '';
let phaseColor = '';
// Determine phase for each day
mockCycleData.predictedPhases.forEach(p => {
if (day >= p.start && day <= p.end) {
phase = p.name;
phaseColor = p.color;
}
});
// Check if there are symptoms for this day
const daySymptoms = mockCycleData.symptomHistory.find(s =>
parseInt(s.date.split('.')[0]) === day &&
parseInt(s.date.split('.')[1]) === 6 // June
);
return { day, phase, phaseColor, hasSymptoms: !!daySymptoms, flow: daySymptoms?.flow };
});
return (
Kalendarz cyklu
Planuj z wyprzedzeniem
{['Pn', 'Wt', 'Śr', 'Cz', 'Pt', 'Sb', 'Nd'].map(day => (
{day}
))}
{/* Empty cells for days before month start (simplified) */}
{[...Array(3)].map((_, i) => (
))}
{calendarDays.map((day) => (
{day.day}
{day.flow && (
)}
{day.hasSymptoms && !day.flow && (
)}
{day.day === 14 && (
)}
))}
{mockCycleData.predictedPhases.map((phase) => (
))}
Nadchodzące wydarzenia
Spodziewana miesiączka
15 czerwca (za 10 dni)
Zmiana fazy: Lutealna
5 czerwca (za 1 dzień)
Badanie ginekologiczne
20 czerwca (za 15 dni)
);
};
// Symptom Tracker Section
const SymptomTrackerSection = () => {
return (
Śledzenie objawów
Monitoruj swoje samopoczucie
Dodaj dzisiejsze objawy
{mockSymptoms.map((category) => (
{category.category}
{category.options.map((symptom) => (
))}
))}
Intensywność krwawienia
{mockFlowOptions.map((option) => (
))}
Nastrój
{['Spokojna', 'Energiczna', 'Zmęczona', 'Rozdrażniona', 'Smutna', 'Szczęśliwa', 'Zestresowana', 'Neutralna'].map((mood) => (
))}
Historia objawów
{mockCycleData.symptomHistory.map((entry, index) => (
{entry.flow && (
)}
{entry.mood && (
)}
{entry.symptoms.length > 0 && (
Objawy
{entry.symptoms.map((symptom, i) => (
{symptom}
))}
)}
))}
);
};
return (
{/* Navigation tabs */}
{/* Section content */}
{activeCycleSection === 'overview' &&
}
{activeCycleSection === 'analysis' &&
}
{activeCycleSection === 'calendar' &&
}
{activeCycleSection === 'symptoms' &&
}
{/* Modals */}
{showSymptomTracker &&
}
{showPhaseInfo &&
}
{showCycleSettings &&
}
);
};
// Sexual health tab content
const SexualHealthTab = () => {
return (
Zdrowie seksualne
Zadbaj o swoją seksualność i dobre samopoczucie
Program odbudowy libido
Codzienny program ćwiczeń i technik, które pomogą Ci odbudować libido i poprawić satysfakcję z życia seksualnego.
Dzisiejsze ćwiczenie
Mindfulness ciała - 10-minutowa medytacja skupiona na odczuwaniu własnego ciała i akceptacji.
Ćwiczenia mięśni dna miednicy
Twój postęp w tym tygodniu
Regularne ćwiczenia mięśni dna miednicy mogą pomóc w zapobieganiu problemom z nietrzymaniem moczu oraz poprawić doznania seksualne.
Materiały edukacyjne
Anatomia kobiecej przyjemności
Poznaj swoje ciało i odkryj, co sprawia Ci przyjemność.
Komunikacja w sypialni
Jak rozmawiać o swoich potrzebach i preferencjach z partnerem.
Wpływ hormonów na libido
Zrozum, jak hormony wpływają na Twoje pożądanie seksualne.
);
};
// Prevention tab content
const PreventionTab = () => {
return (
Profilaktyka zdrowotna
Regularne badania to klucz do zdrowia
Nadchodzące badania
{mockPreventiveExams.map((exam) => (
{exam.name}
Zaplanowane na: {exam.date}
))}
Rekomendowane badania dla Twojego wieku
Cytologia
Co 3 lata
Badanie pozwalające wykryć zmiany przedrakowe i raka szyjki macicy we wczesnym stadium.
Badanie piersi
Co rok
USG lub mammografia w zależności od wieku. Kluczowe dla wczesnego wykrywania raka piersi.
Morfologia krwi
Co rok
Podstawowe badanie krwi pozwalające ocenić ogólny stan zdrowia i wykryć wiele chorób.
Historia badań
Tutaj możesz przechowywać wyniki swoich badań i obserwować trendy zdrowotne.
);
};
// Settings tab content
const SettingsTab = () => {
return (
Ustawienia
Dostosuj aplikację do swoich potrzeb
Preferencje aplikacji
Powiadomienia
Włącz/wyłącz powiadomienia
setUserPreferences({...userPreferences, notifications: !userPreferences.notifications})}
>
Tryb prywatny
Ukryj wrażliwe informacje
setUserPreferences({...userPreferences, privacyMode: !userPreferences.privacyMode})}
>
Język
Wybierz język aplikacji
Profil użytkownika
Typ użytkownika
Dostosuj funkcje do swoich potrzeb
Śledzenie cyklu
Włącz/wyłącz funkcje cyklu
setUserData({...userData, trackPeriod: !userData.trackPeriod})}
>
Konto i prywatność
O aplikacji
Wellness Asystentka v1.0.0
);
};
// Community tab content
const CommunityTab = () => {
return (
Społeczność
Połącz się z innymi kobietami i znajdź wsparcie
Popularne grupy
Zdrowie hormonalne
Dyskusje o równowadze hormonalnej, PCOS, endometriozie i innych zagadnieniach.
1.2k członkiń
Menopauza i perimenopausa
Wsparcie i porady dla kobiet przechodzących menopauzę.
856 członkiń
Zdrowe odżywianie
Przepisy, porady i wsparcie w zdrowym odżywianiu.
2.3k członkiń
Eksperci
Zweryfikowani specjaliści, którzy odpowiadają na pytania społeczności
dr Anna Kowalska
Ginekolog, specjalistka zdrowia kobiet
mgr Joanna Nowak
Dietetyk kliniczny, specjalistka żywienia kobiet
dr Marek Wiśniewski
Endokrynolog, specjalista zdrowia hormonalnego
Ostatnie dyskusje
Jak radzicie sobie z bezsennością w okresie menopauzy?
Grupa: Menopauza i perimenopausa
23 odpowiedzi
Polecane suplementy na poprawę libido?
Grupa: Zdrowie seksualne
17 odpowiedzi
);
};
// Trans Women Health Tab
const TransHealthTab = () => {
return (
Zdrowie kobiet trans
Spersonalizowane wsparcie dla Twojego zdrowia i dobrostanu
Twoje sekcje
Dostosowane do Twoich potrzeb
{Object.keys(mockTransWomenContent).map((key) => {
const section = mockTransWomenContent[key];
return (
{activeSpecialSection === key && (
{section.info}
Rekomendacje:
{section.recommendations.map((rec, index) => (
-
{rec}
))}
)}
);
})}
Twój dziennik zdrowia
Monitoruj swoje samopoczucie i zmiany związane z HTZ
Stres