'use client' import { useState, useCallback } from 'react' import { SlideId } from '../types' const SLIDE_ORDER: SlideId[] = [ 'cover', 'problem', 'solution', 'product', 'how-it-works', 'market', 'business-model', 'traction', 'competition', 'team', 'financials', 'the-ask', 'ai-qa', 'annex-assumptions', 'annex-architecture', 'annex-gtm', 'annex-regulatory', 'annex-engineering', 'annex-aipipeline', ] export const TOTAL_SLIDES = SLIDE_ORDER.length export function useSlideNavigation() { const [currentIndex, setCurrentIndex] = useState(0) const [direction, setDirection] = useState(0) const [visitedSlides, setVisitedSlides] = useState>(new Set([0])) const [showOverview, setShowOverview] = useState(false) const currentSlide = SLIDE_ORDER[currentIndex] const goToSlide = useCallback((index: number) => { if (index < 0 || index >= TOTAL_SLIDES) return setDirection(index > currentIndex ? 1 : -1) setCurrentIndex(index) setVisitedSlides(prev => new Set([...prev, index])) setShowOverview(false) }, [currentIndex]) const nextSlide = useCallback(() => { if (currentIndex < TOTAL_SLIDES - 1) { goToSlide(currentIndex + 1) } }, [currentIndex, goToSlide]) const prevSlide = useCallback(() => { if (currentIndex > 0) { goToSlide(currentIndex - 1) } }, [currentIndex, goToSlide]) const goToFirst = useCallback(() => goToSlide(0), [goToSlide]) const goToLast = useCallback(() => goToSlide(TOTAL_SLIDES - 1), [goToSlide]) const toggleOverview = useCallback(() => { setShowOverview(prev => !prev) }, []) return { currentIndex, currentSlide, direction, visitedSlides, showOverview, totalSlides: TOTAL_SLIDES, slideOrder: SLIDE_ORDER, goToSlide, nextSlide, prevSlide, goToFirst, goToLast, toggleOverview, setShowOverview, isFirst: currentIndex === 0, isLast: currentIndex === TOTAL_SLIDES - 1, } }