import { createContext, useContext, type ReactNode } from 'react';

/**
 * Stellt der OnboardingShell einen optionalen Back-Handler bereit, ohne
 * `onBack` durch alle 8 Slide-Komponenten prop-drillen zu müssen.
 *
 * Controller (app/onboarding/index.tsx) entscheidet pro Slide ob ein Back
 * möglich ist (welcome = erste Slide, done = final → kein Back) und liefert
 * entsprechend `goBack` oder `null`.
 */
const OnboardingBackContext = createContext<(() => void) | null>(null);

export function OnboardingNavProvider({
  goBack,
  children,
}: {
  goBack: (() => void) | null;
  children: ReactNode;
}) {
  return (
    <OnboardingBackContext.Provider value={goBack}>
      {children}
    </OnboardingBackContext.Provider>
  );
}

/** Gibt den Back-Handler zurück, oder null wenn die aktuelle Slide kein Back erlaubt. */
export function useOnboardingBack(): (() => void) | null {
  return useContext(OnboardingBackContext);
}
