Obanana_test/app/routes/route.jsx

208 lines
8.1 KiB
React
Raw Permalink Normal View History

2024-02-12 08:58:57 +08:00
import { NavigationContainer, useNavigation } from "@react-navigation/native";
import React, { useEffect, useState } from "react";
2023-09-26 14:33:01 +08:00
import { useWindowDimensions, View } from "react-native";
import { createStackNavigator } from "@react-navigation/stack";
import Main from "../pages/home/main";
import SearchPage from "../pages/search/SearchPage";
import SearchHeader from "../components/search/Header";
import ProductSinglePage from "../pages/product/ProductSinglePage";
import CheckOut from "../pages/checkout/CheckOut";
import Paymentoption from "../pages/checkout/Paymentoption";
import ShippingOption from "../pages/checkout/ShippingOption";
import AddressSelection from "../pages/checkout/AddressSelection";
import AccountSettings from "../pages/profile/AccountSettings";
import HelpCenter from "../pages/profile/HelpCentre";
import ViewHistory from "../pages/profile/ViewHistory";
import MyFavorites from "../pages/profile/MyFavorites";
import MyWallet from "../pages/profile/MyWallet";
import MyPurchases from "../pages/profile/MyPurchases";
2024-02-12 08:58:57 +08:00
import ShopSinglePage from "../pages/shop/ShopSinglePage";
import CheckOutMultiple from "../pages/cart/CheckOutMultiple";
import PaymentoptionMulti from "../pages/cart/Paymentoption";
import ShippingOptionMulti from "../pages/cart/ShippingOption";
import AddressSelectionMulti from "../pages/cart/AddressSelection";
import Register from "../pages/auth/Register";
import Login from "../pages/auth/Login";
import AsyncStorage from "@react-native-async-storage/async-storage";
import Address from "../pages/address/Address";
import Addresses from "../pages/address/Addresses";
import ForgotPassword from "../pages/auth/ForgotPassword";
import AccountAndSecurity from "../pages/profile/AccountAndSecurity";
import { get_all_vendors } from "../services/api/controllers/vendor";
import { get_all_products } from "../services/api/controllers/product";
import AddressCheckout from "../pages/address/AddressCheckout";
2023-09-26 14:33:01 +08:00
const Stack = createStackNavigator();
const Route = () => {
const { height, width } = useWindowDimensions();
const [cartList, setcartList] = useState([]);
2024-02-12 08:58:57 +08:00
const [user, setuser] = useState(false);
const [product, setproduct] = useState([]);
const [products, setproducts] = useState([]);
2023-09-26 14:33:01 +08:00
2024-02-12 08:58:57 +08:00
// const navigation = useNavigation();
useEffect(() => {
/* ---------------Check for the user saved email--------------- */
AsyncStorage.getItem("AccessToken")
.then((pass) => {
pass === null ? setuser(false) : setuser(true);
})
.catch((error) => {
console.log(error + "weeewwww");
});
}, []);
useEffect(() => {
/* ---------------Check for the user saved email--------------- */
get_all_products()
.then((result) => {
if (result.error) {
setError(result.error);
} else {
const filtered = result.data.filter(
(item) =>
item.product_type !== "variation" &&
item.product_image !== "" &&
item.product_image !== null
);
const filtered1 = result.data.filter(
(item) =>
item.product_type === "variation" &&
item.product_image !== "" &&
item.product_image !== null
);
setproduct(filtered);
setproducts(filtered1);
}
})
.catch((error) => {
setError(error.message);
})
.finally(() => {
// setprodIsLoading(false); // Set loading to false when done loading
});
}, []);
2023-09-26 14:33:01 +08:00
return (
<NavigationContainer>
<View
style={{
backgroundColor: "#fff",
opacity: 1,
width: "100%",
height: "100%",
}}
>
<Stack.Navigator initialRouteName="Home">
2024-02-12 08:58:57 +08:00
<Stack.Screen name="Register" options={{ headerShown: false }}>
{(props) => <Register {...props} />}
</Stack.Screen>
<Stack.Screen name="Login" options={{ headerShown: false }}>
{(props) => <Login {...props} />}
</Stack.Screen>
<Stack.Screen name="ForgotPassword" options={{ headerShown: false }}>
{(props) => <ForgotPassword {...props} />}
</Stack.Screen>
2023-09-26 14:33:01 +08:00
<Stack.Screen name="Home" options={{ headerShown: false }}>
{(props) => <Main {...props} cartList={cartList} />}
</Stack.Screen>
<Stack.Screen name="Search" options={{ headerShown: false }}>
2024-02-12 08:58:57 +08:00
{(props) => (
<SearchPage product={product} productAll={products} {...props} />
)}
2023-09-26 14:33:01 +08:00
</Stack.Screen>
<Stack.Screen name="Product" options={{ headerShown: false }}>
{(props) => (
<ProductSinglePage
{...props}
cartList={cartList}
2024-02-12 08:58:57 +08:00
prod={products}
2023-09-26 14:33:01 +08:00
setcartList={setcartList}
/>
)}
</Stack.Screen>
2024-02-12 08:58:57 +08:00
<Stack.Screen name="Shop" options={{ headerShown: false }}>
{(props) => <ShopSinglePage productList={products} {...props} />}
</Stack.Screen>
2023-09-26 14:33:01 +08:00
<Stack.Screen name="CheckOut" options={{ headerShown: false }}>
{(props) => <CheckOut {...props} />}
</Stack.Screen>
2024-02-12 08:58:57 +08:00
<Stack.Screen
name="CheckOutMultiple"
options={{ headerShown: false }}
>
{(props) => <CheckOutMultiple {...props} />}
</Stack.Screen>
2023-09-26 14:33:01 +08:00
<Stack.Screen name="Paymentoption" options={{ headerShown: false }}>
{(props) => <Paymentoption {...props} />}
</Stack.Screen>
<Stack.Screen name="ShippingOption" options={{ headerShown: false }}>
{(props) => <ShippingOption {...props} />}
</Stack.Screen>
<Stack.Screen
name="AddressSelection"
options={{ headerShown: false }}
>
{(props) => <AddressSelection {...props} />}
</Stack.Screen>
2024-02-12 08:58:57 +08:00
<Stack.Screen
name="PaymentoptionMulti"
options={{ headerShown: false }}
>
{(props) => <PaymentoptionMulti {...props} />}
</Stack.Screen>
<Stack.Screen
name="ShippingOptionMulti"
options={{ headerShown: false }}
>
{(props) => <ShippingOptionMulti {...props} />}
</Stack.Screen>
<Stack.Screen
name="AddressSelectionMulti"
options={{ headerShown: false }}
>
{(props) => <AddressSelectionMulti {...props} />}
</Stack.Screen>
2023-09-26 14:33:01 +08:00
<Stack.Screen name="MyPurchases" options={{ headerShown: false }}>
{(props) => <MyPurchases {...props} />}
</Stack.Screen>
2024-02-12 08:58:57 +08:00
<Stack.Screen name="Address" options={{ headerShown: false }}>
{(props) => <Addresses {...props} />}
</Stack.Screen>
<Stack.Screen name="AddressCreate" options={{ headerShown: false }}>
{(props) => <Address {...props} />}
</Stack.Screen>
<Stack.Screen name="AddressCreate1" options={{ headerShown: false }}>
{(props) => <AddressCheckout {...props} />}
</Stack.Screen>
2023-09-26 14:33:01 +08:00
<Stack.Screen name="MyWallet" options={{ headerShown: false }}>
{(props) => <MyWallet {...props} />}
</Stack.Screen>
<Stack.Screen name="MyFavorites" options={{ headerShown: false }}>
2024-02-12 08:58:57 +08:00
{(props) => <MyFavorites prod={product} {...props} />}
2023-09-26 14:33:01 +08:00
</Stack.Screen>
<Stack.Screen name="ViewHistory" options={{ headerShown: false }}>
{(props) => <ViewHistory {...props} />}
</Stack.Screen>
<Stack.Screen name="HelpCenter" options={{ headerShown: false }}>
{(props) => <HelpCenter {...props} />}
</Stack.Screen>
<Stack.Screen name="AccountSettings" options={{ headerShown: false }}>
{(props) => <AccountSettings {...props} />}
</Stack.Screen>
2024-02-12 08:58:57 +08:00
<Stack.Screen
name="AccountAndSecurity"
options={{ headerShown: false }}
>
{(props) => <AccountAndSecurity {...props} />}
</Stack.Screen>
2023-09-26 14:33:01 +08:00
</Stack.Navigator>
</View>
</NavigationContainer>
);
};
export default Route;