import type { NativeStackNavigationProp } from '@react-navigation/native-stack';
import type { AppStackParamList } from './types';

let appNavigator: NativeStackNavigationProp<AppStackParamList> | null = null;

export function setAppNavigator(nav: NativeStackNavigationProp<AppStackParamList> | null) {
  appNavigator = nav;
}

export function navigateApp(
  screen: keyof AppStackParamList,
  params?: AppStackParamList[keyof AppStackParamList],
) {
  if (!appNavigator) {
    console.warn(`App navigator not ready; cannot navigate to ${String(screen)}`);
    return false;
  }
  // @ts-expect-error — dynamic screen names from route map
  appNavigator.navigate(screen, params);
  return true;
}
