"use client";

import { createContext, useContext, useMemo, useState, ReactNode } from 'react';

/**
 * Erlaubt es Seiten innerhalb des Tab-Layouts, die Bottom-Navigation
 * temporaer auszublenden (z.B. waehrend des Erstellen-Wizards auf der
 * Startseite). Der Zustand lebt im (tabs)-Layout, damit er beim Wechsel
 * zwischen den Tabs erhalten bleibt.
 */
interface NavVisibilityValue {
  hidden: boolean;
  setHidden: (hidden: boolean) => void;
}

const NavVisibilityContext = createContext<NavVisibilityValue | null>(null);

export function NavVisibilityProvider({ children }: { children: ReactNode }) {
  const [hidden, setHidden] = useState(false);
  const value = useMemo(() => ({ hidden, setHidden }), [hidden]);
  return <NavVisibilityContext.Provider value={value}>{children}</NavVisibilityContext.Provider>;
}

export function useNavVisibility(): NavVisibilityValue {
  const ctx = useContext(NavVisibilityContext);
  if (!ctx) {
    throw new Error('useNavVisibility muss innerhalb von <NavVisibilityProvider> verwendet werden');
  }
  return ctx;
}
