import * as React from "react"; import { NavigationContainer } from "@react-navigation/native"; import { createNativeStackNavigator } from "@react-navigation/native-stack"; import LoginScreen from "../screens/LoginScreen"; import OtpVerificationScreen from "../screens/OtpVarificationScreen"; import SplashScreen from "../screens/SplashScreen"; import Profile from "../screens/profile/Profile"; import OrganizerRegisterScreen from "../screens/OrgnizerRagister"; import GroupCreation from "../screens/GroupCreation"; import GroupReview from "../screens/GroupReview"; import BottomTabs from "./BottomTabs"; import BecomeOrg from "../screens/profile/BecomeOrg"; import YourContacts from "../screens/management/YourContacts"; import Transaction from "../screens/profile/Transaction"; import GroupDetails from "../screens/home/user-home/GroupDetails"; import EditGroupScreen from "../screens/management/EditGroupScreen"; import EditBankDetails from "../screens/profile/EditBankDetails"; import ManageJoinedGroup from "../screens/management/ManageJoinedGroup"; import InviteScreen from "../screens/InviteScreen"; import ManagementTabNavigation from "../screens/management/ManagementTabNavigation"; import TransactionsList from "../screens/transaction/TransactionList"; import RandomSelectUserScreen from "../screens/management/RandomSelectUserScreen"; import Notification from "../screens/notification/Notification"; import ManagementScreen from "../screens/management/ManagementScreen"; import { navigationRef } from "../utils/navigationService"; import NotificationRedirection from "../screens/NotificationRedirection"; export type RootStackParamList = { Splash: undefined; Login: undefined; OtpVarify: { mobile: string }; Home: undefined; OrganizerRegister: undefined; Profile: undefined; GroupCreation: undefined; GroupReview: undefined; EditGroup: { groupId: string | number }; GroupDetails: { item: object }; BecomeOrg: undefined; YourContacts: undefined; Transaction: undefined; EditBankDetails: { currentBankName: string | null; currentAccountNumber: string | null; currentBranchCode: string | null }; ManageJoinedGroup: { groupId: string | number }; Invite: { groupId: string | number; code: string | number }; ManagementTabs: { groupId: string | number; } TransactionList: undefined RandomSelectUserScreen: { groupId: string | number, cycleNumber: number }; Notification: undefined; NotificationRedirection:{ data: any }; Management: | { actionTab: "My Groups" } | { actionTab1: "Joined Groups" } | { actionTab2: "Requests" } | { actionTab3: "Your Requests" }; }; const Stack = createNativeStackNavigator(); export default function AppNavigator() { const linking = { prefixes: [ "myapp://", // Your custom scheme "https://your-production-domain.com" // Your website for Universal Links/App Links ], config: { screens: { // Define the route for the InviteScreen Invite: { // This path matches the part after the "://" and before the "?" path: "invite", // This block tells React Navigation how to handle the query parameters parse: { groupId: (groupId: string | number) => `${groupId}`, code: (code: string | number) => `${code}`, }, }, // Add deep linking for notification screens ContributionDetails: "contribution/:contributionId", GroupDetails: "group/:groupId", CycleCompleted: "cycle/completed/:groupId/:cycleNumber", // Add other notification screens as needed // Add other notification screens as needed // Other screens in your navigator can be defined here // e.g., GroupDetails: "group/:id" }, }, }; return ( ); }