// src/types/navigation.ts
import { NavigationContainerRef } from '@react-navigation/native'; // Import NavigationContainerRef

// Screens within the main Mobile Bottom Tab Navigator
export type MobileTabParamList = {
    DashboardTab: undefined;
    ChatTab: undefined;
    CalendarTab: undefined;
    ProfileTab: undefined;
    AdminTab?: undefined; // Add Admin tab (optional)
};
  
// Screens within the Web Content Area Stack Navigator
export type WebContentStackParamList = {
    Dashboard: undefined;
    Chat: undefined;
    Calendar: undefined;
    Profile: undefined;
    Admin?: undefined; // Add Admin screen
    EventForm?: { eventId?: number; selectedDate?: string };
};

// Screens managed by the Root Navigator (Auth vs App)
export type RootStackParamList = AuthStackParamList & AppStackParamList;

// Screens within the Authentication Flow
export type AuthStackParamList = {
    Login: undefined;
    Register: undefined;
};
  
// Screens within the main App stack (Mobile)
export type AppStackParamList = {
    Home: undefined;
    Settings: undefined; 
    Calendar: undefined;
    Todo: undefined;
    MainTabs: undefined; // Represents the MobileTabNavigator
    EventForm: { eventId?: number; selectedDate?: string };
};

// Type for the ref used in WebAppLayout
export type WebContentNavigationProp = NavigationContainerRef<WebContentStackParamList>;