/* eslint-disable react/prop-types */ import { createDrawerNavigator } from "@react-navigation/drawer"; import { NavigationContainer, useTheme } from "@react-navigation/native"; import { createStackNavigator } from "@react-navigation/stack"; import * as Notifications from "expo-notifications"; import React, { useEffect } from "react"; import { Text, useColorScheme, View } from "react-native"; import Animated from "react-native-reanimated"; import { initialWindowMetrics, SafeAreaProvider, } from "react-native-safe-area-context"; import { TextDefault, LeftButton, Sidebar } from "../components"; import Menu from "../screens/Menu/Menu"; import MenuItems from "../screens/MenuItems/MenuItems"; import Addresses from "../screens/Addresses/Addresses"; import NewAddress from "../screens/NewAddress/NewAddress"; import EditAddress from "../screens/EditAddress/EditAddress"; import Cart from "../screens/Cart/Cart"; import Profile from "../screens/Profile/Profile"; import FullMap from "../screens/FullMap/FullMap"; import CartAddress from "../screens/CartAddress/CartAddress"; import SelectVoucher from "../screens/Coupon/Coupon"; import Help from "../screens/Help/Help"; import HelpBrowser from "../screens/HelpBrowser/HelpBrowser"; import Chat from "../screens/Chat/Chat"; import Settings from "../screens/Settings/Settings"; import Paypal from "../screens/Paypal/Paypal"; import ItemDetail from "../screens/ItemDetail/ItemDetail"; import MyOrders from "../screens/MyOrders/MyOrders"; import OrderDetail from "../screens/OrderDetail/OrderDetail"; import StripeCheckout from "../screens/Stripe/StripeCheckout"; import RateAndReview from "../screens/RateAndReview/RateAndReview"; import CreateAccount from "../screens/CreateAccount/CreateAccount"; import Login from "../screens/Login/Login"; import Register from "../screens/Register/Register"; import ForgotPassword from "../screens/ForgotPassword/ForgotPassword"; // import { // Addresses, // Cart, // CartAddress, // Chat, // CreateAccount, // EditAddress, // ForgotPassword, // FullMap, // Help, // HelpBrowser, // ItemDetail, // Login, // MenuItems, // MyOrders, // NewAddress, // OrderDetail, // Paypal, // Profile, // RateAndReview, // Register, // SelectVoucher, // Settings, // StripeCheckout, // Menu, // } from "../screens"; import { THEME } from "../Theme"; import { ICONS_NAME, NAVIGATION_SCREEN } from "../utils/constant"; import navigationService from "./navigationService"; import screenOptions from "./screenOptions"; import styles from "./styles"; const NavigationStack = createStackNavigator(); const MainStack = createStackNavigator(); const SideDrawer = createDrawerNavigator(); function Drawer() { const { colors } = useTheme(); let animatedStyle = {}; let opacity; let OuterWindowSlide, InnerWindowSlide; return ( { const scale = Animated.interpolateNode(props.progress, { inputRange: [0, 1], outputRange: [1, 0.7], }); const Animatedopacity = Animated.interpolateNode(props.progress, { inputRange: [0, 0.6, 1], outputRange: [0, 0, 1], }); const AnimatedOuterSlide = Animated.interpolateNode(props.progress, { inputRange: [0, 1], outputRange: [0, -35], }); const AnimatedInnerSlide = Animated.interpolateNode(props.progress, { inputRange: [0, 1], outputRange: [0, -15], }); const borderRadius = Animated.interpolateNode(props.progress, { inputRange: [0, 1], outputRange: [0, 20], }); animatedStyle = { borderRadius, transform: [{ scale }] }; opacity = Animatedopacity; OuterWindowSlide = AnimatedOuterSlide; InnerWindowSlide = AnimatedInnerSlide; return ; }} > {(props) => ( )} ); } function NoDrawer({ style, opacity = 1, OuterWindowSlide, InnerWindowSlide }) { const { colors } = useTheme(); return ( , }} /> , }} /> , }} /> , }} /> , }} /> , }} /> , }} /> {"Close X"} ); } function AppContainer() { console.log("AppContainer Working"); const colorScheme = useColorScheme(); function _handleNotification(notification) { try { if (notification.origin === "selected") { if (notification.data.order) { navigationService.navigate(NAVIGATION_SCREEN.OrderDetail, { _id: notification.data._id, }); } } } catch (e) { console.log(e); } } useEffect(() => { Notifications.setNotificationHandler({ handleNotification: async () => ({ shouldShowAlert: true, shouldPlaySound: false, shouldSetBadge: false, }), }); const subscription = Notifications.addNotificationResponseReceivedListener( _handleNotification ); return () => subscription.remove(); }, []); return ( { navigationService.setGlobalRef(ref); Notifications.addNotificationReceivedListener(_handleNotification); }} > ); } export default AppContainer;