import { ArrowRight, PartyPopper } from 'lucide-react' import { usePathname, useRouter } from 'next/navigation' import React, { useCallback, useEffect, useState } from 'react' import { trackEvent, MixpanelEvent, setTelemetryEnabled } from "@/utils/mixpanel"; import { Switch } from '../ui/switch'; import confetti from 'canvas-confetti'; const CONFETTI_COLORS = ['#ff00c5', '#f3ff00', '#9500d0', '#00d2f2', '#00ea9b', '#ff7f36']; function fireRealisticConfetti() { confetti({ particleCount: 300, spread: 360, origin: { x: 0.5, y: 0.5 }, colors: CONFETTI_COLORS, startVelocity: 60, scalar: 1.8, gravity: 0.6, ticks: 300, decay: 0.93, zIndex: 9999, }); } const FinalStep = () => { const router = useRouter() const pathname = usePathname() const [trackingEnabled, setTrackingEnabled] = useState(null); useEffect(() => { fireRealisticConfetti(); }, []); useEffect(() => { async function fetchStatus() { try { if (window.electron?.telemetryStatus) { const data = await window.electron.telemetryStatus(); setTrackingEnabled(data.telemetryEnabled); } else { const res = await fetch('/api/telemetry-status'); const data = await res.json(); setTrackingEnabled(data.telemetryEnabled); } } catch { setTrackingEnabled(true); } } fetchStatus(); }, []); const handleTrackingToggle = useCallback(async (enabled: boolean) => { const prev = trackingEnabled; setTrackingEnabled(enabled); setTelemetryEnabled(enabled); try { if (window.electron?.setUserConfig) { await window.electron.setUserConfig({ DISABLE_ANONYMOUS_TRACKING: enabled ? undefined : 'true', } as any); } else { await fetch('/api/user-config', { method: 'POST', body: JSON.stringify({ DISABLE_ANONYMOUS_TRACKING: enabled ? undefined : 'true', }), }); } } catch { setTrackingEnabled(prev); setTelemetryEnabled(prev ?? true); } }, [trackingEnabled]); const handleGoToDashboard = () => { trackEvent(MixpanelEvent.Navigation, { from: pathname, to: "/dashboard" }); router.push('/dashboard') } const handleGoToUpload = () => { trackEvent(MixpanelEvent.Navigation, { from: pathname, to: "/upload" }); router.push('/upload') } return (
presenton

Welcome on board!

Your AI workspace is ready. Let's create your first presentation.

{trackingEnabled !== null && (

Anonymous Tracking

Help improve Presenton with anonymous usage data.

)}
) } export default FinalStep