96 lines
4.5 KiB
TypeScript
96 lines
4.5 KiB
TypeScript
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";
|
|
|
|
export type RootStackParamList = {
|
|
Splash: undefined;
|
|
Login: undefined;
|
|
OtpVarify: { mobile: string };
|
|
Home: undefined;
|
|
HomeTabs: undefined;
|
|
OrganizerRegister: undefined;
|
|
Profile: undefined;
|
|
GroupCreation: undefined;
|
|
GroupReview: undefined;
|
|
EditGroup: { groupId: string | number };
|
|
GroupDetails: { groupId: string | number };
|
|
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:any
|
|
};
|
|
|
|
const Stack = createNativeStackNavigator<RootStackParamList>();
|
|
|
|
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}`,
|
|
},
|
|
},
|
|
|
|
// Other screens in your navigator can be defined here
|
|
// e.g., GroupDetails: "group/:id"
|
|
},
|
|
},
|
|
};
|
|
|
|
|
|
return (
|
|
<NavigationContainer linking={linking}>
|
|
<Stack.Navigator initialRouteName="Splash">
|
|
<Stack.Screen name="Splash" component={SplashScreen} options={{ headerShown: false }} />
|
|
<Stack.Screen name="Home" component={BottomTabs} options={{ headerShown: false }} />
|
|
<Stack.Screen name="Login" component={LoginScreen} options={{ headerShown: false }} />
|
|
<Stack.Screen name="OtpVarify" component={OtpVerificationScreen} options={{ headerShown: false }} />
|
|
<Stack.Screen name="OrganizerRegister" component={OrganizerRegisterScreen} options={{ headerShown: false }} />
|
|
<Stack.Screen name="Profile" component={Profile} options={{ headerShown: false }} />
|
|
<Stack.Screen name="GroupCreation" component={GroupCreation} options={{ headerShown: false }} />
|
|
<Stack.Screen name="GroupReview" component={GroupReview} options={{ headerShown: false }} />
|
|
<Stack.Screen name="BecomeOrg" component={BecomeOrg} options={{ headerShown: false }} />
|
|
<Stack.Screen name="YourContacts" component={YourContacts} options={{ headerShown: false }} />
|
|
<Stack.Screen name="Transaction" component={Transaction} options={{ headerShown: false }} />
|
|
<Stack.Screen name="GroupDetails" component={GroupDetails} options={{ headerShown: false }} />
|
|
<Stack.Screen name="EditGroup" component={EditGroupScreen} options={{ headerShown: false }} />
|
|
<Stack.Screen name="EditBankDetails" component={EditBankDetails} options={{ headerShown: false }} />
|
|
<Stack.Screen name="ManageJoinedGroup" component={ManageJoinedGroup} options={{ headerShown: false }} />
|
|
<Stack.Screen name="Invite" component={InviteScreen} options={{ headerShown: false }} />
|
|
<Stack.Screen name="ManagementTabs" component={ManagementTabNavigation} options={{ headerShown: false }} />
|
|
</Stack.Navigator>
|
|
</NavigationContainer>
|
|
);
|
|
}
|