// Onboarding modal — shown on first login when no projects exist const OBIcons = window.Icons; const OB_KEY = 'navia_onboarded_v1'; function OnboardingModal({ onClose, onCreateProject, onAddTask }) { const [step, setStep] = React.useState(0); const steps = [ { icon: '🎉', title: 'Navia\'ya hoş geldin!', desc: 'Firmalarını yönet, görevleri takip et, ekibinle birlikte çalış. Hızlı bir tur yapalım.', action: 'Başla', skip: true, }, { icon: '📁', title: 'İlk firmayı oluştur', desc: 'Firmalar, görevlerin bulunduğu çalışma alanlarıdır. Kanban, liste ve sprint görünümleriyle yönetebilirsin.', action: 'Firma Oluştur', actionFn: () => { onCreateProject(); dismiss(); }, skip: true, }, { icon: '✅', title: 'Görev ekle ve takip et', desc: 'Her göreve öncelik, son tarih, etiket ve alt görevler ekleyebilirsin. Takvimde sürükleyerek tarihi değiştirebilirsin.', action: 'Anladım', skip: false, }, { icon: '🚀', title: 'Hazırsın!', desc: 'Şimdi sol menüden bir firma oluştur veya "Yeni Görev" düğmesiyle başla. İyi çalışmalar!', action: 'Uygulamayı Keşfet', actionFn: dismiss, skip: false, }, ]; function dismiss() { try { localStorage.setItem(OB_KEY, '1'); } catch (e) {} onClose(); } const current = steps[step]; const isLast = step === steps.length - 1; return (
{/* Progress dots */}
{steps.map((_, i) => ( ))}
{/* Content */}
{current.icon}

{current.title}

{current.desc}

{/* Feature highlights for step 2 */} {step === 2 && ( )} {/* Actions */}
{current.skip && step < steps.length - 1 && ( )}
{/* Close button */}
); } function shouldShowOnboarding(state) { try { if (localStorage.getItem(OB_KEY)) return false; } catch (e) {} return !state.projects?.length && !state.tasks?.length; } window.OnboardingModal = OnboardingModal; window.shouldShowOnboarding = shouldShowOnboarding;