diff --git a/RiderApp/App.js b/RiderApp/App.js
index b77bbc8..aee2c4b 100644
--- a/RiderApp/App.js
+++ b/RiderApp/App.js
@@ -6,7 +6,7 @@ import * as SplashScreen from "expo-splash-screen";
import React, { useEffect, useState } from "react";
import { Platform, StatusBar } from "react-native";
import FlashMessage from "react-native-flash-message";
-import i18n from "./i18n";
+//import i18n from "./i18n";
import setupApolloClient from "./src/apollo/index";
import { AuthContext } from "./src/context/auth";
import { ConfigurationProvider } from "./src/context/configuration";
@@ -56,7 +56,7 @@ export default function App() {
};
async function loadData() {
- await i18n.initAsync();
+ //await i18n.initAsync();
await Font.loadAsync({
MuseoSans300: require("./assets/font/MuseoSans/MuseoSans300.ttf"),
MuseoSans500: require("./assets/font/MuseoSans/MuseoSans500.ttf"),
diff --git a/RiderApp/i18n.js b/RiderApp/i18n.js
deleted file mode 100644
index e3ac38b..0000000
--- a/RiderApp/i18n.js
+++ /dev/null
@@ -1,24 +0,0 @@
-import * as Localization from 'expo-localization'
-import AsyncStorage from "@react-native-async-storage/async-storage";
-import { Platform } from 'react-native'
-import i18n from 'i18n-js'
-import { en } from './languages/en'
-import { fr } from './languages/fr'
-import { km } from './languages/km'
-import { zh } from './languages/zh'
-import { de } from './languages/de'
-import { ar } from './languages/ar'
-
-i18n.initAsync = async () => {
- i18n.fallbacks = true
- i18n.translations = { fr, en, km, zh, de, ar }
- // i18n.locale = 'km'
- if (Platform.OS === 'android') {
- const lang = await AsyncStorage.getItem('enatega-language')
- i18n.locale = lang || 'en'
- } else {
- i18n.locale = Localization.locale
- }
-}
-
-export default i18n
diff --git a/RiderApp/i18next.js b/RiderApp/i18next.js
new file mode 100644
index 0000000..fa9ceb0
--- /dev/null
+++ b/RiderApp/i18next.js
@@ -0,0 +1,44 @@
+import i18next from "i18next";
+import { initReactI18next } from "react-i18next";
+import * as Localization from "expo-localization";
+import { Platform } from "react-native";
+import { en } from "./languages/en";
+import { de } from "./languages/de";
+import { fr } from "./languages/fr";
+import { km } from "./languages/km";
+import { zh } from "./languages/zh";
+import { ar } from "./languages/ar";
+import AsyncStorage from "@react-native-async-storage/async-storage";
+export const languageResources = {
+ en: { translation: en },
+ zh: { translation: zh },
+ de: { translation: de },
+ fr: { translation: fr },
+ km: { translation: km },
+ ar: { translation: ar },
+};
+
+const i18n = i18next.createInstance();
+
+// Configure i18next instance
+i18n
+ .use(initReactI18next) // Ensure initReactI18next is used
+ .init({
+ compatibilityJSON: "v3",
+ lng: "en", // Default language
+ fallbackLng: "en",
+ resources: languageResources,
+ });
+
+// Fetch stored language and set i18next instance accordingly
+const getStoredLanguage = async () => {
+ const lng = await AsyncStorage.getItem("enatega-language");
+ i18n.changeLanguage(lng || "en"); // Change language
+};
+
+// Execute language initialization based on platform
+if (Platform.OS === "android" || Platform.OS === "ios") {
+ getStoredLanguage();
+}
+
+export default i18n;
diff --git a/RiderApp/languages/en.js b/RiderApp/languages/en.js
index 816cf22..0d0dc97 100644
--- a/RiderApp/languages/en.js
+++ b/RiderApp/languages/en.js
@@ -1,154 +1,154 @@
export const en = {
- title0: 'Selected Language',
- subtitle0: 'English',
+ title0: "Selected Language",
+ subtitle0: "English",
description0:
- 'Select any language of your choice to change the content of the app to your required language.',
- title1: 'Tasty',
- subtitle1: 'BreakFast',
+ "Select any language of your choice to change the content of the app to your required language.",
+ title1: "Tasty",
+ subtitle1: "BreakFast",
description1:
- 'Breakfast is everything. The beginning, the first thing. It is the mouthful that is the commitment to a new day, a continuing life.',
- title2: 'Refreshing',
- subtitle2: 'Drinks',
+ "Breakfast is everything. The beginning, the first thing. It is the mouthful that is the commitment to a new day, a continuing life.",
+ title2: "Refreshing",
+ subtitle2: "Drinks",
description2:
- 'True silence is the rest of the mind, and is to the spirit what sleep is to the body, nourishment and refreshment.',
- title3: 'Delicous',
- subtitle3: 'Icecream',
+ "True silence is the rest of the mind, and is to the spirit what sleep is to the body, nourishment and refreshment.",
+ title3: "Delicous",
+ subtitle3: "Icecream",
description3:
- 'Age does not diminish the extreme disappointment of having a scoop of ice cream fall from the cone',
- getStarted: 'Get Started!',
- welcome: 'Welcome',
- loginBtn: 'Login',
- registerBtn: 'Register',
- name: 'Name',
- phone: 'Phone',
- email: 'Email',
- emailphone: 'Email or Phone',
- username: 'Username',
- password: 'Password',
- deliveryAddress: 'Delivery Address',
- registerText: 'Or Register With',
- forgotPassword: 'Forgot Password?',
- loginText: 'Or Login With',
+ "Age does not diminish the extreme disappointment of having a scoop of ice cream fall from the cone",
+ getStarted: "Get Started!",
+ welcome: "Welcome",
+ loginBtn: "Login",
+ registerBtn: "Register",
+ name: "Name",
+ phone: "Phone",
+ email: "Email",
+ emailphone: "Email or Phone",
+ username: "Username",
+ password: "Password",
+ deliveryAddress: "Delivery Address",
+ registerText: "Or Register With",
+ forgotPassword: "Forgot Password?",
+ loginText: "Or Login With",
deliveryLocation:
- 'Turn on location so we could send you endless taste of delicious food.',
- locationBtn: 'Turn on Location',
- locationPermissionDenied: 'Permission to access location was denied',
- cameraRollPermissionDenied: 'Permission to access Camera Roll was denied',
- locationOff: 'Turn on location and try again',
- titleLanguage: 'Change Language',
- titleMenu: 'Menu',
- titleOrders: 'My Orders',
- NewOrders: 'New Orders',
- titleNotifications: 'Notifications',
- titleReviews: 'Reviews',
- titleSettings: 'Settings',
- titleHelp: 'Help',
- titleLogout: 'Logout',
- titleCart: 'My Cart',
- titlePayment: 'Payment',
- orderId: 'Order ID',
- totalOrderAmount: 'Total Order Amount',
- reOrder: 'Reorder',
- unReadNotifications: 'No unread notifications',
- upload: 'Upload',
- saveBtn: 'Save',
- emailUs: 'Email us at',
- question1: 'Where do we find the food?',
- question2: 'How do we contact?',
- question3: 'How can I pay the delivery person?',
- question4: 'Is the service available in my city?',
+ "Turn on location so we could send you endless taste of delicious food.",
+ locationBtn: "Turn on Location",
+ locationPermissionDenied: "Permission to access location was denied",
+ cameraRollPermissionDenied: "Permission to access Camera Roll was denied",
+ locationOff: "Turn on location and try again",
+ titleLanguage: "Change Language",
+ titleMenu: "Menu",
+ titleOrders: "My Orders",
+ NewOrders: "New Orders",
+ titleNotifications: "Notifications",
+ titleReviews: "Reviews",
+ titleSettings: "Settings",
+ titleHelp: "Help",
+ titleLogout: "Logout",
+ titleCart: "My Cart",
+ titlePayment: "Payment",
+ orderId: "Order ID",
+ totalOrderAmount: "Total Order Amount",
+ reOrder: "Reorder",
+ unReadNotifications: "No unread notifications",
+ upload: "Upload",
+ saveBtn: "Save",
+ emailUs: "Email us at",
+ question1: "Where do we find the food?",
+ question2: "How do we contact?",
+ question3: "How can I pay the delivery person?",
+ question4: "Is the service available in my city?",
answer1:
- 'You can find the food at your nearest store without paying anything to customer service.Our charges are extremely low as compared to others.',
- answer2: 'You can contact us through our email, phone number or our website.',
+ "You can find the food at your nearest store without paying anything to customer service.Our charges are extremely low as compared to others.",
+ answer2: "You can contact us through our email, phone number or our website.",
answer3:
- 'You can pay the delivery person in person or pay online as well through credit or debit card.',
+ "You can pay the delivery person in person or pay online as well through credit or debit card.",
answer4:
- 'Currently this service is available in cities Islamabad and Karachi you can contact us to avail this service in your city.',
- add: 'ADD',
- quantity: 'Quantity',
- size: 'Size',
- addToCart: 'Add to Cart',
- orderNow: 'Order Now',
- addToCartMessage: 'Added to cart',
- emptyCart: 'No items in cart',
- itemTotal: 'Item Total',
- delvieryCharges: 'Delivery Charges',
- total: 'Total',
- contactInfo: 'Contact Info',
- deliveryAddressmessage: 'Set delivery address',
- proceedCheckout: 'Proceed to Checkout',
- paymentText: 'How do you wish to pay?',
- checkout: 'Checkout',
- header_title1: 'Credit Card/Debit Card',
- header_subscript1: 'Pay with Credit or Debit Card',
- header_title2: 'PayPal',
- header_subscript2: 'Pay online with PayPal',
- header_title3: 'Cash on delivery',
- header_subscript3: 'Pay when you recieve the item',
- thankYou: 'Thank You!',
- orderConfirmed: 'Your Order is confirmed',
- orderAmount: 'Your Order Amount',
- orderDetail: 'Order Detail',
- paymentMethod: 'Payment Method',
- trackOrder: 'Track Order',
- backToMenu: 'Back To Menu',
- foodItem: 'Food item',
- deliveredTo: 'Delivered to',
- writeAReview: 'Write a Review',
- orderReceived: 'Order Received',
- cancelled: 'Cancelled',
- foodPreparing: 'Food is being prepared',
- Delivered: 'Delivered',
- rateAndReview: 'Rate and Review',
- reviewPlaceholder: 'More detailed reviews get more visibility...',
- submit: 'Submit',
- noWorriesText: 'No worries, let us help you out!',
- yourEmail: 'Your Email',
- send: 'Send',
- apply: 'Apply',
- checkEmail: 'Check your email for reset password link',
- languageText: 'Please select your required language',
- countryCodePickerTranslation: 'eng',
- countryCodeSelect: 'Select Country Code',
- paymentNotSupported: 'This payment method does not support this Currency',
- Orders: 'Orders',
- deliveryTime: 'Delivery Time',
- myOrders: 'My Orders',
- newOrders: 'New Orders',
- titleChat: 'Chat',
- NoNewOrder: 'No New Order',
- Somethingisworng: 'Something is worng',
- PENDING: 'PENDING',
- ACCEPTED: 'ACCEPTED',
- PICKED: 'PICKED',
- DELIVERED: 'DELIVERED',
- COMPLETED: 'COMPLETED',
- YourOrderID: 'Your Order ID',
- ProductPage: 'Product Page',
- Docs: 'Docs',
- Blog: 'Blog',
- AboutUs: 'About Us',
- Done: 'Done',
- Cancel: 'Cancel',
- Usernameisrequired: 'Username is required',
- Passwordisrequired: 'Password is required',
- Loggedin: 'Logged in',
- EnteryourEmailandPassword: 'Enter your Email and Password',
- EmailorPhone: 'Email or Phone',
- Password: 'Password',
- NoOrdersAssignedyet: 'No Orders Assigned yet',
- Loadingorders: 'Loading orders',
- Orderassginedtootherrider: 'Order assgined to other rider',
- CustomerDetails: 'Customer Details',
- Contact: 'Contact',
- DelvieryLocation: 'Delviery Location',
- OrderDetails: 'Order Details',
- Subtotal: 'Subtotal',
- Assigntome: 'Assign to me',
- 'About Us': 'About Us',
- 'Product Page': 'Product Page',
- Order: 'Order',
- OrderMarkedAs: 'Order marked as',
- titleLogin: 'Login',
- Picked: 'Picked'
-}
+ "Currently this service is available in cities Islamabad and Karachi you can contact us to avail this service in your city.",
+ add: "ADD",
+ quantity: "Quantity",
+ size: "Size",
+ addToCart: "Add to Cart",
+ orderNow: "Order Now",
+ addToCartMessage: "Added to cart",
+ emptyCart: "No items in cart",
+ itemTotal: "Item Total",
+ delvieryCharges: "Delivery Charges",
+ total: "Total",
+ contactInfo: "Contact Info",
+ deliveryAddressmessage: "Set delivery address",
+ proceedCheckout: "Proceed to Checkout",
+ paymentText: "How do you wish to pay?",
+ checkout: "Checkout",
+ header_title1: "Credit Card/Debit Card",
+ header_subscript1: "Pay with Credit or Debit Card",
+ header_title2: "PayPal",
+ header_subscript2: "Pay online with PayPal",
+ header_title3: "Cash on delivery",
+ header_subscript3: "Pay when you recieve the item",
+ thankYou: "Thank You!",
+ orderConfirmed: "Your Order is confirmed",
+ orderAmount: "Your Order Amount",
+ orderDetail: "Order Detail",
+ paymentMethod: "Payment Method",
+ trackOrder: "Track Order",
+ backToMenu: "Back To Menu",
+ foodItem: "Food item",
+ deliveredTo: "Delivered to",
+ writeAReview: "Write a Review",
+ orderReceived: "Order Received",
+ cancelled: "Cancelled",
+ foodPreparing: "Food is being prepared",
+ Delivered: "Delivered",
+ rateAndReview: "Rate and Review",
+ reviewPlaceholder: "More detailed reviews get more visibility...",
+ submit: "Submit",
+ noWorriesText: "No worries, let us help you out!",
+ yourEmail: "Your Email",
+ send: "Send",
+ apply: "Apply",
+ checkEmail: "Check your email for reset password link",
+ languageText: "Please select your required language",
+ countryCodePickerTranslation: "eng",
+ countryCodeSelect: "Select Country Code",
+ paymentNotSupported: "This payment method does not support this Currency",
+ Orders: "Orders",
+ deliveryTime: "Delivery Time",
+ myOrders: "My Orders",
+ newOrders: "New Orders",
+ titleChat: "Chat",
+ NoNewOrder: "No New Order",
+ Somethingisworng: "Something is worng",
+ PENDING: "PENDING",
+ ACCEPTED: "ACCEPTED",
+ PICKED: "PICKED",
+ DELIVERED: "DELIVERED",
+ COMPLETED: "COMPLETED",
+ YourOrderID: "Your Order ID",
+ ProductPage: "Product Page",
+ Docs: "Docs",
+ Blog: "Blog",
+ AboutUs: "About Us",
+ Done: "Done",
+ Cancel: "Cancel",
+ Usernameisrequired: "Username is required",
+ Passwordisrequired: "Password is required",
+ Loggedin: "Logged in",
+ EnteryourEmailandPassword: "Enter your Email and Password",
+ EmailorPhone: "Email or Phone",
+ Password: "Password",
+ NoOrdersAssignedyet: "No Orders Assigned yet",
+ Loadingorders: "Loading orders",
+ Orderassginedtootherrider: "Order assgined to other rider",
+ CustomerDetails: "Customer Details",
+ Contact: "Contact",
+ DelvieryLocation: "Delivery Location",
+ OrderDetails: "Order Details",
+ Subtotal: "Subtotal",
+ Assigntome: "Assign to me",
+ "About Us": "About Us",
+ "Product Page": "Product Page",
+ Order: "Order",
+ OrderMarkedAs: "Order marked as",
+ titleLogin: "Login",
+ Picked: "Picked",
+};
diff --git a/RiderApp/package-lock.json b/RiderApp/package-lock.json
index e0a2d2b..42578de 100644
--- a/RiderApp/package-lock.json
+++ b/RiderApp/package-lock.json
@@ -11,7 +11,7 @@
"dependencies": {
"@apollo/react-hooks": "^3.1.3",
"@expo/vector-icons": "^13.0.0",
- "@react-native-async-storage/async-storage": "~1.17.3",
+ "@react-native-async-storage/async-storage": "^1.17.12",
"@react-native-community/masked-view": "0.1.10",
"@react-navigation/bottom-tabs": "^5.11.11",
"@react-navigation/drawer": "^5.12.5",
@@ -31,6 +31,7 @@
"expo-font": "~11.0.1",
"expo-localization": "~14.0.0",
"expo-location": "~15.0.1",
+ "expo-modules-autolinking": "^1.5.1",
"expo-navigation-bar": "~2.0.1",
"expo-notifications": "~0.17.0",
"expo-splash-screen": "~0.17.5",
@@ -40,10 +41,12 @@
"graphql": "^14.3.1",
"graphql-tag": "^2.10.1",
"i18n-js": "^3.3.0",
+ "i18next": "^23.8.2",
"patch-package": "^6.5.1",
"react": "18.1.0",
"react-apollo": "^2.5.8",
- "react-native": "0.70.5",
+ "react-i18next": "^14.0.5",
+ "react-native": "0.70.8",
"react-native-animatable": "^1.3.2",
"react-native-flash-message": "^0.1.13",
"react-native-gesture-handler": "~2.8.0",
@@ -1832,16 +1835,21 @@
"integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA=="
},
"node_modules/@babel/runtime": {
- "version": "7.21.0",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz",
- "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==",
+ "version": "7.23.9",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.9.tgz",
+ "integrity": "sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==",
"dependencies": {
- "regenerator-runtime": "^0.13.11"
+ "regenerator-runtime": "^0.14.0"
},
"engines": {
"node": ">=6.9.0"
}
},
+ "node_modules/@babel/runtime/node_modules/regenerator-runtime": {
+ "version": "0.14.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
+ "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
+ },
"node_modules/@babel/template": {
"version": "7.20.7",
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz",
@@ -2602,6 +2610,87 @@
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
"integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg=="
},
+ "node_modules/@expo/fingerprint": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/@expo/fingerprint/-/fingerprint-0.6.0.tgz",
+ "integrity": "sha512-KfpoVRTMwMNJ/Cf5o+Ou8M/Y0EGSTqK+rbi70M2Y0K2qgWNfMJ1gm6sYO9uc8lcTr7YSYM1Rme3dk7QXhpScNA==",
+ "dependencies": {
+ "@expo/spawn-async": "^1.5.0",
+ "chalk": "^4.1.2",
+ "debug": "^4.3.4",
+ "find-up": "^5.0.0",
+ "minimatch": "^3.0.4",
+ "p-limit": "^3.1.0",
+ "resolve-from": "^5.0.0"
+ },
+ "bin": {
+ "fingerprint": "bin/cli.js"
+ }
+ },
+ "node_modules/@expo/fingerprint/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/@expo/fingerprint/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/@expo/fingerprint/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/@expo/fingerprint/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ },
+ "node_modules/@expo/fingerprint/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@expo/fingerprint/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/@expo/image-utils": {
"version": "0.3.22",
"resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.3.22.tgz",
@@ -2785,9 +2874,9 @@
}
},
"node_modules/@expo/json-file": {
- "version": "8.2.37",
- "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.37.tgz",
- "integrity": "sha512-YaH6rVg11JoTS2P6LsW7ybS2CULjf40AbnAHw2F1eDPuheprNjARZMnyHFPkKv7GuxCy+B9GPcbOKgc4cgA80Q==",
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.3.0.tgz",
+ "integrity": "sha512-yROUeXJXR5goagB8c3muFLCzLmdGOvoPpR5yDNaXrnTp4euNykr9yW0wWhJx4YVRTNOPtGBnEbbJBW+a9q+S6g==",
"dependencies": {
"@babel/code-frame": "~7.10.4",
"json5": "^2.2.2",
@@ -3398,36 +3487,35 @@
"integrity": "sha512-F0YfUDjvT+Mtt/R4xdl2X0EYCHMMiJqNLdxHD++jDT5ydEFIyqbCHh51Qx2E211dgZprPKhV7sHmnXKpLuvc5g=="
},
"node_modules/@jest/create-cache-key-function": {
- "version": "29.5.0",
- "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-29.5.0.tgz",
- "integrity": "sha512-LIDZyZgnZss7uikvBKBB/USWwG+GO8+GnwRWT+YkCGDGsqLQlhm9BC3z6+7+eMs1kUlvXQIWEzBR8Q2Pnvx6lg==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-27.5.1.tgz",
+ "integrity": "sha512-dmH1yW+makpTSURTy8VzdUwFnfQh1G8R+DxO2Ho2FFmBbKFEVm+3jWdvFhE2VqB/LATCTokkP0dotjyQyw5/AQ==",
"dependencies": {
- "@jest/types": "^29.5.0"
+ "@jest/types": "^27.5.1"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
"node_modules/@jest/create-cache-key-function/node_modules/@jest/types": {
- "version": "29.5.0",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz",
- "integrity": "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
"dependencies": {
- "@jest/schemas": "^29.4.3",
"@types/istanbul-lib-coverage": "^2.0.0",
"@types/istanbul-reports": "^3.0.0",
"@types/node": "*",
- "@types/yargs": "^17.0.8",
+ "@types/yargs": "^16.0.0",
"chalk": "^4.0.0"
},
"engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
"node_modules/@jest/create-cache-key-function/node_modules/@types/yargs": {
- "version": "17.0.23",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.23.tgz",
- "integrity": "sha512-yuogunc04OnzGQCrfHx+Kk883Q4X0aSwmYZhKjI21m+SVYzjIbrWl8dOOwSv5hf2Um2pdCOXWo9isteZTNXUZQ==",
+ "version": "16.0.9",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz",
+ "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==",
"dependencies": {
"@types/yargs-parser": "*"
}
@@ -3496,17 +3584,6 @@
"node": ">=8"
}
},
- "node_modules/@jest/schemas": {
- "version": "29.4.3",
- "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz",
- "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==",
- "dependencies": {
- "@sinclair/typebox": "^0.25.16"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
"node_modules/@jest/types": {
"version": "26.6.2",
"resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz",
@@ -3750,15 +3827,15 @@
}
},
"node_modules/@react-native-community/cli": {
- "version": "9.2.1",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-9.2.1.tgz",
- "integrity": "sha512-feMYS5WXXKF4TSWnCXozHxtWq36smyhGaENXlkiRESfYZ1mnCUlPfOanNCAvNvBqdyh9d4o0HxhYKX1g9l6DCQ==",
+ "version": "9.3.2",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-9.3.2.tgz",
+ "integrity": "sha512-IAW4X0vmX/xozNpp/JVZaX7MrC85KV0OP2DF4o7lNGOfpUhzJAEWqTfkxFYS+VsRjZHDve4wSTiGIuXwE7FG1w==",
"dependencies": {
"@react-native-community/cli-clean": "^9.2.1",
"@react-native-community/cli-config": "^9.2.1",
"@react-native-community/cli-debugger-ui": "^9.0.0",
- "@react-native-community/cli-doctor": "^9.2.1",
- "@react-native-community/cli-hermes": "^9.2.1",
+ "@react-native-community/cli-doctor": "^9.3.0",
+ "@react-native-community/cli-hermes": "^9.3.1",
"@react-native-community/cli-plugin-metro": "^9.2.1",
"@react-native-community/cli-server-api": "^9.2.1",
"@react-native-community/cli-tools": "^9.2.1",
@@ -3943,18 +4020,6 @@
"wcwidth": "^1.0.1"
}
},
- "node_modules/@react-native-community/cli-doctor/node_modules/@react-native-community/cli-platform-ios": {
- "version": "9.3.0",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-9.3.0.tgz",
- "integrity": "sha512-nihTX53BhF2Q8p4B67oG3RGe1XwggoGBrMb6vXdcu2aN0WeXJOXdBLgR900DAA1O8g7oy1Sudu6we+JsVTKnjw==",
- "dependencies": {
- "@react-native-community/cli-tools": "^9.2.1",
- "chalk": "^4.1.2",
- "execa": "^1.0.0",
- "glob": "^7.1.3",
- "ora": "^5.4.1"
- }
- },
"node_modules/@react-native-community/cli-doctor/node_modules/ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@@ -4077,11 +4142,11 @@
}
},
"node_modules/@react-native-community/cli-hermes": {
- "version": "9.3.1",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-9.3.1.tgz",
- "integrity": "sha512-Mq4PK8m5YqIdaVq5IdRfp4qK09aVO+aiCtd6vjzjNUgk1+1X5cgUqV6L65h4N+TFJYJHcp2AnB+ik1FAYXvYPQ==",
+ "version": "9.3.4",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-9.3.4.tgz",
+ "integrity": "sha512-VqTPA7kknCXgtYlRf+sDWW4yxZ6Gtg1Ga+Rdrn1qSKuo09iJ8YKPoQYOu5nqbIYJQAEhorWQyo1VvNgd0wd49w==",
"dependencies": {
- "@react-native-community/cli-platform-android": "^9.3.1",
+ "@react-native-community/cli-platform-android": "^9.3.4",
"@react-native-community/cli-tools": "^9.2.1",
"chalk": "^4.1.2",
"hermes-profile-transformer": "^0.0.6",
@@ -4089,9 +4154,9 @@
}
},
"node_modules/@react-native-community/cli-hermes/node_modules/@react-native-community/cli-platform-android": {
- "version": "9.3.1",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-9.3.1.tgz",
- "integrity": "sha512-m0bQ6Twewl7OEZoVf79I2GZmsDqh+Gh0bxfxWgwxobsKDxLx8/RNItAo1lVtTCgzuCR75cX4EEO8idIF9jYhew==",
+ "version": "9.3.4",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-9.3.4.tgz",
+ "integrity": "sha512-BTKmTMYFuWtMqimFQJfhRyhIWw1m+5N5svR1S5+DqPcyFuSXrpNYDWNSFR8E105xUbFANmsCZZQh6n1WlwMpOA==",
"dependencies": {
"@react-native-community/cli-tools": "^9.2.1",
"chalk": "^4.1.2",
@@ -4167,9 +4232,9 @@
}
},
"node_modules/@react-native-community/cli-platform-android": {
- "version": "9.2.1",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-9.2.1.tgz",
- "integrity": "sha512-VamCZ8nido3Q3Orhj6pBIx48itORNPLJ7iTfy3nucD1qISEDih3DOzCaQCtmqdEBgUkNkNl0O+cKgq5A3th3Zg==",
+ "version": "9.3.1",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-9.3.1.tgz",
+ "integrity": "sha512-m0bQ6Twewl7OEZoVf79I2GZmsDqh+Gh0bxfxWgwxobsKDxLx8/RNItAo1lVtTCgzuCR75cX4EEO8idIF9jYhew==",
"dependencies": {
"@react-native-community/cli-tools": "^9.2.1",
"chalk": "^4.1.2",
@@ -4245,9 +4310,9 @@
}
},
"node_modules/@react-native-community/cli-platform-ios": {
- "version": "9.2.1",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-9.2.1.tgz",
- "integrity": "sha512-dEgvkI6CFgPk3vs8IOR0toKVUjIFwe4AsXFvWWJL5qhrIzW9E5Owi0zPkSvzXsMlfYMbVX0COfVIK539ZxguSg==",
+ "version": "9.3.0",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-9.3.0.tgz",
+ "integrity": "sha512-nihTX53BhF2Q8p4B67oG3RGe1XwggoGBrMb6vXdcu2aN0WeXJOXdBLgR900DAA1O8g7oy1Sudu6we+JsVTKnjw==",
"dependencies": {
"@react-native-community/cli-tools": "^9.2.1",
"chalk": "^4.1.2",
@@ -4343,19 +4408,19 @@
}
},
"node_modules/@react-native-community/cli-plugin-metro": {
- "version": "9.2.1",
- "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-9.2.1.tgz",
- "integrity": "sha512-byBGBH6jDfUvcHGFA45W/sDwMlliv7flJ8Ns9foCh3VsIeYYPoDjjK7SawE9cPqRdMAD4SY7EVwqJnOtRbwLiQ==",
+ "version": "9.3.3",
+ "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-9.3.3.tgz",
+ "integrity": "sha512-lPBw6XieNdj2AbWDN0Rc+jNOx8hBgSQyv0gUAm01qtJe4I9FjSMU6nOGTxMpWpICo6TYl/cmPGXOzbfpwxwtkQ==",
"dependencies": {
"@react-native-community/cli-server-api": "^9.2.1",
"@react-native-community/cli-tools": "^9.2.1",
"chalk": "^4.1.2",
- "metro": "0.72.3",
- "metro-config": "0.72.3",
- "metro-core": "0.72.3",
- "metro-react-native-babel-transformer": "0.72.3",
- "metro-resolver": "0.72.3",
- "metro-runtime": "0.72.3",
+ "metro": "0.72.4",
+ "metro-config": "0.72.4",
+ "metro-core": "0.72.4",
+ "metro-react-native-babel-transformer": "0.72.4",
+ "metro-resolver": "0.72.4",
+ "metro-runtime": "0.72.4",
"readline": "^1.3.0"
}
},
@@ -4412,6 +4477,109 @@
"node": ">=8"
}
},
+ "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-react-native-babel-preset": {
+ "version": "0.72.4",
+ "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.72.4.tgz",
+ "integrity": "sha512-YGCVaYe1H5fOFktdDdL9IwAyiXjPh1t2eZZFp3KFJak6fxKpN+q5PPhe1kzMa77dbCAqgImv43zkfGa6i27eyA==",
+ "dependencies": {
+ "@babel/core": "^7.14.0",
+ "@babel/plugin-proposal-async-generator-functions": "^7.0.0",
+ "@babel/plugin-proposal-class-properties": "^7.0.0",
+ "@babel/plugin-proposal-export-default-from": "^7.0.0",
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0",
+ "@babel/plugin-proposal-object-rest-spread": "^7.0.0",
+ "@babel/plugin-proposal-optional-catch-binding": "^7.0.0",
+ "@babel/plugin-proposal-optional-chaining": "^7.0.0",
+ "@babel/plugin-syntax-dynamic-import": "^7.0.0",
+ "@babel/plugin-syntax-export-default-from": "^7.0.0",
+ "@babel/plugin-syntax-flow": "^7.2.0",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0",
+ "@babel/plugin-syntax-optional-chaining": "^7.0.0",
+ "@babel/plugin-transform-arrow-functions": "^7.0.0",
+ "@babel/plugin-transform-async-to-generator": "^7.0.0",
+ "@babel/plugin-transform-block-scoping": "^7.0.0",
+ "@babel/plugin-transform-classes": "^7.0.0",
+ "@babel/plugin-transform-computed-properties": "^7.0.0",
+ "@babel/plugin-transform-destructuring": "^7.0.0",
+ "@babel/plugin-transform-exponentiation-operator": "^7.0.0",
+ "@babel/plugin-transform-flow-strip-types": "^7.0.0",
+ "@babel/plugin-transform-function-name": "^7.0.0",
+ "@babel/plugin-transform-literals": "^7.0.0",
+ "@babel/plugin-transform-modules-commonjs": "^7.0.0",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.0.0",
+ "@babel/plugin-transform-parameters": "^7.0.0",
+ "@babel/plugin-transform-react-display-name": "^7.0.0",
+ "@babel/plugin-transform-react-jsx": "^7.0.0",
+ "@babel/plugin-transform-react-jsx-self": "^7.0.0",
+ "@babel/plugin-transform-react-jsx-source": "^7.0.0",
+ "@babel/plugin-transform-runtime": "^7.0.0",
+ "@babel/plugin-transform-shorthand-properties": "^7.0.0",
+ "@babel/plugin-transform-spread": "^7.0.0",
+ "@babel/plugin-transform-sticky-regex": "^7.0.0",
+ "@babel/plugin-transform-template-literals": "^7.0.0",
+ "@babel/plugin-transform-typescript": "^7.5.0",
+ "@babel/plugin-transform-unicode-regex": "^7.0.0",
+ "@babel/template": "^7.0.0",
+ "react-refresh": "^0.4.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "*"
+ }
+ },
+ "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-react-native-babel-transformer": {
+ "version": "0.72.4",
+ "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.72.4.tgz",
+ "integrity": "sha512-VxM8Cki+/tPAyQRPHEy1bsxAihpxz8cGLdteFo9t0eAJI7/vEegqICxQm4A+RiGQc4f8t2jiwI6YpnDWomI5Gw==",
+ "dependencies": {
+ "@babel/core": "^7.14.0",
+ "babel-preset-fbjs": "^3.4.0",
+ "hermes-parser": "0.8.0",
+ "metro-babel-transformer": "0.72.4",
+ "metro-react-native-babel-preset": "0.72.4",
+ "metro-source-map": "0.72.4",
+ "nullthrows": "^1.1.1"
+ },
+ "peerDependencies": {
+ "@babel/core": "*"
+ }
+ },
+ "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-runtime": {
+ "version": "0.72.4",
+ "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.72.4.tgz",
+ "integrity": "sha512-EA0ltqyYFpjOdpoRqE2U9FJleqTOIK+ZLRlLaDrx4yz3zTqUZ16W6w71dq+qrwD8BPg7bPKQu7RluU3K6tI79A==",
+ "dependencies": {
+ "@babel/runtime": "^7.0.0",
+ "react-refresh": "^0.4.0"
+ }
+ },
+ "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-source-map": {
+ "version": "0.72.4",
+ "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.72.4.tgz",
+ "integrity": "sha512-P09aMDEPkLo6BM8VYYoTsH/2B1w6t+mrCwNcNJV1zE+57FPiU4fSBlSeM8G9YeYaezDTHimS2JlMozP+2r+trA==",
+ "dependencies": {
+ "@babel/traverse": "^7.14.0",
+ "@babel/types": "^7.0.0",
+ "invariant": "^2.2.4",
+ "metro-symbolicate": "0.72.4",
+ "nullthrows": "^1.1.1",
+ "ob1": "0.72.4",
+ "source-map": "^0.5.6",
+ "vlq": "^1.0.0"
+ }
+ },
+ "node_modules/@react-native-community/cli-plugin-metro/node_modules/ob1": {
+ "version": "0.72.4",
+ "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.72.4.tgz",
+ "integrity": "sha512-/iPJKpXpVEZS0subUvjew4ept5LTBxj1hD20A4mAj9CJkGGPgvbBlfYtFEBubBkk4dv4Ef5lajsnRBYPxF74cQ=="
+ },
+ "node_modules/@react-native-community/cli-plugin-metro/node_modules/source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/@react-native-community/cli-plugin-metro/node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -4845,9 +5013,9 @@
}
},
"node_modules/@sideway/address": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz",
- "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==",
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz",
+ "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==",
"dependencies": {
"@hapi/hoek": "^9.0.0"
}
@@ -4862,11 +5030,6 @@
"resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz",
"integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ=="
},
- "node_modules/@sinclair/typebox": {
- "version": "0.25.24",
- "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz",
- "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ=="
- },
"node_modules/@types/geojson": {
"version": "7946.0.10",
"resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.10.tgz",
@@ -5604,9 +5767,9 @@
}
},
"node_modules/async": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
- "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ=="
+ "version": "3.2.5",
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz",
+ "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg=="
},
"node_modules/async-limiter": {
"version": "1.0.1",
@@ -7162,9 +7325,9 @@
}
},
"node_modules/envinfo": {
- "version": "7.8.1",
- "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz",
- "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==",
+ "version": "7.11.1",
+ "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.1.tgz",
+ "integrity": "sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==",
"bin": {
"envinfo": "dist/cli.js"
},
@@ -8271,10 +8434,11 @@
}
},
"node_modules/expo-modules-autolinking": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-1.0.2.tgz",
- "integrity": "sha512-skAUXERKw1gtSw8xsvft9DE0KVhBvw4dujAtgCZoG2l513fN7ds+B5+30ZVgZATMC+EjtlmjKXzhp5QS44DCFA==",
+ "version": "1.10.3",
+ "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-1.10.3.tgz",
+ "integrity": "sha512-pn4n2Dl4iRh/zUeiChjRIe1C7EqOw1qhccr85viQV7W6l5vgRpY0osE51ij5LKg/kJmGRcJfs12+PwbdTplbKw==",
"dependencies": {
+ "@expo/config": "~8.5.0",
"chalk": "^4.1.0",
"commander": "^7.2.0",
"fast-glob": "^3.2.5",
@@ -8285,6 +8449,71 @@
"expo-modules-autolinking": "bin/expo-modules-autolinking.js"
}
},
+ "node_modules/expo-modules-autolinking/node_modules/@babel/code-frame": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+ "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
+ "dependencies": {
+ "@babel/highlight": "^7.10.4"
+ }
+ },
+ "node_modules/expo-modules-autolinking/node_modules/@expo/config": {
+ "version": "8.5.4",
+ "resolved": "https://registry.npmjs.org/@expo/config/-/config-8.5.4.tgz",
+ "integrity": "sha512-ggOLJPHGzJSJHVBC1LzwXwR6qUn8Mw7hkc5zEKRIdhFRuIQ6s2FE4eOvP87LrNfDF7eZGa6tJQYsiHSmZKG+8Q==",
+ "dependencies": {
+ "@babel/code-frame": "~7.10.4",
+ "@expo/config-plugins": "~7.8.2",
+ "@expo/config-types": "^50.0.0",
+ "@expo/json-file": "^8.2.37",
+ "getenv": "^1.0.0",
+ "glob": "7.1.6",
+ "require-from-string": "^2.0.2",
+ "resolve-from": "^5.0.0",
+ "semver": "7.5.3",
+ "slugify": "^1.3.4",
+ "sucrase": "3.34.0"
+ }
+ },
+ "node_modules/expo-modules-autolinking/node_modules/@expo/config-plugins": {
+ "version": "7.8.4",
+ "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-7.8.4.tgz",
+ "integrity": "sha512-hv03HYxb/5kX8Gxv/BTI8TLc9L06WzqAfHRRXdbar4zkLcP2oTzvsLEF4/L/TIpD3rsnYa0KU42d0gWRxzPCJg==",
+ "dependencies": {
+ "@expo/config-types": "^50.0.0-alpha.1",
+ "@expo/fingerprint": "^0.6.0",
+ "@expo/json-file": "~8.3.0",
+ "@expo/plist": "^0.1.0",
+ "@expo/sdk-runtime-versions": "^1.0.0",
+ "@react-native/normalize-color": "^2.0.0",
+ "chalk": "^4.1.2",
+ "debug": "^4.3.1",
+ "find-up": "~5.0.0",
+ "getenv": "^1.0.0",
+ "glob": "7.1.6",
+ "resolve-from": "^5.0.0",
+ "semver": "^7.5.3",
+ "slash": "^3.0.0",
+ "slugify": "^1.6.6",
+ "xcode": "^3.0.1",
+ "xml2js": "0.6.0"
+ }
+ },
+ "node_modules/expo-modules-autolinking/node_modules/@expo/config-types": {
+ "version": "50.0.0",
+ "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-50.0.0.tgz",
+ "integrity": "sha512-0kkhIwXRT6EdFDwn+zTg9R2MZIAEYGn1MVkyRohAd+C9cXOb5RA8WLQi7vuxKF9m1SMtNAUrf0pO+ENK0+/KSw=="
+ },
+ "node_modules/expo-modules-autolinking/node_modules/@expo/plist": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.1.0.tgz",
+ "integrity": "sha512-xWD+8vIFif0wKyuqe3fmnmnSouXYucciZXFzS0ZD5OV9eSAS1RGQI5FaGGJ6zxJ4mpdy/4QzbLdBjnYE5vxA0g==",
+ "dependencies": {
+ "@xmldom/xmldom": "~0.7.7",
+ "base64-js": "^1.2.3",
+ "xmlbuilder": "^14.0.0"
+ }
+ },
"node_modules/expo-modules-autolinking/node_modules/ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@@ -8344,6 +8573,25 @@
"node": ">=10"
}
},
+ "node_modules/expo-modules-autolinking/node_modules/glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
"node_modules/expo-modules-autolinking/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
@@ -8363,6 +8611,31 @@
"graceful-fs": "^4.1.6"
}
},
+ "node_modules/expo-modules-autolinking/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/expo-modules-autolinking/node_modules/semver": {
+ "version": "7.5.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz",
+ "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/expo-modules-autolinking/node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -8382,6 +8655,31 @@
"node": ">= 10.0.0"
}
},
+ "node_modules/expo-modules-autolinking/node_modules/xml2js": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.0.tgz",
+ "integrity": "sha512-eLTh0kA8uHceqesPqSE+VvO1CDDJWMwlQfB6LuN6T8w6MaDJ8Txm8P7s5cHD0miF0V+GGTZrDQfxPZQVsur33w==",
+ "dependencies": {
+ "sax": ">=0.6.0",
+ "xmlbuilder": "~11.0.0"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/expo-modules-autolinking/node_modules/xml2js/node_modules/xmlbuilder": {
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
+ "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/expo-modules-autolinking/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ },
"node_modules/expo-modules-core": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-1.1.1.tgz",
@@ -8528,6 +8826,51 @@
"expo": "*"
}
},
+ "node_modules/expo/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/expo/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/expo/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/expo/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ },
"node_modules/expo/node_modules/cross-spawn": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
@@ -8543,6 +8886,54 @@
"node": ">=4.8"
}
},
+ "node_modules/expo/node_modules/expo-modules-autolinking": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-1.0.2.tgz",
+ "integrity": "sha512-skAUXERKw1gtSw8xsvft9DE0KVhBvw4dujAtgCZoG2l513fN7ds+B5+30ZVgZATMC+EjtlmjKXzhp5QS44DCFA==",
+ "dependencies": {
+ "chalk": "^4.1.0",
+ "commander": "^7.2.0",
+ "fast-glob": "^3.2.5",
+ "find-up": "^5.0.0",
+ "fs-extra": "^9.1.0"
+ },
+ "bin": {
+ "expo-modules-autolinking": "bin/expo-modules-autolinking.js"
+ }
+ },
+ "node_modules/expo/node_modules/fs-extra": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
+ "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
+ "dependencies": {
+ "at-least-node": "^1.0.0",
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/expo/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/expo/node_modules/jsonfile": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+ "dependencies": {
+ "universalify": "^2.0.0"
+ },
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
"node_modules/expo/node_modules/path-key": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
@@ -8578,6 +8969,25 @@
"node": ">=0.10.0"
}
},
+ "node_modules/expo/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/expo/node_modules/universalify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
+ "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
+ "engines": {
+ "node": ">= 10.0.0"
+ }
+ },
"node_modules/expo/node_modules/which": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
@@ -9080,9 +9490,9 @@
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
},
"node_modules/fsevents": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
- "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
"hasInstallScript": true,
"optional": true,
"os": [
@@ -9566,6 +9976,14 @@
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
},
+ "node_modules/html-parse-stringify": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/html-parse-stringify/-/html-parse-stringify-3.0.1.tgz",
+ "integrity": "sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==",
+ "dependencies": {
+ "void-elements": "3.1.0"
+ }
+ },
"node_modules/http-errors": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
@@ -9721,6 +10139,28 @@
"resolved": "https://registry.npmjs.org/i18n-js/-/i18n-js-3.9.2.tgz",
"integrity": "sha512-+Gm8h5HL0emzKhRx2avMKX+nKiVPXeaOZm7Euf2/pbbFcLQoJ3zZYiUykAzoRasijCoWos2Kl1tslmScTgAQKw=="
},
+ "node_modules/i18next": {
+ "version": "23.8.2",
+ "resolved": "https://registry.npmjs.org/i18next/-/i18next-23.8.2.tgz",
+ "integrity": "sha512-Z84zyEangrlERm0ZugVy4bIt485e/H8VecGUZkZWrH7BDePG6jT73QdL9EA1tRTTVVMpry/MgWIP1FjEn0DRXA==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://locize.com"
+ },
+ {
+ "type": "individual",
+ "url": "https://locize.com/i18next.html"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project"
+ }
+ ],
+ "dependencies": {
+ "@babel/runtime": "^7.23.2"
+ }
+ },
"node_modules/iconv-lite": {
"version": "0.4.24",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
@@ -10489,9 +10929,9 @@
}
},
"node_modules/jest-util/node_modules/@types/yargs": {
- "version": "16.0.5",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
- "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
+ "version": "16.0.9",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz",
+ "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==",
"dependencies": {
"@types/yargs-parser": "*"
}
@@ -10681,13 +11121,13 @@
"integrity": "sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww=="
},
"node_modules/joi": {
- "version": "17.9.1",
- "resolved": "https://registry.npmjs.org/joi/-/joi-17.9.1.tgz",
- "integrity": "sha512-FariIi9j6QODKATGBrEX7HZcja8Bsh3rfdGYy/Sb65sGlZWK/QWesU1ghk7aJWDj95knjXlQfSmzFSPPkLVsfw==",
+ "version": "17.12.1",
+ "resolved": "https://registry.npmjs.org/joi/-/joi-17.12.1.tgz",
+ "integrity": "sha512-vtxmq+Lsc5SlfqotnfVjlViWfOL9nt/avKNbKYizwf6gsCfq9NYY/ceYRMFD8XDdrjJ9abJyScWmhmIiy+XRtQ==",
"dependencies": {
- "@hapi/hoek": "^9.0.0",
- "@hapi/topo": "^5.0.0",
- "@sideway/address": "^4.1.3",
+ "@hapi/hoek": "^9.3.0",
+ "@hapi/topo": "^5.1.0",
+ "@sideway/address": "^4.1.5",
"@sideway/formula": "^3.0.1",
"@sideway/pinpoint": "^2.0.0"
}
@@ -10719,6 +11159,11 @@
"resolved": "https://registry.npmjs.org/jsc-android/-/jsc-android-250230.2.1.tgz",
"integrity": "sha512-KmxeBlRjwoqCnBBKGsihFtvsBHyUFlBxJPK4FzeYcIuBfdjv6jFys44JITAgSTbQD+vIdwMEfyZklsuQX0yI1Q=="
},
+ "node_modules/jsc-safe-url": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/jsc-safe-url/-/jsc-safe-url-0.2.4.tgz",
+ "integrity": "sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q=="
+ },
"node_modules/jscodeshift": {
"version": "0.13.1",
"resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.13.1.tgz",
@@ -11670,9 +12115,9 @@
}
},
"node_modules/metro": {
- "version": "0.72.3",
- "resolved": "https://registry.npmjs.org/metro/-/metro-0.72.3.tgz",
- "integrity": "sha512-Hb3xTvPqex8kJ1hutQNZhQadUKUwmns/Du9GikmWKBFrkiG3k3xstGAyO5t5rN9JSUEzQT6y9SWzSSOGogUKIg==",
+ "version": "0.72.4",
+ "resolved": "https://registry.npmjs.org/metro/-/metro-0.72.4.tgz",
+ "integrity": "sha512-UBqL2fswJjsq2LlfMPV4ArqzLzjyN0nReKRijP3DdSxZiaJDG4NC9sQoVJHbH1HP5qXQMAK/SftyAx1c1kuy+w==",
"dependencies": {
"@babel/code-frame": "^7.0.0",
"@babel/core": "^7.14.0",
@@ -11696,23 +12141,24 @@
"image-size": "^0.6.0",
"invariant": "^2.2.4",
"jest-worker": "^27.2.0",
+ "jsc-safe-url": "^0.2.2",
"lodash.throttle": "^4.1.1",
- "metro-babel-transformer": "0.72.3",
- "metro-cache": "0.72.3",
- "metro-cache-key": "0.72.3",
- "metro-config": "0.72.3",
- "metro-core": "0.72.3",
- "metro-file-map": "0.72.3",
- "metro-hermes-compiler": "0.72.3",
- "metro-inspector-proxy": "0.72.3",
- "metro-minify-uglify": "0.72.3",
- "metro-react-native-babel-preset": "0.72.3",
- "metro-resolver": "0.72.3",
- "metro-runtime": "0.72.3",
- "metro-source-map": "0.72.3",
- "metro-symbolicate": "0.72.3",
- "metro-transform-plugins": "0.72.3",
- "metro-transform-worker": "0.72.3",
+ "metro-babel-transformer": "0.72.4",
+ "metro-cache": "0.72.4",
+ "metro-cache-key": "0.72.4",
+ "metro-config": "0.72.4",
+ "metro-core": "0.72.4",
+ "metro-file-map": "0.72.4",
+ "metro-hermes-compiler": "0.72.4",
+ "metro-inspector-proxy": "0.72.4",
+ "metro-minify-uglify": "0.72.4",
+ "metro-react-native-babel-preset": "0.72.4",
+ "metro-resolver": "0.72.4",
+ "metro-runtime": "0.72.4",
+ "metro-source-map": "0.72.4",
+ "metro-symbolicate": "0.72.4",
+ "metro-transform-plugins": "0.72.4",
+ "metro-transform-worker": "0.72.4",
"mime-types": "^2.1.27",
"node-fetch": "^2.2.0",
"nullthrows": "^1.1.1",
@@ -11730,41 +12176,69 @@
}
},
"node_modules/metro-babel-transformer": {
- "version": "0.72.3",
- "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.72.3.tgz",
- "integrity": "sha512-PTOR2zww0vJbWeeM3qN90WKENxCLzv9xrwWaNtwVlhcV8/diNdNe82sE1xIxLFI6OQuAVwNMv1Y7VsO2I7Ejrw==",
+ "version": "0.72.4",
+ "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.72.4.tgz",
+ "integrity": "sha512-cg1TQUKDkKqrIClrqqIGE8ZDa9kRKSjhBtqPtNYt/ZSywXU41SrldfcI5uzPrzcIrYpH5hnN6OCLRACPgy2vsw==",
"dependencies": {
"@babel/core": "^7.14.0",
"hermes-parser": "0.8.0",
- "metro-source-map": "0.72.3",
+ "metro-source-map": "0.72.4",
"nullthrows": "^1.1.1"
}
},
- "node_modules/metro-cache": {
- "version": "0.72.3",
- "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.72.3.tgz",
- "integrity": "sha512-++eyZzwkXvijWRV3CkDbueaXXGlVzH9GA52QWqTgAOgSHYp5jWaDwLQ8qpsMkQzpwSyIF4LLK9aI3eA7Xa132A==",
+ "node_modules/metro-babel-transformer/node_modules/metro-source-map": {
+ "version": "0.72.4",
+ "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.72.4.tgz",
+ "integrity": "sha512-P09aMDEPkLo6BM8VYYoTsH/2B1w6t+mrCwNcNJV1zE+57FPiU4fSBlSeM8G9YeYaezDTHimS2JlMozP+2r+trA==",
"dependencies": {
- "metro-core": "0.72.3",
+ "@babel/traverse": "^7.14.0",
+ "@babel/types": "^7.0.0",
+ "invariant": "^2.2.4",
+ "metro-symbolicate": "0.72.4",
+ "nullthrows": "^1.1.1",
+ "ob1": "0.72.4",
+ "source-map": "^0.5.6",
+ "vlq": "^1.0.0"
+ }
+ },
+ "node_modules/metro-babel-transformer/node_modules/ob1": {
+ "version": "0.72.4",
+ "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.72.4.tgz",
+ "integrity": "sha512-/iPJKpXpVEZS0subUvjew4ept5LTBxj1hD20A4mAj9CJkGGPgvbBlfYtFEBubBkk4dv4Ef5lajsnRBYPxF74cQ=="
+ },
+ "node_modules/metro-babel-transformer/node_modules/source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/metro-cache": {
+ "version": "0.72.4",
+ "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.72.4.tgz",
+ "integrity": "sha512-76fi9OVytiFVSuGQcNoquVOT7AENd0q3n1WmyBeJ7jvl/UrE3/NN3HTWzu2ezG5IxF3cmo5q1ehi0NEpgwaFGg==",
+ "dependencies": {
+ "metro-core": "0.72.4",
"rimraf": "^2.5.4"
}
},
"node_modules/metro-cache-key": {
- "version": "0.72.3",
- "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.72.3.tgz",
- "integrity": "sha512-kQzmF5s3qMlzqkQcDwDxrOaVxJ2Bh6WRXWdzPnnhsq9LcD3B3cYqQbRBS+3tSuXmathb4gsOdhWslOuIsYS8Rg=="
+ "version": "0.72.4",
+ "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.72.4.tgz",
+ "integrity": "sha512-DH3cgN4L7IKNCVBy8LBOXQ4tHDdvh7Vl7jWNkQKMOfHWu1EwsTtXD/+zdV7/be4ls/kHxrD0HbGzpK8XhUAHSw=="
},
"node_modules/metro-config": {
- "version": "0.72.3",
- "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.72.3.tgz",
- "integrity": "sha512-VEsAIVDkrIhgCByq8HKTWMBjJG6RlYwWSu1Gnv3PpHa0IyTjKJtB7wC02rbTjSaemcr82scldf2R+h6ygMEvsw==",
+ "version": "0.72.4",
+ "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.72.4.tgz",
+ "integrity": "sha512-USv+H14D5RrSpfA5t4t5cbF1CnizgYGz6xJ3HB0r/bDYdJdZTVqB3/mMPft7Z5zHslS00JCG7oE51G1CK/FlKw==",
"dependencies": {
"cosmiconfig": "^5.0.5",
"jest-validate": "^26.5.2",
- "metro": "0.72.3",
- "metro-cache": "0.72.3",
- "metro-core": "0.72.3",
- "metro-runtime": "0.72.3"
+ "metro": "0.72.4",
+ "metro-cache": "0.72.4",
+ "metro-core": "0.72.4",
+ "metro-runtime": "0.72.4"
}
},
"node_modules/metro-config/node_modules/cosmiconfig": {
@@ -11793,6 +12267,15 @@
"node": ">=4"
}
},
+ "node_modules/metro-config/node_modules/metro-runtime": {
+ "version": "0.72.4",
+ "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.72.4.tgz",
+ "integrity": "sha512-EA0ltqyYFpjOdpoRqE2U9FJleqTOIK+ZLRlLaDrx4yz3zTqUZ16W6w71dq+qrwD8BPg7bPKQu7RluU3K6tI79A==",
+ "dependencies": {
+ "@babel/runtime": "^7.0.0",
+ "react-refresh": "^0.4.0"
+ }
+ },
"node_modules/metro-config/node_modules/parse-json": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
@@ -11814,18 +12297,18 @@
}
},
"node_modules/metro-core": {
- "version": "0.72.3",
- "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.72.3.tgz",
- "integrity": "sha512-KuYWBMmLB4+LxSMcZ1dmWabVExNCjZe3KysgoECAIV+wyIc2r4xANq15GhS94xYvX1+RqZrxU1pa0jQ5OK+/6A==",
+ "version": "0.72.4",
+ "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.72.4.tgz",
+ "integrity": "sha512-2JNT1nG0UV1uMrQHQOKUSII0sdS6MhVT3mBt2kwfjCvD+jvi1iYhKJ4kYCRlUQw9XNLGZ/B+C0VDQzlf2M3zVw==",
"dependencies": {
"lodash.throttle": "^4.1.1",
- "metro-resolver": "0.72.3"
+ "metro-resolver": "0.72.4"
}
},
"node_modules/metro-file-map": {
- "version": "0.72.3",
- "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.72.3.tgz",
- "integrity": "sha512-LhuRnuZ2i2uxkpFsz1XCDIQSixxBkBG7oICAFyLyEMDGbcfeY6/NexphfLdJLTghkaoJR5ARFMiIxUg9fIY/pA==",
+ "version": "0.72.4",
+ "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.72.4.tgz",
+ "integrity": "sha512-Mv5WgTsYs5svTR/df6jhq2aD4IkAuwV5TutHW0BfEg1YccQt8/v7q5ZypmUOkjdSS9bFR4r3677jalr/ceFypQ==",
"dependencies": {
"abort-controller": "^3.0.0",
"anymatch": "^3.0.3",
@@ -11858,14 +12341,14 @@
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"node_modules/metro-hermes-compiler": {
- "version": "0.72.3",
- "resolved": "https://registry.npmjs.org/metro-hermes-compiler/-/metro-hermes-compiler-0.72.3.tgz",
- "integrity": "sha512-QWDQASMiXNW3j8uIQbzIzCdGYv5PpAX/ZiF4/lTWqKRWuhlkP4auhVY4eqdAKj5syPx45ggpjkVE0p8hAPDZYg=="
+ "version": "0.72.4",
+ "resolved": "https://registry.npmjs.org/metro-hermes-compiler/-/metro-hermes-compiler-0.72.4.tgz",
+ "integrity": "sha512-AY1mAT5FKfDRYCthuKo2XHbuhG5TUV4ZpZlJ8peIgkiWICzfy0tau3yu+3jUD456N90CjMCOmdknji4uKiZ8ww=="
},
"node_modules/metro-inspector-proxy": {
- "version": "0.72.3",
- "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.72.3.tgz",
- "integrity": "sha512-UPFkaq2k93RaOi+eqqt7UUmqy2ywCkuxJLasQ55+xavTUS+TQSyeTnTczaYn+YKw+izLTLllGcvqnQcZiWYhGw==",
+ "version": "0.72.4",
+ "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.72.4.tgz",
+ "integrity": "sha512-pr+PsbNCZaStWuJRH8oclT170B7NxfgH+UUyTf9/aR+7PjX0gdDabJhPyzA633QgR+EFBaQKZuetHA+f5/cnEQ==",
"dependencies": {
"connect": "^3.6.5",
"debug": "^2.2.0",
@@ -11910,9 +12393,9 @@
}
},
"node_modules/metro-minify-uglify": {
- "version": "0.72.3",
- "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.72.3.tgz",
- "integrity": "sha512-dPXqtMI8TQcj0g7ZrdhC8X3mx3m3rtjtMuHKGIiEXH9CMBvrET8IwrgujQw2rkPcXiSiX8vFDbGMIlfxefDsKA==",
+ "version": "0.72.4",
+ "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.72.4.tgz",
+ "integrity": "sha512-84Rrgie3O7Dqkak9ep/eIpMZkEFzpKD4bngPUNimYqAMCExKL7/aymydB27gKcqwus/BVkAV+aOnFsuOhlgnQg==",
"dependencies": {
"uglify-es": "^3.1.9"
}
@@ -11983,10 +12466,21 @@
"@babel/core": "*"
}
},
- "node_modules/metro-resolver": {
+ "node_modules/metro-react-native-babel-transformer/node_modules/metro-babel-transformer": {
"version": "0.72.3",
- "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.72.3.tgz",
- "integrity": "sha512-wu9zSMGdxpKmfECE7FtCdpfC+vrWGTdVr57lDA0piKhZV6VN6acZIvqQ1yZKtS2WfKsngncv5VbB8Y5eHRQP3w==",
+ "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.72.3.tgz",
+ "integrity": "sha512-PTOR2zww0vJbWeeM3qN90WKENxCLzv9xrwWaNtwVlhcV8/diNdNe82sE1xIxLFI6OQuAVwNMv1Y7VsO2I7Ejrw==",
+ "dependencies": {
+ "@babel/core": "^7.14.0",
+ "hermes-parser": "0.8.0",
+ "metro-source-map": "0.72.3",
+ "nullthrows": "^1.1.1"
+ }
+ },
+ "node_modules/metro-resolver": {
+ "version": "0.72.4",
+ "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.72.4.tgz",
+ "integrity": "sha512-aHxq/jypzGyi9Ic9woe//RymfxpzWliAkyTmBWPHE9ypGoiobstK0me2j5XuSfzASzCU8wcVt20qy870rxTWLw==",
"dependencies": {
"absolute-path": "^0.0.0"
}
@@ -12015,15 +12509,7 @@
"vlq": "^1.0.0"
}
},
- "node_modules/metro-source-map/node_modules/source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/metro-symbolicate": {
+ "node_modules/metro-source-map/node_modules/metro-symbolicate": {
"version": "0.72.3",
"resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.72.3.tgz",
"integrity": "sha512-eXG0NX2PJzJ/jTG4q5yyYeN2dr1cUqUaY7worBB0SP5bRWRc3besfb+rXwfh49wTFiL5qR0oOawkU4ZiD4eHXw==",
@@ -12042,6 +12528,53 @@
"node": ">=8.3"
}
},
+ "node_modules/metro-source-map/node_modules/source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/metro-symbolicate": {
+ "version": "0.72.4",
+ "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.72.4.tgz",
+ "integrity": "sha512-6ZRo66Q4iKiwaQuHjmogkSCCqaSpJ4QzbHsVHRUe57mFIL34lOLYp7aPfmX7NHCmy061HhDox/kGuYZQRmHB3A==",
+ "dependencies": {
+ "invariant": "^2.2.4",
+ "metro-source-map": "0.72.4",
+ "nullthrows": "^1.1.1",
+ "source-map": "^0.5.6",
+ "through2": "^2.0.1",
+ "vlq": "^1.0.0"
+ },
+ "bin": {
+ "metro-symbolicate": "src/index.js"
+ },
+ "engines": {
+ "node": ">=8.3"
+ }
+ },
+ "node_modules/metro-symbolicate/node_modules/metro-source-map": {
+ "version": "0.72.4",
+ "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.72.4.tgz",
+ "integrity": "sha512-P09aMDEPkLo6BM8VYYoTsH/2B1w6t+mrCwNcNJV1zE+57FPiU4fSBlSeM8G9YeYaezDTHimS2JlMozP+2r+trA==",
+ "dependencies": {
+ "@babel/traverse": "^7.14.0",
+ "@babel/types": "^7.0.0",
+ "invariant": "^2.2.4",
+ "metro-symbolicate": "0.72.4",
+ "nullthrows": "^1.1.1",
+ "ob1": "0.72.4",
+ "source-map": "^0.5.6",
+ "vlq": "^1.0.0"
+ }
+ },
+ "node_modules/metro-symbolicate/node_modules/ob1": {
+ "version": "0.72.4",
+ "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.72.4.tgz",
+ "integrity": "sha512-/iPJKpXpVEZS0subUvjew4ept5LTBxj1hD20A4mAj9CJkGGPgvbBlfYtFEBubBkk4dv4Ef5lajsnRBYPxF74cQ=="
+ },
"node_modules/metro-symbolicate/node_modules/source-map": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
@@ -12051,9 +12584,9 @@
}
},
"node_modules/metro-transform-plugins": {
- "version": "0.72.3",
- "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.72.3.tgz",
- "integrity": "sha512-D+TcUvCKZbRua1+qujE0wV1onZvslW6cVTs7dLCyC2pv20lNHjFr1GtW01jN2fyKR2PcRyMjDCppFd9VwDKnSg==",
+ "version": "0.72.4",
+ "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.72.4.tgz",
+ "integrity": "sha512-yxB4v/LxQkmN1rjyyeLiV4x+jwCmId4FTTxNrmTYoi0tFPtOBOeSwuqY08LjxZQMJdZOKXqj2bgIewqFXJEkGw==",
"dependencies": {
"@babel/core": "^7.14.0",
"@babel/generator": "^7.14.0",
@@ -12063,25 +12596,53 @@
}
},
"node_modules/metro-transform-worker": {
- "version": "0.72.3",
- "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.72.3.tgz",
- "integrity": "sha512-WsuWj9H7i6cHuJuy+BgbWht9DK5FOgJxHLGAyULD5FJdTG9rSMFaHDO5WfC0OwQU5h4w6cPT40iDuEGksM7+YQ==",
+ "version": "0.72.4",
+ "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.72.4.tgz",
+ "integrity": "sha512-mIvzy6nRQKMALEdF5g8LXPgCOUi/tGESE5dlb7OSMCj2FAFBm3mTLRrpW5phzK/J6Wg+4Vb9PMS+wGbXR261rA==",
"dependencies": {
"@babel/core": "^7.14.0",
"@babel/generator": "^7.14.0",
"@babel/parser": "^7.14.0",
"@babel/types": "^7.0.0",
"babel-preset-fbjs": "^3.4.0",
- "metro": "0.72.3",
- "metro-babel-transformer": "0.72.3",
- "metro-cache": "0.72.3",
- "metro-cache-key": "0.72.3",
- "metro-hermes-compiler": "0.72.3",
- "metro-source-map": "0.72.3",
- "metro-transform-plugins": "0.72.3",
+ "metro": "0.72.4",
+ "metro-babel-transformer": "0.72.4",
+ "metro-cache": "0.72.4",
+ "metro-cache-key": "0.72.4",
+ "metro-hermes-compiler": "0.72.4",
+ "metro-source-map": "0.72.4",
+ "metro-transform-plugins": "0.72.4",
"nullthrows": "^1.1.1"
}
},
+ "node_modules/metro-transform-worker/node_modules/metro-source-map": {
+ "version": "0.72.4",
+ "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.72.4.tgz",
+ "integrity": "sha512-P09aMDEPkLo6BM8VYYoTsH/2B1w6t+mrCwNcNJV1zE+57FPiU4fSBlSeM8G9YeYaezDTHimS2JlMozP+2r+trA==",
+ "dependencies": {
+ "@babel/traverse": "^7.14.0",
+ "@babel/types": "^7.0.0",
+ "invariant": "^2.2.4",
+ "metro-symbolicate": "0.72.4",
+ "nullthrows": "^1.1.1",
+ "ob1": "0.72.4",
+ "source-map": "^0.5.6",
+ "vlq": "^1.0.0"
+ }
+ },
+ "node_modules/metro-transform-worker/node_modules/ob1": {
+ "version": "0.72.4",
+ "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.72.4.tgz",
+ "integrity": "sha512-/iPJKpXpVEZS0subUvjew4ept5LTBxj1hD20A4mAj9CJkGGPgvbBlfYtFEBubBkk4dv4Ef5lajsnRBYPxF74cQ=="
+ },
+ "node_modules/metro-transform-worker/node_modules/source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/metro/node_modules/ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@@ -12166,11 +12727,89 @@
"graceful-fs": "^4.1.6"
}
},
+ "node_modules/metro/node_modules/metro-react-native-babel-preset": {
+ "version": "0.72.4",
+ "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.72.4.tgz",
+ "integrity": "sha512-YGCVaYe1H5fOFktdDdL9IwAyiXjPh1t2eZZFp3KFJak6fxKpN+q5PPhe1kzMa77dbCAqgImv43zkfGa6i27eyA==",
+ "dependencies": {
+ "@babel/core": "^7.14.0",
+ "@babel/plugin-proposal-async-generator-functions": "^7.0.0",
+ "@babel/plugin-proposal-class-properties": "^7.0.0",
+ "@babel/plugin-proposal-export-default-from": "^7.0.0",
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0",
+ "@babel/plugin-proposal-object-rest-spread": "^7.0.0",
+ "@babel/plugin-proposal-optional-catch-binding": "^7.0.0",
+ "@babel/plugin-proposal-optional-chaining": "^7.0.0",
+ "@babel/plugin-syntax-dynamic-import": "^7.0.0",
+ "@babel/plugin-syntax-export-default-from": "^7.0.0",
+ "@babel/plugin-syntax-flow": "^7.2.0",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0",
+ "@babel/plugin-syntax-optional-chaining": "^7.0.0",
+ "@babel/plugin-transform-arrow-functions": "^7.0.0",
+ "@babel/plugin-transform-async-to-generator": "^7.0.0",
+ "@babel/plugin-transform-block-scoping": "^7.0.0",
+ "@babel/plugin-transform-classes": "^7.0.0",
+ "@babel/plugin-transform-computed-properties": "^7.0.0",
+ "@babel/plugin-transform-destructuring": "^7.0.0",
+ "@babel/plugin-transform-exponentiation-operator": "^7.0.0",
+ "@babel/plugin-transform-flow-strip-types": "^7.0.0",
+ "@babel/plugin-transform-function-name": "^7.0.0",
+ "@babel/plugin-transform-literals": "^7.0.0",
+ "@babel/plugin-transform-modules-commonjs": "^7.0.0",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.0.0",
+ "@babel/plugin-transform-parameters": "^7.0.0",
+ "@babel/plugin-transform-react-display-name": "^7.0.0",
+ "@babel/plugin-transform-react-jsx": "^7.0.0",
+ "@babel/plugin-transform-react-jsx-self": "^7.0.0",
+ "@babel/plugin-transform-react-jsx-source": "^7.0.0",
+ "@babel/plugin-transform-runtime": "^7.0.0",
+ "@babel/plugin-transform-shorthand-properties": "^7.0.0",
+ "@babel/plugin-transform-spread": "^7.0.0",
+ "@babel/plugin-transform-sticky-regex": "^7.0.0",
+ "@babel/plugin-transform-template-literals": "^7.0.0",
+ "@babel/plugin-transform-typescript": "^7.5.0",
+ "@babel/plugin-transform-unicode-regex": "^7.0.0",
+ "@babel/template": "^7.0.0",
+ "react-refresh": "^0.4.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "*"
+ }
+ },
+ "node_modules/metro/node_modules/metro-runtime": {
+ "version": "0.72.4",
+ "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.72.4.tgz",
+ "integrity": "sha512-EA0ltqyYFpjOdpoRqE2U9FJleqTOIK+ZLRlLaDrx4yz3zTqUZ16W6w71dq+qrwD8BPg7bPKQu7RluU3K6tI79A==",
+ "dependencies": {
+ "@babel/runtime": "^7.0.0",
+ "react-refresh": "^0.4.0"
+ }
+ },
+ "node_modules/metro/node_modules/metro-source-map": {
+ "version": "0.72.4",
+ "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.72.4.tgz",
+ "integrity": "sha512-P09aMDEPkLo6BM8VYYoTsH/2B1w6t+mrCwNcNJV1zE+57FPiU4fSBlSeM8G9YeYaezDTHimS2JlMozP+2r+trA==",
+ "dependencies": {
+ "@babel/traverse": "^7.14.0",
+ "@babel/types": "^7.0.0",
+ "invariant": "^2.2.4",
+ "metro-symbolicate": "0.72.4",
+ "nullthrows": "^1.1.1",
+ "ob1": "0.72.4",
+ "source-map": "^0.5.6",
+ "vlq": "^1.0.0"
+ }
+ },
"node_modules/metro/node_modules/ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
+ "node_modules/metro/node_modules/ob1": {
+ "version": "0.72.4",
+ "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.72.4.tgz",
+ "integrity": "sha512-/iPJKpXpVEZS0subUvjew4ept5LTBxj1hD20A4mAj9CJkGGPgvbBlfYtFEBubBkk4dv4Ef5lajsnRBYPxF74cQ=="
+ },
"node_modules/metro/node_modules/serialize-error": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz",
@@ -13992,20 +14631,41 @@
"react": ">=17.0.0"
}
},
+ "node_modules/react-i18next": {
+ "version": "14.0.5",
+ "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-14.0.5.tgz",
+ "integrity": "sha512-5+bQSeEtgJrMBABBL5lO7jPdSNAbeAZ+MlFWDw//7FnVacuVu3l9EeWFzBQvZsKy+cihkbThWOAThEdH8YjGEw==",
+ "dependencies": {
+ "@babel/runtime": "^7.23.9",
+ "html-parse-stringify": "^3.0.1"
+ },
+ "peerDependencies": {
+ "i18next": ">= 23.2.3",
+ "react": ">= 16.8.0"
+ },
+ "peerDependenciesMeta": {
+ "react-dom": {
+ "optional": true
+ },
+ "react-native": {
+ "optional": true
+ }
+ }
+ },
"node_modules/react-is": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
},
"node_modules/react-native": {
- "version": "0.70.5",
- "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.70.5.tgz",
- "integrity": "sha512-5NZM80LC3L+TIgQX/09yiyy48S73wMgpIgN5cCv3XTMR394+KpDI3rBZGH4aIgWWuwijz31YYVF5504+9n2Zfw==",
+ "version": "0.70.8",
+ "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.70.8.tgz",
+ "integrity": "sha512-O3ONJed9W/VEEVWsbZcwyMDhnEvw7v9l9enqWqgbSGLzHfh6HeIGMCNmjz+kRsHnC7AiF47fupWfgYX7hNnhoQ==",
"dependencies": {
- "@jest/create-cache-key-function": "^29.0.3",
- "@react-native-community/cli": "9.2.1",
- "@react-native-community/cli-platform-android": "9.2.1",
- "@react-native-community/cli-platform-ios": "9.2.1",
+ "@jest/create-cache-key-function": "^27.0.1",
+ "@react-native-community/cli": "9.3.2",
+ "@react-native-community/cli-platform-android": "9.3.1",
+ "@react-native-community/cli-platform-ios": "9.3.0",
"@react-native/assets": "1.0.0",
"@react-native/normalize-color": "2.0.0",
"@react-native/polyfills": "2.0.0",
@@ -14022,7 +14682,7 @@
"mkdirp": "^0.5.1",
"nullthrows": "^1.1.1",
"pretty-format": "^26.5.2",
- "promise": "^8.0.3",
+ "promise": "^8.3.0",
"react-devtools-core": "4.24.0",
"react-native-codegen": "^0.70.6",
"react-native-gradle-plugin": "^0.70.3",
@@ -15047,9 +15707,9 @@
"dev": true
},
"node_modules/slugify": {
- "version": "1.6.5",
- "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.5.tgz",
- "integrity": "sha512-8mo9bslnBO3tr5PEVFzMPIWwWnipGS0xVbYf65zxDqfNwmzYn1LpiKNrR6DlClusuvo+hDHd1zKpmfAe83NQSQ==",
+ "version": "1.6.6",
+ "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz",
+ "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==",
"engines": {
"node": ">=8.0.0"
}
@@ -15644,10 +16304,11 @@
}
},
"node_modules/sucrase": {
- "version": "3.30.0",
- "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.30.0.tgz",
- "integrity": "sha512-7d37d3vLF0IeH2dzvHpzDNDxUqpbDHJXTJOAnQ8jvMW04o2Czps6mxtaSnKWpE+hUS/eczqfWPUgQTrazKZPnQ==",
+ "version": "3.34.0",
+ "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz",
+ "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==",
"dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.2",
"commander": "^4.0.0",
"glob": "7.1.6",
"lines-and-columns": "^1.1.6",
@@ -16541,6 +17202,14 @@
"resolved": "https://registry.npmjs.org/vlq/-/vlq-1.0.1.tgz",
"integrity": "sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w=="
},
+ "node_modules/void-elements": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz",
+ "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/walker": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz",
@@ -16613,9 +17282,9 @@
}
},
"node_modules/which-module": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
- "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q=="
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz",
+ "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ=="
},
"node_modules/which-pm-runs": {
"version": "1.1.0",
diff --git a/RiderApp/package.json b/RiderApp/package.json
index 4c30ab2..014d24f 100644
--- a/RiderApp/package.json
+++ b/RiderApp/package.json
@@ -55,9 +55,11 @@
"graphql": "^14.3.1",
"graphql-tag": "^2.10.1",
"i18n-js": "^3.3.0",
+ "i18next": "^23.8.2",
"patch-package": "^6.5.1",
"react": "18.1.0",
"react-apollo": "^2.5.8",
+ "react-i18next": "^14.0.5",
"react-native": "0.70.8",
"react-native-animatable": "^1.3.2",
"react-native-flash-message": "^0.1.13",
diff --git a/RiderApp/src/components/AssignedOrders/AssignedOrders.js b/RiderApp/src/components/AssignedOrders/AssignedOrders.js
index 835d1b3..5b11be8 100644
--- a/RiderApp/src/components/AssignedOrders/AssignedOrders.js
+++ b/RiderApp/src/components/AssignedOrders/AssignedOrders.js
@@ -1,35 +1,36 @@
-import React, { useContext } from 'react'
-import { FlatList } from 'react-native'
-import Spinner from '../Spinner/Spinner'
-import Order from '../Order/Order'
-import ConfigurationContext from '../../context/configuration'
-import UserContext from '../../context/user'
-import TextError from '../Text/TextError/TextError'
-import { useNavigation } from '@react-navigation/native'
-import { verticalScale } from '../../utilities/scaling'
-import i18n from '../../../i18n'
+import React, { useContext } from "react";
+import { FlatList } from "react-native";
+import Spinner from "../Spinner/Spinner";
+import Order from "../Order/Order";
+import ConfigurationContext from "../../context/configuration";
+import UserContext from "../../context/user";
+import TextError from "../Text/TextError/TextError";
+import { useNavigation } from "@react-navigation/native";
+import { verticalScale } from "../../utilities/scaling";
+import { useTranslation } from "react-i18next";
export default function Orders() {
- const navigation = useNavigation()
- const configuration = useContext(ConfigurationContext)
+ const { t } = useTranslation();
+ const navigation = useNavigation();
+ const configuration = useContext(ConfigurationContext);
const {
loadingAssigned,
errorAssigned,
assignedOrders,
refetchAssigned,
- networkStatusAssigned
- } = useContext(UserContext)
+ networkStatusAssigned,
+ } = useContext(UserContext);
- if (loadingAssigned) return
- if (errorAssigned) return
+ if (loadingAssigned) return ;
+ if (errorAssigned) return ;
function emptyView() {
- return
+ return ;
}
return (
item._id}
+ keyExtractor={(item) => item._id}
data={assignedOrders.length > 0 ? assignedOrders.slice().reverse() : []}
refreshing={networkStatusAssigned === 4}
onRefresh={() => refetchAssigned()}
@@ -45,13 +46,13 @@ export default function Orders() {
orderDatetime={item.createdAt}
paymentMethod={item.payment_method}
onPress={() => {
- navigation.navigate('OrderDetail', {
+ navigation.navigate("OrderDetail", {
id: item._id,
- orderId: item.order_id
- })
+ orderId: item.order_id,
+ });
}}
/>
)}
/>
- )
+ );
}
diff --git a/RiderApp/src/components/NewOrders/NewOrders.js b/RiderApp/src/components/NewOrders/NewOrders.js
index 8431cc4..f3b2c13 100644
--- a/RiderApp/src/components/NewOrders/NewOrders.js
+++ b/RiderApp/src/components/NewOrders/NewOrders.js
@@ -7,9 +7,10 @@ import UserContext from '../../context/user'
import TextError from '../Text/TextError/TextError'
import { useNavigation } from '@react-navigation/native'
import { verticalScale } from '../../utilities/scaling'
-import i18n from '../../../i18n'
+import { useTranslation } from "react-i18next";
export default function Orders() {
+ const { t } = useTranslation();
const navigation = useNavigation()
const configuration = useContext(ConfigurationContext)
const {
@@ -21,11 +22,11 @@ export default function Orders() {
} = useContext(UserContext)
function emptyView() {
- return
+ return
}
if (loadingUnAssigned) return
- if (errorUnAssigned) return
+ if (errorUnAssigned) return
return (
{
const obj = orderStatuses.filter(x => {
return x.key === status
@@ -60,7 +60,7 @@ function Order(props) {
numberOfLines={2}
bold
textColor={colors.placeHolderColor}>
- {i18n.t('YourOrderID')}
+ {t('YourOrderID')}
{props.orderId}
@@ -77,7 +77,7 @@ function Order(props) {
bold
uppercase
style={{ ...alignment.PLxSmall, ...alignment.PRxSmall }}>
- {i18n.t(props.orderStatus)}
+ {t(props.orderStatus)}
@@ -100,19 +100,19 @@ function Order(props) {
style={alignment.MTmedium}
textColor={colors.placeHolderColor}
bold>
- {i18n.t('totalOrderAmount')}
+ {t('totalOrderAmount')}
- {i18n.t('paymentMethod')}
+ {t('paymentMethod')}
- {i18n.t('deliveryTime')}
+ {t('deliveryTime')}
@@ -140,14 +140,14 @@ function Order(props) {
{/*
- Your {i18n.t('orderId')}
+ Your {t('orderId')}
{props.orderId}
*/}
{/*
- {i18n.t('totalOrderAmount')} - {props.orderAmount}
+ {t('totalOrderAmount')} - {props.orderAmount}
- if (error) return
+ const { t } = useTranslation();
+ const { data, loading, error } = useQuery(PROFILE);
+ if (loading) return ;
+ if (error) return ;
return (
@@ -31,14 +32,14 @@ function Profile() {
- {i18n.t('welcome')}
+ {t("welcome")}
{data.rider.username}
- )
+ );
}
-export default Profile
+export default Profile;
diff --git a/RiderApp/src/components/Sidebar/Sidebar.js b/RiderApp/src/components/Sidebar/Sidebar.js
index 684be34..0994aa9 100644
--- a/RiderApp/src/components/Sidebar/Sidebar.js
+++ b/RiderApp/src/components/Sidebar/Sidebar.js
@@ -1,7 +1,7 @@
import PropTypes from 'prop-types'
import React, { useContext } from 'react'
import { Platform, View } from 'react-native'
-import i18n from '../../../i18n'
+import { useTranslation } from "react-i18next";
import { AuthContext } from '../../context/auth'
import { NAVIGATION_SCREEN } from '../../utilities/constant'
import NavItem from './NavItem/NavItem'
@@ -40,6 +40,7 @@ const datas = [
]
function SidebBar({ navigation }) {
+ const { t } = useTranslation();
const { logout } = useContext(AuthContext)
// if (loading) return
@@ -64,7 +65,7 @@ function SidebBar({ navigation }) {
}
}}
icon={data.icon}
- title={i18n.t(data.title)}
+ title={t(data.title)}
/>
)
@@ -78,7 +79,7 @@ function SidebBar({ navigation }) {
navigation.closeDrawer()
}}
icon={'sign-out'}
- title={i18n.t('titleLogout')}
+ title={t('titleLogout')}
/>
diff --git a/RiderApp/src/screens/Chat/Chat.js b/RiderApp/src/screens/Chat/Chat.js
index b4e0192..1e82a06 100644
--- a/RiderApp/src/screens/Chat/Chat.js
+++ b/RiderApp/src/screens/Chat/Chat.js
@@ -1,91 +1,97 @@
-import { Feather, FontAwesome } from '@expo/vector-icons'
-import { useNavigation } from '@react-navigation/native'
-import React, { useCallback, useEffect, useState, useLayoutEffect } from 'react'
-import { Keyboard, View } from 'react-native'
+import { Feather, FontAwesome } from "@expo/vector-icons";
+import { useNavigation } from "@react-navigation/native";
+import React, {
+ useCallback,
+ useEffect,
+ useState,
+ useLayoutEffect,
+} from "react";
+import { Keyboard, View } from "react-native";
import {
Bubble,
GiftedChat,
InputToolbar,
- Send
-} from 'react-native-gifted-chat'
-import { MainWrapper, TextDefault } from '../../components'
-import { alignment } from '../../utilities/alignment'
-import colors from '../../utilities/colors'
-import { scale } from '../../utilities/scaling'
-import useStyle from './styles'
-import i18n from '../../../i18n'
+ Send,
+} from "react-native-gifted-chat";
+import { MainWrapper, TextDefault } from "../../components";
+import { alignment } from "../../utilities/alignment";
+import colors from "../../utilities/colors";
+import { scale } from "../../utilities/scaling";
+import useStyle from "./styles";
+import { useTranslation } from "react-i18next";
const UserInfo = {
_id: 1,
- name: 'Jason',
- active: true
-}
+ name: "Jason",
+ active: true,
+};
function Chat() {
- const styles = useStyle()
- const navigation = useNavigation()
- const [messages, setMessages] = useState([])
- const [isTyping, setIsTyping] = useState(false)
+ const { t } = useTranslation();
+ const styles = useStyle();
+ const navigation = useNavigation();
+ const [messages, setMessages] = useState([]);
+ const [isTyping, setIsTyping] = useState(false);
useEffect(() => {
- Keyboard.addListener('keyboardDidShow', _keyboardDidShow)
- Keyboard.addListener('keyboardDidHide', _keyboardDidHide)
+ Keyboard.addListener("keyboardDidShow", _keyboardDidShow);
+ Keyboard.addListener("keyboardDidHide", _keyboardDidHide);
// cleanup function
return () => {
- Keyboard.removeListener('keyboardDidShow', _keyboardDidShow)
- Keyboard.removeListener('keyboardDidHide', _keyboardDidHide)
- }
- }, [])
+ Keyboard.removeListener("keyboardDidShow", _keyboardDidShow);
+ Keyboard.removeListener("keyboardDidHide", _keyboardDidHide);
+ };
+ }, []);
- const _keyboardDidShow = () => setIsTyping(true)
- const _keyboardDidHide = () => setIsTyping(false)
+ const _keyboardDidShow = () => setIsTyping(true);
+ const _keyboardDidHide = () => setIsTyping(false);
useEffect(() => {
navigation.setOptions({
- headerTitle: i18n.t('titleChat')
- })
+ headerTitle: t("titleChat"),
+ });
setMessages([
{
_id: 1,
- text: 'How can I help you?',
+ text: "How can I help you?",
sent: true,
received: true,
createdAt: new Date(),
user: {
_id: 2,
- name: 'React Native',
- avatar: 'https://placeimg.com/140/140/any'
- }
- }
- ])
- }, [navigation])
+ name: "React Native",
+ avatar: "https://placeimg.com/140/140/any",
+ },
+ },
+ ]);
+ }, [navigation]);
const onSend = useCallback((messages = []) => {
- setMessages(previousMessages =>
+ setMessages((previousMessages) =>
GiftedChat.append(previousMessages, messages)
- )
- }, [])
+ );
+ }, []);
- const renderBubble = props => {
+ const renderBubble = (props) => {
return (
- )
- }
+ );
+ };
- const renderSend = props => (
+ const renderSend = (props) => (
- )
- const customtInputToolbar = props => {
+ );
+ const customtInputToolbar = (props) => {
return (
- )
- }
+ );
+ };
return (
@@ -167,7 +173,7 @@ function Chat() {
color={UserInfo.active ? colors.iconPink : colors.fontSecondColor}
/>
- {UserInfo.active ? UserInfo.name : 'Offline'}
+ {UserInfo.active ? UserInfo.name : "Offline"}
onSend(messages)}
+ onSend={(messages) => onSend(messages)}
renderAvatar={() => null}
renderBubble={renderBubble}
renderInputToolbar={customtInputToolbar}
@@ -193,20 +199,20 @@ function Chat() {
// }
timeTextStyle={{
left: {
- width: '100%',
+ width: "100%",
color: colors.fontMainColor,
fontSize: 11,
- textAlign: 'right'
+ textAlign: "right",
},
right: {
color: colors.fontMainColor,
- fontSize: 11
- }
+ fontSize: 11,
+ },
}}
/>
- )
+ );
}
-export default Chat
+export default Chat;
diff --git a/RiderApp/src/screens/Help/Help.js b/RiderApp/src/screens/Help/Help.js
index 2a0c80d..2e6b600 100644
--- a/RiderApp/src/screens/Help/Help.js
+++ b/RiderApp/src/screens/Help/Help.js
@@ -1,36 +1,39 @@
-import { AntDesign } from '@expo/vector-icons'
-import { useNavigation } from '@react-navigation/native'
-import React, { useLayoutEffect } from 'react'
-import { TouchableOpacity, View } from 'react-native'
-import i18n from '../../../i18n'
-import { MainWrapper, TextDefault } from '../../components'
-import colors from '../../utilities/colors'
-import { scale, verticalScale } from '../../utilities/scaling'
-import styles from './styles'
+import { AntDesign } from "@expo/vector-icons";
+import { useNavigation } from "@react-navigation/native";
+import React, { useLayoutEffect } from "react";
+import { TouchableOpacity, View } from "react-native";
+import { useTranslation } from "react-i18next";
+import { MainWrapper, TextDefault } from "../../components";
+import colors from "../../utilities/colors";
+import { scale, verticalScale } from "../../utilities/scaling";
+import styles from "./styles";
const links = [
{
- title: 'Product Page',
- url:
- 'https://enatega.com/enatega-single-vendor/'
+ title: "Product Page",
+ url: "https://enatega.com/enatega-single-vendor/",
},
- { title: 'Docs', url: 'https://enatega.com/docs/enatega-singlevendor-rider-app-introduction/' },
{
- title: 'Blog',
+ title: "Docs",
url:
- 'https://enatega.com/blog/'
+ "https://enatega.com/docs/enatega-singlevendor-rider-app-introduction/",
},
- { title: 'About Us', url: 'https://ninjascode.com/our-team/' }
-]
+ {
+ title: "Blog",
+ url: "https://enatega.com/blog/",
+ },
+ { title: "About Us", url: "https://ninjascode.com/our-team/" },
+];
function Help() {
- const navigation = useNavigation()
+ const { t } = useTranslation();
+ const navigation = useNavigation();
useLayoutEffect(() => {
navigation.setOptions({
headerRight: null,
- headerTitle: i18n.t('titleHelp')
- })
- }, [navigation])
+ headerTitle: t("titleHelp"),
+ });
+ }, [navigation]);
return (
@@ -38,17 +41,18 @@ function Help() {
{links.map(({ title, url }, index) => (
navigation.navigate('HelpBrowser', { title, url })}
+ onPress={() => navigation.navigate("HelpBrowser", { title, url })}
style={styles.itemContainer}
- key={index}>
+ key={index}
+ >
- {i18n.t(title)}
+ {t(title)}
))}
- )
+ );
}
-export default Help
+export default Help;
diff --git a/RiderApp/src/screens/HelpBrowser/HelpBrowser.js b/RiderApp/src/screens/HelpBrowser/HelpBrowser.js
index c53bd0e..99a69e7 100644
--- a/RiderApp/src/screens/HelpBrowser/HelpBrowser.js
+++ b/RiderApp/src/screens/HelpBrowser/HelpBrowser.js
@@ -1,20 +1,21 @@
-import { useNavigation, useRoute } from '@react-navigation/native'
-import React, { useLayoutEffect } from 'react'
-import { WebView } from 'react-native-webview'
-import { MainWrapper, Spinner } from '../../components'
-import i18n from '../../../i18n'
+import { useNavigation, useRoute } from "@react-navigation/native";
+import React, { useLayoutEffect } from "react";
+import { WebView } from "react-native-webview";
+import { MainWrapper, Spinner } from "../../components";
+import { useTranslation } from "react-i18next";
function HelpBrowser() {
- const navigation = useNavigation()
- const route = useRoute()
- const { title, url } = route.params
+ const { t } = useTranslation();
+ const navigation = useNavigation();
+ const route = useRoute();
+ const { title, url } = route.params;
useLayoutEffect(() => {
navigation.setOptions({
headerRight: null,
- headerTitle: i18n.t(title)
- })
- }, [navigation])
+ headerTitle: t(title),
+ });
+ }, [navigation]);
return (
@@ -24,7 +25,7 @@ function HelpBrowser() {
renderLoading={() => }
/>
- )
+ );
}
-export default HelpBrowser
+export default HelpBrowser;
diff --git a/RiderApp/src/screens/Language/Language.js b/RiderApp/src/screens/Language/Language.js
index 24b15ff..4665957 100644
--- a/RiderApp/src/screens/Language/Language.js
+++ b/RiderApp/src/screens/Language/Language.js
@@ -1,68 +1,75 @@
-import AsyncStorage from '@react-native-async-storage/async-storage'
-import { useNavigation } from '@react-navigation/native'
-import * as Localization from 'expo-localization'
-import * as Updates from 'expo-updates'
-import React, { useEffect, useLayoutEffect, useState } from 'react'
-import { Platform, TouchableOpacity, View } from 'react-native'
-import i18n from '../../../i18n'
-import { MainWrapper } from '../../components'
-import RadioButton from '../../components/FdRadioBtn/RadioBtn'
-import TextDefault from '../../components/Text/TextDefault/TextDefault'
-import { alignment } from '../../utilities/alignment'
-import colors from '../../utilities/colors'
-import { scale } from '../../utilities/scaling'
-import styles from './styles'
+import AsyncStorage from "@react-native-async-storage/async-storage";
+import { useNavigation } from "@react-navigation/native";
+import * as Localization from "expo-localization";
+import * as Updates from "expo-updates";
+import React, { useEffect, useLayoutEffect, useState } from "react";
+import { TouchableOpacity, View, ActivityIndicator } from "react-native";
+import i18n from "../../../i18next";
+import { useTranslation } from "react-i18next";
+import { MainWrapper } from "../../components";
+import RadioButton from "../../components/FdRadioBtn/RadioBtn";
+import TextDefault from "../../components/Text/TextDefault/TextDefault";
+import { alignment } from "../../utilities/alignment";
+import colors from "../../utilities/colors";
+import { scale } from "../../utilities/scaling";
+import styles from "./styles";
const languageTypes = [
- { value: 'English', code: 'en', index: 0 },
- { value: 'français', code: 'fr', index: 1 },
- { value: 'ភាសាខ្មែរ', code: 'km', index: 2 },
- { value: '中文', code: 'zh', index: 3 },
- { value: 'Deutsche', code: 'de', index: 4 },
- { value: 'Arabic', code: 'ar', index: 5 }
-]
+ { value: "English", code: "en", index: 0 },
+ { value: "français", code: "fr", index: 1 },
+ { value: "ភាសាខ្មែរ", code: "km", index: 2 },
+ { value: "中文", code: "zh", index: 3 },
+ { value: "Deutsche", code: "de", index: 4 },
+ { value: "Arabic", code: "ar", index: 5 },
+];
function Language() {
- const navigation = useNavigation()
- const [activeRadio, setActiveRadio] = useState(languageTypes[0].index)
- // eslint-disable-next-line no-unused-vars
- const [languageName, languageNameSetter] = useState('English')
+ const { t } = useTranslation();
+ const navigation = useNavigation();
+ const [activeRadio, setActiveRadio] = useState(languageTypes[0].index);
+ const [languageName, languageNameSetter] = useState("English");
+ const [loadinglang, setLoadingLang] = useState(false);
useLayoutEffect(() => {
navigation.setOptions({
- title: i18n.t('titleLanguage')
- })
- }, [navigation])
+ title: t("titleLanguage"),
+ });
+ }, [t, navigation]);
useEffect(() => {
- selectedLanguageFunc()
- }, [])
+ selectedLanguageFunc();
+ }, []);
async function selectedLanguageFunc() {
- const lang = await AsyncStorage.getItem('enatega-language')
+ const lang = await AsyncStorage.getItem("enatega-language");
if (lang) {
- const defLang = languageTypes.findIndex(el => el.code === lang)
- const langName = languageTypes[defLang].value
- setActiveRadio(defLang)
- languageNameSetter(langName)
+ const defLang = languageTypes.findIndex((el) => el.code === lang);
+ const langName = languageTypes[defLang].value;
+ setActiveRadio(defLang);
+ languageNameSetter(langName);
}
}
async function onSelectedLanguage() {
- const languageInd = activeRadio
-
- if (Platform.OS === 'android') {
- const localization = await Localization.getLocalizationAsync()
- localization.locale = languageTypes[languageInd].code
+ try {
+ setLoadingLang(true);
+ const languageInd = activeRadio;
await AsyncStorage.setItem(
- 'enatega-language',
+ "enatega-language",
languageTypes[languageInd].code
- )
- try {
- Updates.reloadAsync()
- } catch (error) {
- console.log('err', error)
+ );
+ var lang = await AsyncStorage.getItem("enatega-language");
+ if (lang) {
+ const defLang = languageTypes.findIndex((el) => el.code === lang);
+ const langName = languageTypes[defLang].value;
+ languageNameSetter(langName);
}
+ i18n.changeLanguage(lang);
+ //modalVisibleSetter(false);
+ } catch (error) {
+ console.error("Error during language selection:", error);
+ } finally {
+ setLoadingLang(false);
}
}
@@ -75,7 +82,8 @@ function Language() {
activeOpacity={0.7}
key={index}
onPress={() => setActiveRadio(item.index)}
- style={[styles.radioContainer]}>
+ style={[styles.radioContainer]}
+ >
+ style={alignment.MLsmall}
+ >
{item.value}
onSelectedLanguage()}
style={{
backgroundColor: colors.tagColor,
- width: '72%',
+ width: "72%",
borderRadius: scale(10),
- alignSelf: 'center',
- alignItems: 'center',
+ alignSelf: "center",
+ alignItems: "center",
height: scale(40),
- justifyContent: 'center'
- }}>
+ justifyContent: "center",
+ }}
+ >
- {i18n.t('Done')}
+ {t("Done")}
navigation.goBack()}
style={{
- width: '72%',
- alignSelf: 'center',
- alignItems: 'center',
+ width: "72%",
+ alignSelf: "center",
+ alignItems: "center",
height: scale(40),
- justifyContent: 'center'
- }}>
+ justifyContent: "center",
+ }}
+ >
- {i18n.t('Cancel')}
+ {t("Cancel")}
+ {loadinglang && (
+
+
+
+ )}
- )
+ );
}
-export default Language
+export default Language;
diff --git a/RiderApp/src/screens/Language/languageContext.js b/RiderApp/src/screens/Language/languageContext.js
new file mode 100644
index 0000000..78f02a0
--- /dev/null
+++ b/RiderApp/src/screens/Language/languageContext.js
@@ -0,0 +1,16 @@
+// LanguageContext.js
+import React, { createContext, useState, useContext } from 'react';
+
+const LanguageContext = createContext();
+
+export const LanguageProvider = ({ children }) => {
+ const [selectedLanguage, setSelectedLanguage] = useState("en");
+
+ return (
+
+ {children}
+
+ );
+};
+
+export const useLanguage = () => useContext(LanguageContext);
\ No newline at end of file
diff --git a/RiderApp/src/screens/Login/Login.js b/RiderApp/src/screens/Login/Login.js
index c37874b..1c82900 100644
--- a/RiderApp/src/screens/Login/Login.js
+++ b/RiderApp/src/screens/Login/Login.js
@@ -1,114 +1,117 @@
-import { useMutation } from '@apollo/react-hooks'
-import AsyncStorage from '@react-native-async-storage/async-storage'
-import { useNavigation } from '@react-navigation/native'
-import Constants from 'expo-constants'
-import * as Notifications from 'expo-notifications'
-import gql from 'graphql-tag'
-import React, { useContext, useEffect, useState,useLayoutEffect } from 'react'
+import { useMutation } from "@apollo/react-hooks";
+import AsyncStorage from "@react-native-async-storage/async-storage";
+import { useNavigation } from "@react-navigation/native";
+import Constants from "expo-constants";
+import * as Notifications from "expo-notifications";
+import gql from "graphql-tag";
+import React, { useContext, useEffect, useState, useLayoutEffect } from "react";
import {
KeyboardAvoidingView,
Platform,
ScrollView,
TouchableOpacity,
- View
-} from 'react-native'
-import { FilledTextField } from 'react-native-material-textfield'
-import Logo from '../../../assets/images/Svg/Logo'
-import i18n from '../../../i18n'
-import { riderLogin } from '../../apollo/mutations'
-import { Spinner, TextDefault, WrapperView } from '../../components'
-import { FlashMessage } from '../../components/FlashMessage/FlashMessage'
-import { AuthContext } from '../../context/auth'
-import { alignment } from '../../utilities/alignment'
-import colors from '../../utilities/colors'
-import { scale } from '../../utilities/scaling'
-import useStyle from './styles'
+ View,
+} from "react-native";
+import { FilledTextField } from "react-native-material-textfield";
+import Logo from "../../../assets/images/Svg/Logo";
+import { useTranslation } from "react-i18next";
+import { riderLogin } from "../../apollo/mutations";
+import { Spinner, TextDefault, WrapperView } from "../../components";
+import { FlashMessage } from "../../components/FlashMessage/FlashMessage";
+import { AuthContext } from "../../context/auth";
+import { alignment } from "../../utilities/alignment";
+import colors from "../../utilities/colors";
+import { scale } from "../../utilities/scaling";
+import useStyle from "./styles";
const RIDER_LOGIN = gql`
${riderLogin}
-`
+`;
export default function Login() {
- const styles = useStyle()
- const navigation = useNavigation()
- const [username, setUsername] = useState('rider')
- const [password, setPassword] = useState('123123')
- const [usernameError, setUsernameError] = useState('')
- const [passwordError, setPasswordError] = useState('')
+ const { t } = useTranslation();
+ const styles = useStyle();
+ const navigation = useNavigation();
+ const [username, setUsername] = useState("rider");
+ const [password, setPassword] = useState("123123");
+ const [usernameError, setUsernameError] = useState("");
+ const [passwordError, setPasswordError] = useState("");
- const { setTokenAsync } = useContext(AuthContext)
+ const { setTokenAsync } = useContext(AuthContext);
-
- useLayoutEffect(() => {
+ useLayoutEffect(() => {
navigation.setOptions({
headerRight: null,
- headerTitle: i18n.t('titleHelp')
- })
- }, [navigation])
+ headerTitle: t("titleHelp"),
+ });
+ }, [navigation]);
const [mutate, { loading }] = useMutation(RIDER_LOGIN, {
onCompleted,
- onError
- })
+ onError,
+ });
function validateForm() {
- let res = true
- setUsernameError('')
- setPasswordError('')
+ let res = true;
+ setUsernameError("");
+ setPasswordError("");
if (!username) {
- setUsernameError(i18n.t('Usernameisrequired'))
- res = false
+ setUsernameError(t("Usernameisrequired"));
+ res = false;
}
if (!password) {
- setPasswordError(i18n.t('Passwordisrequired'))
- res = false
+ setPasswordError(t("Passwordisrequired"));
+ res = false;
}
- return res
+ return res;
}
async function onCompleted(data) {
FlashMessage({
- message: i18n.t('Loggedin')
- })
- await AsyncStorage.setItem('rider-id', data.riderLogin.userId)
- setTokenAsync(data.riderLogin.token)
+ message: t("Loggedin"),
+ });
+ await AsyncStorage.setItem("rider-id", data.riderLogin.userId);
+ setTokenAsync(data.riderLogin.token);
}
function onError({ networkError, graphQLErrors }) {
- console.log('errors', networkError, graphQLErrors)
- let message = ''
+ console.log("errors", networkError, graphQLErrors);
+ let message = "";
if (!!graphQLErrors && graphQLErrors.length) {
- message = graphQLErrors[0].message
+ message = graphQLErrors[0].message;
}
if (!!networkError) {
- message = networkError.result.errors[0].message
+ message = networkError.result.errors[0].message;
}
FlashMessage({
- message: message
- })
+ message: message,
+ });
}
return (
+ behavior={Platform.OS === "ios" ? "padding" : "height"}
+ style={styles.flex}
+ >
+ contentContainerStyle={styles.scrollContent}
+ >
- {i18n.t('EnteryourEmailandPassword')}
+ textColor={colors.placeHolderColor}
+ >
+ {t("EnteryourEmailandPassword")}
{
- setUsername(text.toLowerCase().trim())
+ onChangeText={(text) => {
+ setUsername(text.toLowerCase().trim());
}}
/>
{
- setPassword(text.trim())
+ onChangeText={(text) => {
+ setPassword(text.trim());
}}
/>
@@ -151,30 +154,31 @@ export default function Login() {
{
if (validateForm()) {
- let notificationToken = null
+ let notificationToken = null;
if (Constants.isDevice) {
const {
- status: existingStatus
- } = await Notifications.getPermissionsAsync()
- if (existingStatus === 'granted') {
+ status: existingStatus,
+ } = await Notifications.getPermissionsAsync();
+ if (existingStatus === "granted") {
notificationToken = (
await Notifications.getExpoPushTokenAsync()
- ).data
+ ).data;
}
}
mutate({
variables: {
username: username.toLowerCase(),
password: password,
- notificationToken
- }
- })
+ notificationToken,
+ },
+ });
}
}}
activeOpacity={0.5}
- style={[styles.RContainer]}>
+ style={[styles.RContainer]}
+ >
- {i18n.t('loginBtn')}
+ {t("loginBtn")}
)}
@@ -184,5 +188,5 @@ export default function Login() {
- )
+ );
}
diff --git a/RiderApp/src/screens/NewOrders/NewOrders.js b/RiderApp/src/screens/NewOrders/NewOrders.js
index 3225a61..29f11d3 100644
--- a/RiderApp/src/screens/NewOrders/NewOrders.js
+++ b/RiderApp/src/screens/NewOrders/NewOrders.js
@@ -6,9 +6,10 @@ import UserContext from '../../context/user'
import styles from './style'
import { TextError, Spinner } from '../../components'
import { useNavigation } from '@react-navigation/native'
-import i18n from '../../../i18n'
+import { useTranslation } from "react-i18next";
export default function Orders() {
+ const { t } = useTranslation();
const navigation = useNavigation()
const configuration = useContext(ConfigurationContext)
const {
@@ -20,11 +21,11 @@ export default function Orders() {
} = useContext(UserContext)
function emptyView() {
- return
+ return
}
if (loadingUnAssigned) return
- if (errorUnAssigned) return
+ if (errorUnAssigned) return
return (
diff --git a/RiderApp/src/screens/OrderDetail/OrderDetail.js b/RiderApp/src/screens/OrderDetail/OrderDetail.js
index fab3735..5d79128 100644
--- a/RiderApp/src/screens/OrderDetail/OrderDetail.js
+++ b/RiderApp/src/screens/OrderDetail/OrderDetail.js
@@ -20,7 +20,7 @@ import colors from "../../utilities/colors";
import { linkToMapsApp } from "../../utilities/links";
import { scale } from "../../utilities/scaling";
import styles from "./styles";
-import i18n from "../../../i18n";
+import { useTranslation } from "react-i18next";
const CONFIGURATION = gql`
${configuration}
@@ -38,6 +38,7 @@ const LATITUDE_DELTA = 0.0022;
const LONGITUDE_DELTA = 0.0021;
function OrderDetail() {
+ const { t } = useTranslation();
const navigation = useNavigation();
const route = useRoute();
const {
@@ -71,13 +72,15 @@ function OrderDetail() {
useLayoutEffect(() => {
if (!selectedOrder) return;
navigation.setOptions({
- title: `${i18n.t('Order')} ${selectedOrder.order_id}`,
+ title: `${t("Order")} ${selectedOrder.order_id}`,
});
}, [selectedOrder]);
async function onCompleted({ updateOrderStatusRider, assignOrder }) {
if (updateOrderStatusRider) {
FlashMessage({
- message: `${i18n.t('OrderMarkedAs')} ${i18n.t(updateOrderStatusRider.order_status)}`,
+ message: `${t("OrderMarkedAs")} ${t(
+ updateOrderStatusRider.order_status
+ )}`,
});
if (updateOrderStatusRider.order_status === "DELIVERED") {
navigation.goBack();
@@ -173,18 +176,16 @@ function OrderDetail() {
}
if (loadingAssigned || loadingUnAssigned) {
- return ;
+ return ;
}
if (loadingConfig) {
return ;
}
if (errorConfig) {
- return ;
+ return ;
}
if (!selectedOrder) {
- return (
-
- );
+ return ;
}
return (
@@ -203,7 +204,7 @@ function OrderDetail() {
textColor={colors.tagColor}
style={{ ...alignment.PTxSmall, ...alignment.PBxSmall }}
>
- {i18n.t('CustomerDetails')}
+ {t("CustomerDetails")}
@@ -215,7 +216,7 @@ function OrderDetail() {
textColor={colors.placeHolderColor}
style={{ ...alignment.PTxSmall, ...alignment.PBxSmall }}
>
- {i18n.t('name')}
+ {t("name")}
{selectedOrder.user.name}
@@ -229,7 +230,7 @@ function OrderDetail() {
textColor={colors.placeHolderColor}
style={{ ...alignment.PTxSmall, ...alignment.PBxSmall }}
>
- {i18n.t('Contact')}
+ {t("Contact")}
{selectedOrder.user.phone}
@@ -243,7 +244,7 @@ function OrderDetail() {
textColor={colors.placeHolderColor}
style={{ ...alignment.PTxSmall, ...alignment.PBxSmall }}
>
- {i18n.t('DelvieryLocation')}
+ {t("DelvieryLocation")}
- {i18n.t('OrderDetails')}
+ {t("OrderDetails")}
@@ -285,7 +286,7 @@ function OrderDetail() {
bolder
style={{ ...alignment.PTmedium, ...alignment.PLmedium }}
>
- {i18n.t('Subtotal')}
+ {t("Subtotal")}
@@ -312,7 +313,7 @@ function OrderDetail() {
bolder
style={{ ...alignment.PLmedium }}
>
- {i18n.t('delvieryCharges')}
+ {t("delvieryCharges")}
@@ -332,7 +333,7 @@ function OrderDetail() {
- {i18n.t('total')}
+ {t("total")}
@@ -424,7 +425,7 @@ function OrderDetail() {
bold
style={{ ...alignment.PTxSmall, ...alignment.PBxSmall }}
>
- {i18n.t('Assigntome')}
+ {t("Assigntome")}
)}
@@ -450,7 +451,7 @@ function OrderDetail() {
bold
style={{ ...alignment.PTxSmall, ...alignment.PBxSmall }}
>
- {i18n.t('Picked')}
+ {t("Picked")}
)}
@@ -469,7 +470,7 @@ function OrderDetail() {
bold
style={{ ...alignment.PTxSmall, ...alignment.PBxSmall }}
>
- {i18n.t('Delivered')}
+ {t("Delivered")}
)}
diff --git a/RiderApp/src/screens/OrderDetail/styles.js b/RiderApp/src/screens/OrderDetail/styles.js
index b9dfbbb..f039eee 100644
--- a/RiderApp/src/screens/OrderDetail/styles.js
+++ b/RiderApp/src/screens/OrderDetail/styles.js
@@ -1,197 +1,198 @@
-import { Dimensions, StyleSheet } from 'react-native'
-import { alignment } from '../../utilities/alignment'
-import colors from '../../utilities/colors'
-import { scale, verticalScale } from '../../utilities/scaling'
-const { height } = Dimensions.get('window')
+import { Dimensions, StyleSheet } from "react-native";
+import { alignment } from "../../utilities/alignment";
+import colors from "../../utilities/colors";
+import { scale, verticalScale } from "../../utilities/scaling";
+const { height } = Dimensions.get("window");
export default {
flex: {
flex: 1,
- backgroundColor: colors.themeBackground
+ backgroundColor: colors.themeBackground,
},
line: {
- width: '80%',
+ width: "80%",
height: StyleSheet.hairlineWidth,
backgroundColor: colors.horizontalLine,
- alignSelf: 'center',
+ alignSelf: "center",
...alignment.MTmedium,
- ...alignment.MBmedium
+ ...alignment.MBmedium,
},
customerCard: {
- width: '100%',
+ width: "100%",
height: height * 0.4,
- justifyContent: 'center',
- alignItems: 'center'
+ justifyContent: "center",
+ alignItems: "center",
},
customerSubCard: {
- width: '85%',
- height: '90%',
+ width: "85%",
+ height: "90%",
borderWidth: 2,
- borderStyle: 'dashed',
- backgroundColor: '#F3FAFE',
+ borderStyle: "dashed",
+ backgroundColor: "#F3FAFE",
borderRadius: scale(10),
- borderColor: colors.horizontalLine
+ borderColor: colors.horizontalLine,
},
customerHeader: {
- width: '100%',
- height: '30%',
- justifyContent: 'center',
- alignItems: 'center'
+ width: "100%",
+ height: "30%",
+ justifyContent: "center",
+ alignItems: "center",
},
customerContent: {
flex: 1,
- justifyContent: 'flex-start'
+ justifyContent: "flex-start",
},
customerSubContent: {
- width: '80%',
- height: '95%',
- justifyContent: 'space-around'
+ width: "80%",
+ height: "95%",
+ justifyContent: "space-around",
},
customerContentRow: {
- width: '100%',
- height: '50%',
- flexDirection: 'row',
- paddingLeft: '8%'
+ width: "100%",
+ height: "50%",
+ flexDirection: "row",
+ paddingLeft: "8%",
},
customerImgContainer: {
- width: '20%',
- height: '100%',
- justifyContent: 'center',
- alignItems: 'center'
+ width: "20%",
+ height: "100%",
+ justifyContent: "center",
+ alignItems: "center",
},
customerTextContainer: {
flex: 1,
- justifyContent: 'center'
+ justifyContent: "center",
},
customerAddContainer: {
- justifyContent: 'center',
- width: '90%'
+ flex: 1,
+ justifyContent: "center",
+ width: "90%",
},
orderContainer: {
- width: '100%',
+ width: "100%",
flexGrow: 1,
- justifyContent: 'center',
- alignItems: 'center',
+ justifyContent: "center",
+ alignItems: "center",
...alignment.PTxSmall,
- ...alignment.PBxSmall
+ ...alignment.PBxSmall,
},
orderSubContainer: {
- width: '85%',
+ width: "85%",
minHeight: height * 0.3,
borderWidth: 2,
- borderStyle: 'dashed',
+ borderStyle: "dashed",
borderRadius: scale(20),
- backgroundColor: '#F3FAFE',
- borderColor: colors.horizontalLine
+ backgroundColor: "#F3FAFE",
+ borderColor: colors.horizontalLine,
},
orderHeader: {
- width: '100%',
+ width: "100%",
height: height * 0.08,
- justifyContent: 'center',
- alignItems: 'center'
+ justifyContent: "center",
+ alignItems: "center",
},
orderContent: {
- width: '100%',
- alignItems: 'center'
+ width: "100%",
+ alignItems: "center",
},
orderSubContent: {
- width: '90%',
- flexDirection: 'row'
+ width: "90%",
+ flexDirection: "row",
},
orderTextLeftContainer: {
- width: '10%',
- justifyContent: 'center',
- alignItems: 'center'
+ width: "10%",
+ justifyContent: "center",
+ alignItems: "center",
},
orderTextCenterContainer: {
- width: '65%',
- justifyContent: 'center',
- alignItems: 'flex-start'
+ width: "65%",
+ justifyContent: "center",
+ alignItems: "flex-start",
},
orderTextRightContainer: {
- width: '25%',
- justifyContent: 'center',
- alignItems: 'flex-end'
+ width: "25%",
+ justifyContent: "center",
+ alignItems: "flex-end",
},
orderSpacer: {
- width: '100%',
- height: height * 0.02
+ width: "100%",
+ height: height * 0.02,
},
orderRow: {
- width: '100%',
+ width: "100%",
height: height * 0.05,
- alignItems: 'center'
+ alignItems: "center",
},
orderRow2: {
- width: '100%',
+ width: "100%",
height: height * 0.07,
- alignItems: 'center',
- ...alignment.PBlarge
+ alignItems: "center",
+ ...alignment.PBlarge,
},
orderSubRow: {
- width: '90%',
- height: '100%',
- flexDirection: 'row'
+ width: "90%",
+ height: "100%",
+ flexDirection: "row",
},
orderTextLeft: {
- width: '50%',
- height: '100%',
- paddingLeft: '5%',
- justifyContent: 'center',
- alignItems: 'flex-start'
+ width: "50%",
+ height: "100%",
+ paddingLeft: "5%",
+ justifyContent: "center",
+ alignItems: "flex-start",
},
orderTextRight: {
- width: '50%',
- height: '100%',
- alignItems: 'flex-end',
- justifyContent: 'center'
+ width: "50%",
+ height: "100%",
+ alignItems: "flex-end",
+ justifyContent: "center",
},
actionContainer: {
- width: '100%',
+ width: "100%",
height: height * 0.1,
- justifyContent: 'center',
- alignItems: 'center',
+ justifyContent: "center",
+ alignItems: "center",
...alignment.MTmedium,
- ...alignment.MBlarge
+ ...alignment.MBlarge,
},
actionSubContainer: {
- width: '90%',
- height: '80%',
- flexDirection: 'row',
- justifyContent: 'space-around',
- alignItems: 'center',
+ width: "90%",
+ height: "80%",
+ flexDirection: "row",
+ justifyContent: "space-around",
+ alignItems: "center",
borderRadius: scale(10),
- ...alignment.MBlarge
+ ...alignment.MBlarge,
},
cancelBtnStyle: {
- width: '80%',
- height: '70%',
- justifyContent: 'center',
- alignItems: 'center',
- borderRadius: scale(10)
+ width: "80%",
+ height: "70%",
+ justifyContent: "center",
+ alignItems: "center",
+ borderRadius: scale(10),
},
acceptBtnStyle: {
backgroundColor: colors.tagColor,
- width: '80%',
- height: '70%',
- justifyContent: 'center',
- alignItems: 'center',
- borderRadius: scale(10)
+ width: "80%",
+ height: "70%",
+ justifyContent: "center",
+ alignItems: "center",
+ borderRadius: scale(10),
},
removeBtnStyle: {
backgroundColor: colors.tagColor,
- width: '45%',
- height: '70%',
- justifyContent: 'center',
- alignItems: 'center'
+ width: "45%",
+ height: "70%",
+ justifyContent: "center",
+ alignItems: "center",
},
baseSpacer: {
- marginTop: verticalScale(15)
+ marginTop: verticalScale(15),
},
mapContainer: {
- width: '85%',
- alignSelf: 'center',
- height: verticalScale(200)
- }
-}
+ width: "85%",
+ alignSelf: "center",
+ height: verticalScale(200),
+ },
+};
diff --git a/RiderApp/src/screens/Orders/Orders.js b/RiderApp/src/screens/Orders/Orders.js
index 442b058..a6157f6 100644
--- a/RiderApp/src/screens/Orders/Orders.js
+++ b/RiderApp/src/screens/Orders/Orders.js
@@ -1,33 +1,34 @@
-import React, { useEffect, useState, useLayoutEffect } from 'react'
-import { useNavigation } from '@react-navigation/native'
+import React, { useEffect, useState, useLayoutEffect } from "react";
+import { useNavigation } from "@react-navigation/native";
import {
ImageBackground,
StatusBar,
TouchableOpacity,
- View
-} from 'react-native'
-import i18n from '../../../i18n'
-import { AssignedOrders, NewOrders, TextDefault } from '../../components'
-import colors from '../../utilities/colors'
-import useStyle from './style'
+ View,
+} from "react-native";
+import { useTranslation } from "react-i18next";
+import { AssignedOrders, NewOrders, TextDefault } from "../../components";
+import colors from "../../utilities/colors";
+import useStyle from "./style";
-const BACKGROUND_IMAGE = require('../../../assets/images/ui/BG.png')
+const BACKGROUND_IMAGE = require("../../../assets/images/ui/BG.png");
export default function Orders() {
- const styles = useStyle()
- const [isNewOrderSelected, setIsNewOrderSelected] = useState(false)
- const navigation = useNavigation()
+ const { t } = useTranslation();
+ const styles = useStyle();
+ const [isNewOrderSelected, setIsNewOrderSelected] = useState(false);
+ const navigation = useNavigation();
useEffect(() => {
- StatusBar.setBarStyle('light-content')
- }, [isNewOrderSelected])
+ StatusBar.setBarStyle("light-content");
+ }, [isNewOrderSelected]);
useLayoutEffect(() => {
navigation.setOptions({
headerRight: null,
- headerTitle: i18n.t('Orders')
- })
- }, [navigation])
+ headerTitle: t("Orders"),
+ });
+ }, [t, navigation]);
return (
@@ -41,11 +42,12 @@ export default function Orders() {
{
backgroundColor: !isNewOrderSelected
? colors.buttonBackgroundPink
- : 'transparent'
- }
- ]}>
+ : "transparent",
+ },
+ ]}
+ >
- {i18n.t('myOrders')}
+ {t("myOrders")}
+ : "transparent",
+ },
+ ]}
+ >
- {i18n.t('newOrders')}
+ {t("newOrders")}
{!isNewOrderSelected ? : }
- )
+ );
}
diff --git a/RiderApp/src/utilities/alignment.js b/RiderApp/src/utilities/alignment.js
index 1c2b7a5..b71b3d5 100644
--- a/RiderApp/src/utilities/alignment.js
+++ b/RiderApp/src/utilities/alignment.js
@@ -1,135 +1,135 @@
-import { scale } from './scaling'
+import { scale } from "./scaling";
-const XSMALL = 5
-const SMALL = 10
-const MEDIUM = 15
-const LARGE = 20
+const XSMALL = 5;
+const SMALL = 10;
+const MEDIUM = 15;
+const LARGE = 20;
export const alignment = {
MxSmall: {
- margin: scale(XSMALL)
+ margin: scale(XSMALL),
},
MBxSmall: {
- marginBottom: scale(XSMALL)
+ marginBottom: scale(XSMALL),
},
MTxSmall: {
- marginTop: scale(XSMALL)
+ marginTop: scale(XSMALL),
},
MRxSmall: {
- marginRight: scale(XSMALL)
+ marginRight: scale(XSMALL),
},
MLxSmall: {
- marginLeft: scale(XSMALL)
+ marginLeft: scale(XSMALL),
},
Msmall: {
- margin: scale(SMALL)
+ margin: scale(SMALL),
},
MBsmall: {
- marginBottom: scale(SMALL)
+ marginBottom: scale(SMALL),
},
MTsmall: {
- marginTop: scale(SMALL)
+ marginTop: scale(SMALL),
},
MRsmall: {
- marginRight: scale(SMALL)
+ marginRight: scale(SMALL),
},
MLsmall: {
- marginLeft: scale(SMALL)
+ marginLeft: scale(SMALL),
},
Mmedium: {
- margin: scale(MEDIUM)
+ margin: scale(MEDIUM),
},
MBmedium: {
- marginBottom: scale(MEDIUM)
+ marginBottom: scale(MEDIUM),
},
MTmedium: {
- marginTop: scale(MEDIUM)
+ marginTop: scale(MEDIUM),
},
MRmedium: {
- marginRight: scale(MEDIUM)
+ marginRight: scale(MEDIUM),
},
MLmedium: {
- marginLeft: scale(MEDIUM)
+ marginLeft: scale(MEDIUM),
},
Mlarge: {
- margin: scale(LARGE)
+ margin: scale(LARGE),
},
MBlarge: {
- marginBottom: scale(LARGE)
+ marginBottom: scale(LARGE),
},
MTlarge: {
- marginTop: scale(LARGE)
+ marginTop: scale(LARGE),
},
MRlarge: {
- marginRight: scale(LARGE)
+ marginRight: scale(LARGE),
},
MLlarge: {
- marginLeft: scale(LARGE)
+ marginLeft: scale(LARGE),
},
// Padding
PxSmall: {
- padding: scale(XSMALL)
+ padding: scale(XSMALL),
},
PBxSmall: {
- paddingBottom: scale(XSMALL)
+ paddingBottom: scale(XSMALL),
},
PTxSmall: {
- paddingTop: scale(XSMALL)
+ paddingTop: scale(XSMALL),
},
PRxSmall: {
- paddingRight: scale(XSMALL)
+ paddingRight: scale(XSMALL),
},
PLxSmall: {
- paddingLeft: scale(XSMALL)
+ paddingLeft: scale(XSMALL),
},
Psmall: {
- padding: scale(SMALL)
+ padding: scale(SMALL),
},
PBsmall: {
- paddingBottom: scale(SMALL)
+ paddingBottom: scale(SMALL),
},
PTsmall: {
- paddingTop: scale(SMALL)
+ paddingTop: scale(SMALL),
},
PRsmall: {
- paddingRight: scale(SMALL)
+ paddingRight: scale(SMALL),
},
PLsmall: {
- paddingLeft: scale(SMALL)
+ paddingLeft: scale(SMALL),
},
Pmedium: {
- padding: scale(MEDIUM)
+ padding: scale(MEDIUM),
},
PBmedium: {
- paddingBottom: scale(MEDIUM)
+ paddingBottom: scale(MEDIUM),
},
PTmedium: {
- paddingTop: scale(MEDIUM)
+ paddingTop: scale(MEDIUM),
},
PRmedium: {
- paddingRight: scale(MEDIUM)
+ paddingRight: scale(MEDIUM),
},
PLmedium: {
- paddingLeft: scale(MEDIUM)
+ paddingLeft: scale(MEDIUM),
},
Plarge: {
- padding: scale(LARGE)
+ padding: scale(LARGE),
},
PBlarge: {
- paddingBottom: scale(LARGE)
+ paddingBottom: scale(LARGE),
},
PTlarge: {
- paddingTop: scale(LARGE)
+ paddingTop: scale(LARGE),
},
PRlarge: {
- paddingRight: scale(LARGE)
+ paddingRight: scale(LARGE),
},
PLlarge: {
- paddingLeft: scale(LARGE)
- }
-}
+ paddingLeft: scale(LARGE),
+ },
+};