Merge pull request #5 from Ninjas-Code-official/adnan-admin-dashboard-singlevendor
@Adnan admin dashboard singlevendor
This commit is contained in:
commit
2f45f293a7
|
@ -0,0 +1,8 @@
|
||||||
|
NODE_PATH=./src
|
||||||
|
SKIP_PREFLIGHT_CHECK=true
|
||||||
|
REACT_APP_CLOUDINARY_UPLOAD_URL = https://api.cloudinary.com/v1_1/dimjm4ald/image/upload
|
||||||
|
REACT_APP_SERVER_URL = http://localhost:8000/
|
||||||
|
REACT_APP_WS_SERVER_URL = ws://localhost:8000/
|
||||||
|
REACT_APP_CLOUDINARY_CATEGORY = hmtkg7s5
|
||||||
|
REACT_APP_CLOUDINARY_FOOD = wdgvyas8
|
||||||
|
REACT_APP_ENV = “dev”
|
|
@ -0,0 +1,10 @@
|
||||||
|
All variables should be appended by REACT_APP_
|
||||||
|
|
||||||
|
NODE_PATH=./src
|
||||||
|
SKIP_PREFLIGHT_CHECK=true
|
||||||
|
REACT_APP_CLOUDINARY_UPLOAD_URL = <Cloudinary URL>
|
||||||
|
REACT_APP_SERVER_URL = <Your SERVER URL>
|
||||||
|
REACT_APP_WS_SERVER_URL = <SERVER URL with appending "ws" for local or "wss" for remote>
|
||||||
|
REACT_APP_CLOUDINARY_CATEGORY = <Folder ID from Cloudinary>
|
||||||
|
REACT_APP_CLOUDINARY_FOOD = <Folder ID from Cloudinary>
|
||||||
|
REACT_APP_ENV = <Alias that is mentioned in package.json script>
|
|
@ -0,0 +1,8 @@
|
||||||
|
NODE_PATH=./src
|
||||||
|
SKIP_PREFLIGHT_CHECK=true
|
||||||
|
REACT_APP_CLOUDINARY_UPLOAD_URL = https://api.cloudinary.com/v1_1/dimjm4ald/image/upload
|
||||||
|
REACT_APP_SERVER_URL = https://prod-enatega-single-api.herokuapp.com/
|
||||||
|
REACT_APP_WS_SERVER_URL = wss://prod-enatega-single-api.herokuapp.com/
|
||||||
|
REACT_APP_CLOUDINARY_CATEGORY = hmtkg7s5
|
||||||
|
REACT_APP_CLOUDINARY_FOOD = wdgvyas8
|
||||||
|
REACT_APP_ENV = "prod"
|
|
@ -0,0 +1,8 @@
|
||||||
|
NODE_PATH=./src
|
||||||
|
SKIP_PREFLIGHT_CHECK=true
|
||||||
|
REACT_APP_CLOUDINARY_UPLOAD_URL = https://api.cloudinary.com/v1_1/dimjm4ald/image/upload
|
||||||
|
REACT_APP_SERVER_URL = https://staging-enatega-single-api.herokuapp.com/
|
||||||
|
REACT_APP_WS_SERVER_URL = wss://staging-enatega-single-api.herokuapp.com/
|
||||||
|
REACT_APP_CLOUDINARY_CATEGORY = hmtkg7s5
|
||||||
|
REACT_APP_CLOUDINARY_FOOD = wdgvyas8
|
||||||
|
REACT_APP_ENV = “staging”
|
|
@ -0,0 +1,5 @@
|
||||||
|
src/assets/*
|
||||||
|
public/*
|
||||||
|
./node_modules
|
||||||
|
./patches
|
||||||
|
./history
|
|
@ -0,0 +1,28 @@
|
||||||
|
{
|
||||||
|
"env": {
|
||||||
|
"browser": true,
|
||||||
|
"es6": true
|
||||||
|
},
|
||||||
|
"extends": [
|
||||||
|
"plugin:react/recommended",
|
||||||
|
"standard"
|
||||||
|
],
|
||||||
|
"globals": {
|
||||||
|
"Atomics": "readonly",
|
||||||
|
"SharedArrayBuffer": "readonly"
|
||||||
|
},
|
||||||
|
"parserOptions": {
|
||||||
|
"ecmaFeatures": {
|
||||||
|
"jsx": true
|
||||||
|
},
|
||||||
|
"ecmaVersion": 11,
|
||||||
|
"sourceType": "module"
|
||||||
|
},
|
||||||
|
"plugins": [
|
||||||
|
"react"
|
||||||
|
],
|
||||||
|
"rules": {
|
||||||
|
"space-before-function-paren": ["error", "never"],
|
||||||
|
"react/prop-types": 0
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
/build
|
||||||
|
/node_modules
|
||||||
|
package-lock.json
|
||||||
|
yarn.lock
|
|
@ -3,11 +3,11 @@ import { Route, Switch } from 'react-router-dom'
|
||||||
// reactstrap components
|
// reactstrap components
|
||||||
import { Container } from 'reactstrap'
|
import { Container } from 'reactstrap'
|
||||||
// core components
|
// core components
|
||||||
import AdminNavbar from 'components/Navbars/AdminNavbar.jsx'
|
import AdminNavbar from '../components/Navbars/AdminNavbar.jsx'
|
||||||
import AdminFooter from 'components/Footers/AdminFooter.jsx'
|
import AdminFooter from '../components/Footers/AdminFooter.jsx'
|
||||||
import Sidebar from 'components/Sidebar/Sidebar.jsx'
|
import Sidebar from '../components/Sidebar/Sidebar.jsx'
|
||||||
|
|
||||||
import routes from 'routes.js'
|
import routes from './../routes.js'
|
||||||
|
|
||||||
const Admin = props => {
|
const Admin = props => {
|
||||||
var divRef = useRef(null)
|
var divRef = useRef(null)
|
||||||
|
@ -49,7 +49,7 @@ const Admin = props => {
|
||||||
routes={routes}
|
routes={routes}
|
||||||
logo={{
|
logo={{
|
||||||
innerLink: '/admin/dashboard',
|
innerLink: '/admin/dashboard',
|
||||||
imgSrc: require('assets/img/brand/logo.png'),
|
imgSrc: require('../assets/img/brand/logo.png'),
|
||||||
imgAlt: '...'
|
imgAlt: '...'
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -4,10 +4,10 @@ import { Route, Switch } from 'react-router-dom'
|
||||||
import { Container, Row } from 'reactstrap'
|
import { Container, Row } from 'reactstrap'
|
||||||
|
|
||||||
// core components
|
// core components
|
||||||
import AuthNavbar from 'components/Navbars/AuthNavbar.jsx'
|
import AuthNavbar from '../components/Navbars/AuthNavbar.jsx'
|
||||||
import AuthFooter from 'components/Footers/AuthFooter.jsx'
|
import AuthFooter from '../components/Footers/AuthFooter.jsx'
|
||||||
|
|
||||||
import routes from 'routes.js'
|
import routes from '../routes.js'
|
||||||
|
|
||||||
function Auth(props) {
|
function Auth(props) {
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/* eslint-disable react/display-name */
|
/* eslint-disable react/display-name */
|
||||||
import React, { useState } from 'react'
|
import React, { useState } from 'react'
|
||||||
import { Container, Badge, Row, Card, Modal } from 'reactstrap'
|
import { Container, Badge, Row, Card, Modal } from 'reactstrap'
|
||||||
import Header from 'components/Headers/Header.jsx'
|
import Header from '../components/Headers/Header.jsx'
|
||||||
import AddonComponent from '../components/Addon/Addon'
|
import AddonComponent from '../components/Addon/Addon'
|
||||||
import { addons, deleteAddon } from '../apollo/server'
|
import { addons, deleteAddon } from '../apollo/server'
|
||||||
import CustomLoader from '../components/Loader/CustomLoader'
|
import CustomLoader from '../components/Loader/CustomLoader'
|
||||||
|
|
|
@ -8,7 +8,7 @@ import CustomLoader from '../components/Loader/CustomLoader'
|
||||||
// reactstrap components
|
// reactstrap components
|
||||||
import { Badge, Card, Container, Row, Modal } from 'reactstrap'
|
import { Badge, Card, Container, Row, Modal } from 'reactstrap'
|
||||||
// core components
|
// core components
|
||||||
import Header from 'components/Headers/Header.jsx'
|
import Header from '../components/Headers/Header.jsx'
|
||||||
import { categories, deleteCategory, getFoods } from '../apollo/server'
|
import { categories, deleteCategory, getFoods } from '../apollo/server'
|
||||||
import DataTable from 'react-data-table-component'
|
import DataTable from 'react-data-table-component'
|
||||||
import orderBy from 'lodash/orderBy'
|
import orderBy from 'lodash/orderBy'
|
||||||
|
|
|
@ -3,7 +3,7 @@ import { withTranslation } from 'react-i18next'
|
||||||
import { Container } from 'reactstrap'
|
import { Container } from 'reactstrap'
|
||||||
import { Query } from 'react-apollo'
|
import { Query } from 'react-apollo'
|
||||||
import gql from 'graphql-tag'
|
import gql from 'graphql-tag'
|
||||||
import Header from 'components/Headers/Header.jsx'
|
import Header from '../components/Headers/Header.jsx'
|
||||||
import { getConfiguration } from '../apollo/server'
|
import { getConfiguration } from '../apollo/server'
|
||||||
import OrderConfiguration from '../components/Configuration/Order/Order'
|
import OrderConfiguration from '../components/Configuration/Order/Order'
|
||||||
import EmailConfiguration from '../components/Configuration/Email/Email'
|
import EmailConfiguration from '../components/Configuration/Email/Email'
|
||||||
|
|
|
@ -8,7 +8,7 @@ import CouponComponent from '../components/Coupon/Coupon'
|
||||||
import { Badge, Card, Container, Row, Modal } from 'reactstrap'
|
import { Badge, Card, Container, Row, Modal } from 'reactstrap'
|
||||||
|
|
||||||
// core components
|
// core components
|
||||||
import Header from 'components/Headers/Header.jsx'
|
import Header from '../components/Headers/Header.jsx'
|
||||||
import CustomLoader from '../components/Loader/CustomLoader'
|
import CustomLoader from '../components/Loader/CustomLoader'
|
||||||
import DataTable from 'react-data-table-component'
|
import DataTable from 'react-data-table-component'
|
||||||
import orderBy from 'lodash/orderBy'
|
import orderBy from 'lodash/orderBy'
|
||||||
|
|
|
@ -16,7 +16,7 @@ import {
|
||||||
Col
|
Col
|
||||||
} from 'reactstrap'
|
} from 'reactstrap'
|
||||||
|
|
||||||
import Header from 'components/Headers/Header.jsx'
|
import Header from '../components/Headers/Header.jsx'
|
||||||
import { Query } from 'react-apollo'
|
import { Query } from 'react-apollo'
|
||||||
import {
|
import {
|
||||||
getDashboardTotal,
|
getDashboardTotal,
|
||||||
|
|
|
@ -6,7 +6,7 @@ import { withTranslation } from 'react-i18next'
|
||||||
// reactstrap components
|
// reactstrap components
|
||||||
import { Badge, Card, Container, Row, Media, Modal } from 'reactstrap'
|
import { Badge, Card, Container, Row, Media, Modal } from 'reactstrap'
|
||||||
// core components
|
// core components
|
||||||
import Header from 'components/Headers/Header.jsx'
|
import Header from '../components/Headers/Header.jsx'
|
||||||
import { getFoods, deleteFood } from '../apollo/server'
|
import { getFoods, deleteFood } from '../apollo/server'
|
||||||
import FoodComponent from '../components/Food/Food'
|
import FoodComponent from '../components/Food/Food'
|
||||||
import CustomLoader from '../components/Loader/CustomLoader'
|
import CustomLoader from '../components/Loader/CustomLoader'
|
||||||
|
|
|
@ -2,7 +2,7 @@ import React, { useState } from 'react'
|
||||||
import gql from 'graphql-tag'
|
import gql from 'graphql-tag'
|
||||||
import { Mutation } from 'react-apollo'
|
import { Mutation } from 'react-apollo'
|
||||||
import { withTranslation } from 'react-i18next'
|
import { withTranslation } from 'react-i18next'
|
||||||
import Header from 'components/Headers/Header.jsx'
|
import Header from '../components/Headers/Header.jsx'
|
||||||
import { sendNotificationUser } from '../apollo/server'
|
import { sendNotificationUser } from '../apollo/server'
|
||||||
import CustomLoader from '../components/Loader/CustomLoader'
|
import CustomLoader from '../components/Loader/CustomLoader'
|
||||||
import { validateFunc } from '../constraints/constraints'
|
import { validateFunc } from '../constraints/constraints'
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/* eslint-disable react/display-name */
|
/* eslint-disable react/display-name */
|
||||||
import React, { useState } from 'react'
|
import React, { useState } from 'react'
|
||||||
import { Badge, Container, Row, Card, Modal } from 'reactstrap'
|
import { Badge, Container, Row, Card, Modal } from 'reactstrap'
|
||||||
import Header from 'components/Headers/Header.jsx'
|
import Header from '../components/Headers/Header.jsx'
|
||||||
import OptionComponent from '../components/Option/Option'
|
import OptionComponent from '../components/Option/Option'
|
||||||
import CustomLoader from '../components/Loader/CustomLoader'
|
import CustomLoader from '../components/Loader/CustomLoader'
|
||||||
import DataTable from 'react-data-table-component'
|
import DataTable from 'react-data-table-component'
|
||||||
|
|
|
@ -3,7 +3,7 @@ import { withTranslation } from 'react-i18next'
|
||||||
import { Container, Row, Card, Modal } from 'reactstrap'
|
import { Container, Row, Card, Modal } from 'reactstrap'
|
||||||
import OrderComponent from '../components/Order/Order'
|
import OrderComponent from '../components/Order/Order'
|
||||||
import OrdersData from '../components/Order/OrderData'
|
import OrdersData from '../components/Order/OrderData'
|
||||||
import Header from 'components/Headers/Header.jsx'
|
import Header from '../components/Headers/Header.jsx'
|
||||||
import { Query, compose, withApollo } from 'react-apollo'
|
import { Query, compose, withApollo } from 'react-apollo'
|
||||||
import gql from 'graphql-tag'
|
import gql from 'graphql-tag'
|
||||||
import { getOrders } from '../apollo/server'
|
import { getOrders } from '../apollo/server'
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
import React from 'react'
|
import React from 'react'
|
||||||
import { withTranslation } from 'react-i18next'
|
import { withTranslation } from 'react-i18next'
|
||||||
import { Container, Row, Card } from 'reactstrap'
|
import { Container, Row, Card } from 'reactstrap'
|
||||||
import Header from 'components/Headers/Header.jsx'
|
import Header from '../components/Headers/Header.jsx'
|
||||||
import CustomLoader from '../components/Loader/CustomLoader'
|
import CustomLoader from '../components/Loader/CustomLoader'
|
||||||
import { Query, compose, withApollo } from 'react-apollo'
|
import { Query, compose, withApollo } from 'react-apollo'
|
||||||
import gql from 'graphql-tag'
|
import gql from 'graphql-tag'
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
/node_modules
|
|
@ -47,6 +47,7 @@ export default function App() {
|
||||||
|
|
||||||
setupClient(client)
|
setupClient(client)
|
||||||
await i18n.initAsync()
|
await i18n.initAsync()
|
||||||
|
// load fonts
|
||||||
await Font.loadAsync({
|
await Font.loadAsync({
|
||||||
Poppin300: require('./src/assets/font/Poppin/Poppins-Light.ttf'),
|
Poppin300: require('./src/assets/font/Poppin/Poppins-Light.ttf'),
|
||||||
Poppin400: require('./src/assets/font/Poppin/Poppins-Regular.ttf'),
|
Poppin400: require('./src/assets/font/Poppin/Poppins-Regular.ttf'),
|
||||||
|
|
|
@ -47,7 +47,7 @@
|
||||||
"versionCode": 22,
|
"versionCode": 22,
|
||||||
"package": "com.enatega.vendor",
|
"package": "com.enatega.vendor",
|
||||||
"googleServicesFile": "./google-services-prod.json",
|
"googleServicesFile": "./google-services-prod.json",
|
||||||
"useNextNotificationsApi": true,
|
|
||||||
"config": {
|
"config": {
|
||||||
"googleMaps": {
|
"googleMaps": {
|
||||||
"apiKey": ""
|
"apiKey": ""
|
||||||
|
|
|
@ -3,54 +3,48 @@
|
||||||
* path: '/environment.js' (root of your project)
|
* path: '/environment.js' (root of your project)
|
||||||
******************************/
|
******************************/
|
||||||
|
|
||||||
import Constants from 'expo-constants'
|
import Constants from "expo-constants";
|
||||||
|
|
||||||
const ENV = {
|
const ENV = {
|
||||||
development: {
|
development: {
|
||||||
GRAPHQL_URL: 'http://192.168.100.90:8000/graphql',
|
GRAPHQL_URL: "http://10.97.28.88.90:8000/graphql",
|
||||||
WS_GRAPHQL_URL: 'ws://192.168.100.90:8000/graphql',
|
WS_GRAPHQL_URL: "ws://10.97.28.88.90:8000/graphql",
|
||||||
SERVER_URL: 'http://192.168.100.90:8000/', // put / at the end of server url
|
SERVER_URL: "http://10.97.28.88.90:8000/", // put / at the end of server url
|
||||||
IOS_CLIENT_ID_GOOGLE:
|
IOS_CLIENT_ID_GOOGLE: "",
|
||||||
'',
|
ANDROID_CLIENT_ID_GOOGLE: "",
|
||||||
ANDROID_CLIENT_ID_GOOGLE:
|
FACEBOOK_APP_ID: "404956210315749",
|
||||||
'',
|
AMPLITUDE_API_KEY: "",
|
||||||
FACEBOOK_APP_ID: '404956210315749',
|
STRIPE_PUBLIC_KEY: "",
|
||||||
AMPLITUDE_API_KEY: '',
|
STRIPE_IMAGE_URL: "http://10.97.28.88.90:8000/assets/images/logo.png",
|
||||||
STRIPE_PUBLIC_KEY: '',
|
STRIPE_STORE_NAME: "Enatega",
|
||||||
STRIPE_IMAGE_URL: 'http://192.168.100.90:8000/assets/images/logo.png',
|
|
||||||
STRIPE_STORE_NAME: 'Enatega'
|
|
||||||
},
|
},
|
||||||
staging: {
|
staging: {
|
||||||
GRAPHQL_URL: 'https://staging-enatega-single-api.herokuapp.com/graphql',
|
GRAPHQL_URL: "https://staging-enatega-single-api.herokuapp.com/graphql",
|
||||||
WS_GRAPHQL_URL: 'wss://staging-enatega-single-api.herokuapp.com/graphql',
|
WS_GRAPHQL_URL: "wss://staging-enatega-single-api.herokuapp.com/graphql",
|
||||||
SERVER_URL: 'https://staging-enatega-single-api.herokuapp.com/', // put / at the end of server url
|
SERVER_URL: "https://staging-enatega-single-api.herokuapp.com/", // put / at the end of server url
|
||||||
IOS_CLIENT_ID_GOOGLE:
|
IOS_CLIENT_ID_GOOGLE: "",
|
||||||
'',
|
ANDROID_CLIENT_ID_GOOGLE: "",
|
||||||
ANDROID_CLIENT_ID_GOOGLE:
|
FACEBOOK_APP_ID: "404956210315749",
|
||||||
'',
|
AMPLITUDE_API_KEY: "",
|
||||||
FACEBOOK_APP_ID: '404956210315749',
|
STRIPE_PUBLIC_KEY: "",
|
||||||
AMPLITUDE_API_KEY: '',
|
|
||||||
STRIPE_PUBLIC_KEY: '',
|
|
||||||
STRIPE_IMAGE_URL:
|
STRIPE_IMAGE_URL:
|
||||||
'https://staging-enatega-single-api.herokuapp.com/assets/images/logo.png',
|
"https://staging-enatega-single-api.herokuapp.com/assets/images/logo.png",
|
||||||
STRIPE_STORE_NAME: 'Enatega'
|
STRIPE_STORE_NAME: "Enatega",
|
||||||
},
|
},
|
||||||
production: {
|
production: {
|
||||||
GRAPHQL_URL: 'https://prod-enatega-single-api.herokuapp.com/graphql',
|
GRAPHQL_URL: "https://prod-enatega-single-api.herokuapp.com/graphql",
|
||||||
WS_GRAPHQL_URL: 'wss://prod-enatega-single-api.herokuapp.com/graphql',
|
WS_GRAPHQL_URL: "wss://prod-enatega-single-api.herokuapp.com/graphql",
|
||||||
SERVER_URL: 'https://prod-enatega-single-api.herokuapp.com/', // put / at the end of server url
|
SERVER_URL: "https://prod-enatega-single-api.herokuapp.com/", // put / at the end of server url
|
||||||
IOS_CLIENT_ID_GOOGLE:
|
IOS_CLIENT_ID_GOOGLE: "",
|
||||||
'',
|
ANDROID_CLIENT_ID_GOOGLE: "",
|
||||||
ANDROID_CLIENT_ID_GOOGLE:
|
FACEBOOK_APP_ID: "3017447961609878",
|
||||||
'',
|
AMPLITUDE_API_KEY: "",
|
||||||
FACEBOOK_APP_ID: '3017447961609878',
|
STRIPE_PUBLIC_KEY: "",
|
||||||
AMPLITUDE_API_KEY: '',
|
|
||||||
STRIPE_PUBLIC_KEY: '',
|
|
||||||
STRIPE_IMAGE_URL:
|
STRIPE_IMAGE_URL:
|
||||||
'https://prod-enatega-single-api.herokuapp.com/assets/images/logo.png',
|
"https://prod-enatega-single-api.herokuapp.com/assets/images/logo.png",
|
||||||
STRIPE_STORE_NAME: 'Enatega'
|
STRIPE_STORE_NAME: "Enatega",
|
||||||
}
|
},
|
||||||
}
|
};
|
||||||
|
|
||||||
const getEnvVars = (env = Constants.manifest.releaseChannel) => {
|
const getEnvVars = (env = Constants.manifest.releaseChannel) => {
|
||||||
// What is __DEV__ ?
|
// What is __DEV__ ?
|
||||||
|
@ -58,14 +52,14 @@ const getEnvVars = (env = Constants.manifest.releaseChannel) => {
|
||||||
// __DEV__ is true when run locally, but false when published.
|
// __DEV__ is true when run locally, but false when published.
|
||||||
// eslint-disable-next-line no-undef
|
// eslint-disable-next-line no-undef
|
||||||
if (__DEV__) {
|
if (__DEV__) {
|
||||||
return ENV.development
|
return ENV.development;
|
||||||
} else if (env === 'production') {
|
} else if (env === "production") {
|
||||||
return ENV.production
|
return ENV.production;
|
||||||
} else if (env === 'staging') {
|
} else if (env === "staging") {
|
||||||
return ENV.staging
|
return ENV.staging;
|
||||||
} else {
|
} else {
|
||||||
return ENV.production
|
return ENV.production;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
};
|
||||||
|
|
||||||
export default getEnvVars
|
export default getEnvVars;
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -25,14 +25,15 @@
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@apollo/react-hooks": "^3.1.3",
|
"@apollo/react-hooks": "^3.1.3",
|
||||||
"@expo/vector-icons": "^12.0.0",
|
"@expo/vector-icons": "^13.0.0",
|
||||||
"@ptomasroos/react-native-multi-slider": "^2.2.2",
|
"@ptomasroos/react-native-multi-slider": "^2.2.2",
|
||||||
"@react-native-async-storage/async-storage": "~1.15.0",
|
"@react-native-async-storage/async-storage": "~1.17.3",
|
||||||
"@react-native-community/masked-view": "0.1.10",
|
"@react-native-community/masked-view": "0.1.11",
|
||||||
"@react-navigation/drawer": "^5.12.5",
|
"@react-navigation/drawer": "^6.6.0",
|
||||||
"@react-navigation/native": "^5.9.4",
|
"@react-navigation/native": "^6.1.4",
|
||||||
"@react-navigation/stack": "^5.14.5",
|
"@react-navigation/native-stack": "^6.9.10",
|
||||||
"apollo-boost": "^0.3.1",
|
"@react-navigation/stack": "^6.3.14",
|
||||||
|
"apollo-boost": "^0.4.9",
|
||||||
"apollo-cache-inmemory": "^1.5.1",
|
"apollo-cache-inmemory": "^1.5.1",
|
||||||
"apollo-cache-persist": "^0.1.1",
|
"apollo-cache-persist": "^0.1.1",
|
||||||
"apollo-client": "^2.5.1",
|
"apollo-client": "^2.5.1",
|
||||||
|
@ -41,72 +42,79 @@
|
||||||
"apollo-link-state": "^0.4.2",
|
"apollo-link-state": "^0.4.2",
|
||||||
"apollo-link-ws": "^1.0.20",
|
"apollo-link-ws": "^1.0.20",
|
||||||
"apollo-upload-client": "^10.0.0",
|
"apollo-upload-client": "^10.0.0",
|
||||||
"expo": "^44.0.0",
|
"apollo-utilities": "^1.3.4",
|
||||||
"expo-analytics-amplitude": "~11.1.0",
|
"deprecated-react-native-prop-types": "^4.0.0",
|
||||||
|
"expo": "^47.0.0",
|
||||||
|
"expo-analytics-amplitude": "~11.3.0",
|
||||||
"expo-app-auth": "~11.1.0",
|
"expo-app-auth": "~11.1.0",
|
||||||
"expo-app-loading": "~1.3.0",
|
"expo-app-loading": "~2.1.1",
|
||||||
"expo-apple-authentication": "~4.1.0",
|
"expo-apple-authentication": "~5.0.1",
|
||||||
"expo-application": "~4.0.1",
|
"expo-application": "~5.0.1",
|
||||||
"expo-asset": "~8.4.6",
|
"expo-asset": "~8.7.0",
|
||||||
"expo-constants": "~13.0.1",
|
"expo-camera": "~13.1.0",
|
||||||
"expo-device": "~4.1.0",
|
"expo-constants": "~14.0.2",
|
||||||
"expo-facebook": "~12.1.0",
|
"expo-contacts": "~11.0.1",
|
||||||
"expo-font": "~10.0.4",
|
"expo-device": "~5.0.0",
|
||||||
"expo-google-app-auth": "~8.3.0",
|
"expo-facebook": "~12.2.0",
|
||||||
"expo-image-picker": "~12.0.1",
|
"expo-font": "~11.0.1",
|
||||||
"expo-linking": "~3.0.0",
|
"expo-google-app-auth": "^8.3.0",
|
||||||
"expo-localization": "~12.0.0",
|
"expo-image-picker": "~14.0.2",
|
||||||
"expo-location": "~14.0.1",
|
"expo-linking": "~3.3.1",
|
||||||
"expo-notifications": "~0.14.0",
|
"expo-localization": "~14.0.0",
|
||||||
"expo-splash-screen": "~0.14.1",
|
"expo-location": "~15.0.1",
|
||||||
"expo-tracking-transparency": "~2.1.0",
|
"expo-notifications": "~0.17.0",
|
||||||
"expo-updates": "~0.11.6",
|
"expo-sensors": "~12.0.1",
|
||||||
"graphql": "^14.5.8",
|
"expo-splash-screen": "~0.17.5",
|
||||||
|
"expo-tracking-transparency": "~3.0.1",
|
||||||
|
"expo-updates": "~0.15.6",
|
||||||
|
"graphql": "^16.6.0",
|
||||||
"graphql-tag": "^2.10.1",
|
"graphql-tag": "^2.10.1",
|
||||||
"i18n-js": "^3.2.2",
|
"i18n-js": "^3.2.2",
|
||||||
"lodash": "^4.17.21",
|
"lodash": "^4.17.21",
|
||||||
"patch-package": "^6.2.2",
|
"patch-package": "^6.5.1",
|
||||||
"react": "17.0.1",
|
"react": "18.1.0",
|
||||||
"react-apollo": "^2.5.8",
|
"react-apollo": "^3.1.5",
|
||||||
"react-native": "0.64.3",
|
"react-native": "0.70.5",
|
||||||
"react-native-flash-message": "^0.1.23",
|
"react-native-button": "^3.0.1",
|
||||||
|
"react-native-flash-message": "^0.4.0",
|
||||||
"react-native-flatlist-slider": "^1.0.5",
|
"react-native-flatlist-slider": "^1.0.5",
|
||||||
"react-native-gesture-handler": "~2.1.0",
|
"react-native-gesture-handler": "~2.8.0",
|
||||||
"react-native-gifted-chat": "^0.16.3",
|
"react-native-gifted-chat": "^1.1.1",
|
||||||
"react-native-maps": "0.29.4",
|
"react-native-i18n": "1.0.0",
|
||||||
|
"react-native-maps": "1.3.2",
|
||||||
"react-native-material-textfield": "^0.16.1",
|
"react-native-material-textfield": "^0.16.1",
|
||||||
"react-native-modal": "^11.10.0",
|
"react-native-modal": "^13.0.1",
|
||||||
"react-native-modalize": "^2.0.8",
|
"react-native-modalize": "^2.0.8",
|
||||||
"react-native-reanimated": "~2.3.1",
|
"react-native-reanimated": "~2.12.0",
|
||||||
"react-native-safe-area-context": "3.3.2",
|
"react-native-safe-area-context": "4.4.1",
|
||||||
"react-native-screens": "~3.10.1",
|
"react-native-screens": "~3.18.0",
|
||||||
"react-native-star-rating": "^1.1.0",
|
"react-native-star-rating": "^1.1.0",
|
||||||
"react-native-svg": "12.1.1",
|
"react-native-svg": "13.4.0",
|
||||||
"react-native-timeline-flatlist": "^0.7.2",
|
"react-native-timeline-flatlist": "^0.8.0",
|
||||||
"react-native-webview": "11.15.0",
|
"react-native-webview": "11.23.1",
|
||||||
"subscriptions-transport-ws": "^0.9.16",
|
"subscriptions-transport-ws": "^0.11.0",
|
||||||
"uuid": "^3.3.2",
|
"uuid": "^3.3.2",
|
||||||
"validate.js": "^0.12.0"
|
"validate.js": "^0.13.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"babel-jest": "^24.8.0",
|
"babel-jest": "^29.4.3",
|
||||||
"babel-preset-expo": "9.0.2",
|
"babel-preset-expo": "~9.2.1",
|
||||||
"babel-preset-react-native": "^4.0.1",
|
"babel-preset-react-native": "^4.0.1",
|
||||||
"eslint": "^7.28.0",
|
"eslint": "^8.34.0",
|
||||||
"eslint-config-standard": "^14.1.1",
|
"eslint-config-standard": "^17.0.0",
|
||||||
"eslint-plugin-import": "^2.20.2",
|
"eslint-plugin-import": "^2.20.2",
|
||||||
"eslint-plugin-node": "^11.1.0",
|
"eslint-plugin-node": "^11.1.0",
|
||||||
"eslint-plugin-promise": "^4.2.1",
|
"eslint-plugin-promise": "^6.1.1",
|
||||||
"eslint-plugin-react": "^7.20.0",
|
"eslint-plugin-react": "^7.20.0",
|
||||||
"eslint-plugin-standard": "^4.0.1",
|
"eslint-plugin-standard": "^5.0.0",
|
||||||
"husky": "^4.3.8",
|
"husky": "^8.0.3",
|
||||||
"jest": "^26.6.3",
|
"jest": "^29.4.3",
|
||||||
"jest-react-native": "^18.0.0",
|
"jest-react-native": "^18.0.0",
|
||||||
"lint-staged": "^10.5.4",
|
"lint-staged": "^13.1.2",
|
||||||
"metro-react-native-babel-preset": "^0.54.1",
|
"metro-react-native-babel-preset": "^0.75.0",
|
||||||
"prettier": "^2.3.1",
|
"prettier": "^2.3.1",
|
||||||
"prettier-config-standard": "^1.0.1",
|
"prettier-config-standard": "^5.0.0",
|
||||||
"react-test-renderer": "^16.8.6"
|
"react-test-renderer": "^18.2.0"
|
||||||
},
|
},
|
||||||
"jest": {
|
"jest": {
|
||||||
"preset": "react-native",
|
"preset": "react-native",
|
||||||
|
|
|
@ -0,0 +1,38 @@
|
||||||
|
diff --git a/node_modules/react-native-button/Button.js b/node_modules/react-native-button/Button.js
|
||||||
|
index b248176..3c6aefa 100644
|
||||||
|
--- a/node_modules/react-native-button/Button.js
|
||||||
|
+++ b/node_modules/react-native-button/Button.js
|
||||||
|
@@ -1,4 +1,5 @@
|
||||||
|
import PropTypes from 'prop-types';
|
||||||
|
+import {TextPropTypes,ViewPropTypes} from 'deprecated-react-native-prop-types'
|
||||||
|
import React, { Component } from 'react';
|
||||||
|
import {
|
||||||
|
Platform,
|
||||||
|
@@ -7,7 +8,7 @@ import {
|
||||||
|
TouchableOpacity,
|
||||||
|
TouchableNativeFeedback,
|
||||||
|
View,
|
||||||
|
- ViewPropTypes
|
||||||
|
+ //ViewPropTypes
|
||||||
|
} from 'react-native';
|
||||||
|
|
||||||
|
import coalesceNonElementChildren from './coalesceNonElementChildren';
|
||||||
|
@@ -18,12 +19,15 @@ export default class Button extends Component {
|
||||||
|
static propTypes = {
|
||||||
|
...TouchableOpacity.propTypes,
|
||||||
|
accessibilityLabel: PropTypes.string,
|
||||||
|
- allowFontScaling: Text.propTypes.allowFontScaling,
|
||||||
|
+ // allowFontScaling: Text.propTypes.allowFontScaling,
|
||||||
|
+ allowFontScaling: TextPropTypes.allowFontScaling,
|
||||||
|
containerStyle: ViewPropTypes.style,
|
||||||
|
disabledContainerStyle: ViewPropTypes.style,
|
||||||
|
disabled: PropTypes.bool,
|
||||||
|
- style: Text.propTypes.style,
|
||||||
|
- styleDisabled: Text.propTypes.style,
|
||||||
|
+ style: TextPropTypes.style,
|
||||||
|
+ styleDisabled: TextPropTypes.style,
|
||||||
|
+ // style: Text.propTypes.style,
|
||||||
|
+ // styleDisabled: Text.propTypes.style,
|
||||||
|
childGroupStyle: ViewPropTypes.style,
|
||||||
|
androidBackground: PropTypes.object,
|
||||||
|
};
|
|
@ -1,21 +1,197 @@
|
||||||
diff --git a/node_modules/react-native-material-textfield/src/components/affix/index.js b/node_modules/react-native-material-textfield/src/components/affix/index.js
|
diff --git a/node_modules/react-native-material-textfield/src/components/affix/index.js b/node_modules/react-native-material-textfield/src/components/affix/index.js
|
||||||
index 0f85022..c12b3a6 100644
|
index 0f85022..e467adb 100644
|
||||||
--- a/node_modules/react-native-material-textfield/src/components/affix/index.js
|
--- a/node_modules/react-native-material-textfield/src/components/affix/index.js
|
||||||
+++ b/node_modules/react-native-material-textfield/src/components/affix/index.js
|
+++ b/node_modules/react-native-material-textfield/src/components/affix/index.js
|
||||||
@@ -11,7 +11,7 @@ export default class Affix extends PureComponent {
|
@@ -9,26 +9,26 @@ export default class Affix extends PureComponent {
|
||||||
|
numberOfLines: 1,
|
||||||
|
};
|
||||||
|
|
||||||
static propTypes = {
|
- static propTypes = {
|
||||||
numberOfLines: PropTypes.number,
|
- numberOfLines: PropTypes.number,
|
||||||
- style: Animated.Text.propTypes.style,
|
- style: Animated.Text.propTypes.style,
|
||||||
+ style: PropTypes.object,
|
+ // static propTypes = {
|
||||||
|
+ // numberOfLines: PropTypes.number,
|
||||||
|
+ // style: PropTypes.object,
|
||||||
|
|
||||||
color: PropTypes.string.isRequired,
|
- color: PropTypes.string.isRequired,
|
||||||
fontSize: PropTypes.number.isRequired,
|
- fontSize: PropTypes.number.isRequired,
|
||||||
|
+ // color: PropTypes.string.isRequired,
|
||||||
|
+ // fontSize: PropTypes.number.isRequired,
|
||||||
|
|
||||||
|
- type: PropTypes
|
||||||
|
- .oneOf(['prefix', 'suffix'])
|
||||||
|
- .isRequired,
|
||||||
|
+ // type: PropTypes
|
||||||
|
+ // .oneOf(['prefix', 'suffix'])
|
||||||
|
+ // .isRequired,
|
||||||
|
|
||||||
|
- labelAnimation: PropTypes
|
||||||
|
- .instanceOf(Animated.Value)
|
||||||
|
- .isRequired,
|
||||||
|
+ // labelAnimation: PropTypes
|
||||||
|
+ // .instanceOf(Animated.Value)
|
||||||
|
+ // .isRequired,
|
||||||
|
|
||||||
|
- children: PropTypes.oneOfType([
|
||||||
|
- PropTypes.arrayOf(PropTypes.node),
|
||||||
|
- PropTypes.node,
|
||||||
|
- ]),
|
||||||
|
- };
|
||||||
|
+ // children: PropTypes.oneOfType([
|
||||||
|
+ // PropTypes.arrayOf(PropTypes.node),
|
||||||
|
+ // PropTypes.node,
|
||||||
|
+ // ]),
|
||||||
|
+ // };
|
||||||
|
|
||||||
|
render() {
|
||||||
|
let { labelAnimation, style, children, type, fontSize, color } = this.props;
|
||||||
|
diff --git a/node_modules/react-native-material-textfield/src/components/counter/index.js b/node_modules/react-native-material-textfield/src/components/counter/index.js
|
||||||
|
index 35d3264..089b871 100644
|
||||||
|
--- a/node_modules/react-native-material-textfield/src/components/counter/index.js
|
||||||
|
+++ b/node_modules/react-native-material-textfield/src/components/counter/index.js
|
||||||
|
@@ -5,15 +5,15 @@ import { Text } from 'react-native';
|
||||||
|
import styles from './styles';
|
||||||
|
|
||||||
|
export default class Counter extends PureComponent {
|
||||||
|
- static propTypes = {
|
||||||
|
- count: PropTypes.number.isRequired,
|
||||||
|
- limit: PropTypes.number,
|
||||||
|
+ // static propTypes = {
|
||||||
|
+ // count: PropTypes.number.isRequired,
|
||||||
|
+ // limit: PropTypes.number,
|
||||||
|
|
||||||
|
- baseColor: PropTypes.string.isRequired,
|
||||||
|
- errorColor: PropTypes.string.isRequired,
|
||||||
|
+ // baseColor: PropTypes.string.isRequired,
|
||||||
|
+ // errorColor: PropTypes.string.isRequired,
|
||||||
|
|
||||||
|
- style: Text.propTypes.style,
|
||||||
|
- };
|
||||||
|
+ // style: PropTypes.object,
|
||||||
|
+ // };
|
||||||
|
|
||||||
|
render() {
|
||||||
|
let { count, limit, baseColor, errorColor, style } = this.props;
|
||||||
diff --git a/node_modules/react-native-material-textfield/src/components/field/index.js b/node_modules/react-native-material-textfield/src/components/field/index.js
|
diff --git a/node_modules/react-native-material-textfield/src/components/field/index.js b/node_modules/react-native-material-textfield/src/components/field/index.js
|
||||||
index 494bbaa..9bbf2e2 100644
|
index 494bbaa..2a71c82 100644
|
||||||
--- a/node_modules/react-native-material-textfield/src/components/field/index.js
|
--- a/node_modules/react-native-material-textfield/src/components/field/index.js
|
||||||
+++ b/node_modules/react-native-material-textfield/src/components/field/index.js
|
+++ b/node_modules/react-native-material-textfield/src/components/field/index.js
|
||||||
@@ -221,6 +221,7 @@ export default class TextField extends PureComponent {
|
@@ -1,5 +1,6 @@
|
||||||
|
import PropTypes from 'prop-types';
|
||||||
|
import React, { PureComponent } from 'react';
|
||||||
|
+import {ViewPropTypes} from 'deprecated-react-native-prop-types';
|
||||||
|
import {
|
||||||
|
View,
|
||||||
|
Text,
|
||||||
|
@@ -7,7 +8,7 @@ import {
|
||||||
|
Animated,
|
||||||
|
StyleSheet,
|
||||||
|
Platform,
|
||||||
|
- ViewPropTypes,
|
||||||
|
+ //ViewPropTypes,
|
||||||
|
} from 'react-native';
|
||||||
|
|
||||||
|
import Line from '../line';
|
||||||
|
@@ -65,60 +66,60 @@ export default class TextField extends PureComponent {
|
||||||
|
disabled: false,
|
||||||
|
};
|
||||||
|
|
||||||
|
- static propTypes = {
|
||||||
|
- ...TextInput.propTypes,
|
||||||
|
+ // static propTypes = {
|
||||||
|
+ // ...TextInput.propTypes,
|
||||||
|
|
||||||
|
- animationDuration: PropTypes.number,
|
||||||
|
+ // animationDuration: PropTypes.number,
|
||||||
|
|
||||||
|
- fontSize: PropTypes.number,
|
||||||
|
- labelFontSize: PropTypes.number,
|
||||||
|
+ // fontSize: PropTypes.number,
|
||||||
|
+ // labelFontSize: PropTypes.number,
|
||||||
|
|
||||||
|
- contentInset: PropTypes.shape({
|
||||||
|
- top: PropTypes.number,
|
||||||
|
- label: PropTypes.number,
|
||||||
|
- input: PropTypes.number,
|
||||||
|
- left: PropTypes.number,
|
||||||
|
- right: PropTypes.number,
|
||||||
|
- }),
|
||||||
|
+ // contentInset: PropTypes.shape({
|
||||||
|
+ // top: PropTypes.number,
|
||||||
|
+ // label: PropTypes.number,
|
||||||
|
+ // input: PropTypes.number,
|
||||||
|
+ // left: PropTypes.number,
|
||||||
|
+ // right: PropTypes.number,
|
||||||
|
+ // }),
|
||||||
|
|
||||||
|
- labelOffset: Label.propTypes.offset,
|
||||||
|
+ // labelOffset: Label.propTypes.offset,
|
||||||
|
|
||||||
|
- labelTextStyle: Text.propTypes.style,
|
||||||
|
- titleTextStyle: Text.propTypes.style,
|
||||||
|
- affixTextStyle: Text.propTypes.style,
|
||||||
|
+ // labelTextStyle: PropTypes.object.style,
|
||||||
|
+ // // titleTextStyle: PropTypes.object.style,
|
||||||
|
+ // // affixTextStyle: PropTypes.object.style,
|
||||||
|
|
||||||
|
- tintColor: PropTypes.string,
|
||||||
|
- textColor: PropTypes.string,
|
||||||
|
- baseColor: PropTypes.string,
|
||||||
|
+ // tintColor: PropTypes.string,
|
||||||
|
+ // textColor: PropTypes.string,
|
||||||
|
+ // baseColor: PropTypes.string,
|
||||||
|
|
||||||
|
- label: PropTypes.string,
|
||||||
|
- title: PropTypes.string,
|
||||||
|
+ // label: PropTypes.string,
|
||||||
|
+ // title: PropTypes.string,
|
||||||
|
|
||||||
|
- characterRestriction: PropTypes.number,
|
||||||
|
+ // characterRestriction: PropTypes.number,
|
||||||
|
|
||||||
|
- error: PropTypes.string,
|
||||||
|
- errorColor: PropTypes.string,
|
||||||
|
+ // error: PropTypes.string,
|
||||||
|
+ // errorColor: PropTypes.string,
|
||||||
|
|
||||||
|
- lineWidth: PropTypes.number,
|
||||||
|
- activeLineWidth: PropTypes.number,
|
||||||
|
- disabledLineWidth: PropTypes.number,
|
||||||
|
+ // lineWidth: PropTypes.number,
|
||||||
|
+ // activeLineWidth: PropTypes.number,
|
||||||
|
+ // disabledLineWidth: PropTypes.number,
|
||||||
|
|
||||||
|
- lineType: Line.propTypes.lineType,
|
||||||
|
- disabledLineType: Line.propTypes.lineType,
|
||||||
|
+ // lineType: Line.propTypes.lineType,
|
||||||
|
+ // disabledLineType: Line.propTypes.lineType,
|
||||||
|
|
||||||
|
- disabled: PropTypes.bool,
|
||||||
|
+ // disabled: PropTypes.bool,
|
||||||
|
|
||||||
|
- formatText: PropTypes.func,
|
||||||
|
+ // formatText: PropTypes.func,
|
||||||
|
|
||||||
|
- renderLeftAccessory: PropTypes.func,
|
||||||
|
- renderRightAccessory: PropTypes.func,
|
||||||
|
+ // renderLeftAccessory: PropTypes.func,
|
||||||
|
+ // renderRightAccessory: PropTypes.func,
|
||||||
|
|
||||||
|
- prefix: PropTypes.string,
|
||||||
|
- suffix: PropTypes.string,
|
||||||
|
+ // prefix: PropTypes.string,
|
||||||
|
+ // suffix: PropTypes.string,
|
||||||
|
|
||||||
|
- containerStyle: (ViewPropTypes || View.propTypes).style,
|
||||||
|
- inputContainerStyle: (ViewPropTypes || View.propTypes).style,
|
||||||
|
- };
|
||||||
|
+ // containerStyle: (ViewPropTypes || View.propTypes).style,
|
||||||
|
+ // inputContainerStyle: (ViewPropTypes || View.propTypes).style,
|
||||||
|
+ // };
|
||||||
|
|
||||||
|
static inputContainerStyle = styles.inputContainer;
|
||||||
|
|
||||||
|
@@ -221,6 +222,7 @@ export default class TextField extends PureComponent {
|
||||||
|
|
||||||
let options = {
|
let options = {
|
||||||
toValue: this.focusState(),
|
toValue: this.focusState(),
|
||||||
|
@ -24,28 +200,206 @@ index 494bbaa..9bbf2e2 100644
|
||||||
};
|
};
|
||||||
|
|
||||||
diff --git a/node_modules/react-native-material-textfield/src/components/helper/index.js b/node_modules/react-native-material-textfield/src/components/helper/index.js
|
diff --git a/node_modules/react-native-material-textfield/src/components/helper/index.js b/node_modules/react-native-material-textfield/src/components/helper/index.js
|
||||||
index 6060f9f..fe9d9c4 100644
|
index 6060f9f..86ac2c0 100644
|
||||||
--- a/node_modules/react-native-material-textfield/src/components/helper/index.js
|
--- a/node_modules/react-native-material-textfield/src/components/helper/index.js
|
||||||
+++ b/node_modules/react-native-material-textfield/src/components/helper/index.js
|
+++ b/node_modules/react-native-material-textfield/src/components/helper/index.js
|
||||||
@@ -11,7 +11,7 @@ export default class Helper extends PureComponent {
|
@@ -1,23 +1,24 @@
|
||||||
|
import PropTypes from 'prop-types';
|
||||||
|
+
|
||||||
|
import React, { PureComponent } from 'react';
|
||||||
|
import { Animated } from 'react-native';
|
||||||
|
|
||||||
disabled: PropTypes.bool,
|
import styles from './styles';
|
||||||
|
|
||||||
|
export default class Helper extends PureComponent {
|
||||||
|
- static propTypes = {
|
||||||
|
- title: PropTypes.string,
|
||||||
|
- error: PropTypes.string,
|
||||||
|
+ // static propTypes = {
|
||||||
|
+ // title: PropTypes.string,
|
||||||
|
+ // error: PropTypes.string,
|
||||||
|
|
||||||
|
- disabled: PropTypes.bool,
|
||||||
|
+ // disabled: PropTypes.bool,
|
||||||
|
|
||||||
- style: Animated.Text.propTypes.style,
|
- style: Animated.Text.propTypes.style,
|
||||||
+ style: PropTypes.object,
|
+ // style: PropTypes.object,
|
||||||
|
|
||||||
baseColor: PropTypes.string,
|
- baseColor: PropTypes.string,
|
||||||
errorColor: PropTypes.string,
|
- errorColor: PropTypes.string,
|
||||||
|
+ // baseColor: PropTypes.string,
|
||||||
|
+ // errorColor: PropTypes.string,
|
||||||
|
|
||||||
|
- focusAnimation: PropTypes.instanceOf(Animated.Value),
|
||||||
|
- };
|
||||||
|
+ // focusAnimation: PropTypes.instanceOf(Animated.Value),
|
||||||
|
+ // };
|
||||||
|
|
||||||
|
constructor(props) {
|
||||||
|
super(props);
|
||||||
diff --git a/node_modules/react-native-material-textfield/src/components/label/index.js b/node_modules/react-native-material-textfield/src/components/label/index.js
|
diff --git a/node_modules/react-native-material-textfield/src/components/label/index.js b/node_modules/react-native-material-textfield/src/components/label/index.js
|
||||||
index 82eaf03..809fcdd 100644
|
index 82eaf03..1ad9a93 100644
|
||||||
--- a/node_modules/react-native-material-textfield/src/components/label/index.js
|
--- a/node_modules/react-native-material-textfield/src/components/label/index.js
|
||||||
+++ b/node_modules/react-native-material-textfield/src/components/label/index.js
|
+++ b/node_modules/react-native-material-textfield/src/components/label/index.js
|
||||||
@@ -43,7 +43,7 @@ export default class Label extends PureComponent {
|
@@ -11,41 +11,41 @@ export default class Label extends PureComponent {
|
||||||
y1: PropTypes.number,
|
restricted: false,
|
||||||
}),
|
|
||||||
|
|
||||||
- style: Animated.Text.propTypes.style,
|
|
||||||
+ style: PropTypes.object,
|
|
||||||
label: PropTypes.string,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
- static propTypes = {
|
||||||
|
- numberOfLines: PropTypes.number,
|
||||||
|
+ // static propTypes = {
|
||||||
|
+ // numberOfLines: PropTypes.number,
|
||||||
|
|
||||||
|
- disabled: PropTypes.bool,
|
||||||
|
- restricted: PropTypes.bool,
|
||||||
|
+ // disabled: PropTypes.bool,
|
||||||
|
+ // restricted: PropTypes.bool,
|
||||||
|
|
||||||
|
- fontSize: PropTypes.number.isRequired,
|
||||||
|
- activeFontSize: PropTypes.number.isRequired,
|
||||||
|
+ // fontSize: PropTypes.number.isRequired,
|
||||||
|
+ // activeFontSize: PropTypes.number.isRequired,
|
||||||
|
|
||||||
|
- baseColor: PropTypes.string.isRequired,
|
||||||
|
- tintColor: PropTypes.string.isRequired,
|
||||||
|
- errorColor: PropTypes.string.isRequired,
|
||||||
|
+ // baseColor: PropTypes.string.isRequired,
|
||||||
|
+ // tintColor: PropTypes.string.isRequired,
|
||||||
|
+ // errorColor: PropTypes.string.isRequired,
|
||||||
|
|
||||||
|
- focusAnimation: PropTypes
|
||||||
|
- .instanceOf(Animated.Value)
|
||||||
|
- .isRequired,
|
||||||
|
+ // focusAnimation: PropTypes
|
||||||
|
+ // .instanceOf(Animated.Value)
|
||||||
|
+ // .isRequired,
|
||||||
|
|
||||||
|
- labelAnimation: PropTypes
|
||||||
|
- .instanceOf(Animated.Value)
|
||||||
|
- .isRequired,
|
||||||
|
+ // labelAnimation: PropTypes
|
||||||
|
+ // .instanceOf(Animated.Value)
|
||||||
|
+ // .isRequired,
|
||||||
|
|
||||||
|
- contentInset: PropTypes.shape({
|
||||||
|
- label: PropTypes.number,
|
||||||
|
- }),
|
||||||
|
+ // contentInset: PropTypes.shape({
|
||||||
|
+ // label: PropTypes.number,
|
||||||
|
+ // }),
|
||||||
|
|
||||||
|
- offset: PropTypes.shape({
|
||||||
|
- x0: PropTypes.number,
|
||||||
|
- y0: PropTypes.number,
|
||||||
|
- x1: PropTypes.number,
|
||||||
|
- y1: PropTypes.number,
|
||||||
|
- }),
|
||||||
|
+ // offset: PropTypes.shape({
|
||||||
|
+ // x0: PropTypes.number,
|
||||||
|
+ // y0: PropTypes.number,
|
||||||
|
+ // x1: PropTypes.number,
|
||||||
|
+ // y1: PropTypes.number,
|
||||||
|
+ // }),
|
||||||
|
|
||||||
|
- style: Animated.Text.propTypes.style,
|
||||||
|
- label: PropTypes.string,
|
||||||
|
- };
|
||||||
|
+ // style: PropTypes.object,
|
||||||
|
+ // label: PropTypes.string,
|
||||||
|
+ // };
|
||||||
|
|
||||||
|
render() {
|
||||||
|
let {
|
||||||
|
diff --git a/node_modules/react-native-material-textfield/src/components/line/index.js b/node_modules/react-native-material-textfield/src/components/line/index.js
|
||||||
|
index 44995e9..b689387 100644
|
||||||
|
--- a/node_modules/react-native-material-textfield/src/components/line/index.js
|
||||||
|
+++ b/node_modules/react-native-material-textfield/src/components/line/index.js
|
||||||
|
@@ -16,23 +16,23 @@ export default class Line extends PureComponent {
|
||||||
|
restricted: false,
|
||||||
|
};
|
||||||
|
|
||||||
|
- static propTypes = {
|
||||||
|
- lineType: lineTypes,
|
||||||
|
- disabledLineType: lineTypes,
|
||||||
|
+ // static propTypes = {
|
||||||
|
+ // lineType: lineTypes,
|
||||||
|
+ // disabledLineType: lineTypes,
|
||||||
|
|
||||||
|
- disabled: PropTypes.bool,
|
||||||
|
- restricted: PropTypes.bool,
|
||||||
|
+ // disabled: PropTypes.bool,
|
||||||
|
+ // restricted: PropTypes.bool,
|
||||||
|
|
||||||
|
- tintColor: PropTypes.string,
|
||||||
|
- baseColor: PropTypes.string,
|
||||||
|
- errorColor: PropTypes.string,
|
||||||
|
+ // tintColor: PropTypes.string,
|
||||||
|
+ // baseColor: PropTypes.string,
|
||||||
|
+ // errorColor: PropTypes.string,
|
||||||
|
|
||||||
|
- lineWidth: PropTypes.number,
|
||||||
|
- activeLineWidth: PropTypes.number,
|
||||||
|
- disabledLineWidth: PropTypes.number,
|
||||||
|
+ // lineWidth: PropTypes.number,
|
||||||
|
+ // activeLineWidth: PropTypes.number,
|
||||||
|
+ // disabledLineWidth: PropTypes.number,
|
||||||
|
|
||||||
|
- focusAnimation: PropTypes.instanceOf(Animated.Value),
|
||||||
|
- };
|
||||||
|
+ // focusAnimation: PropTypes.instanceOf(Animated.Value),
|
||||||
|
+ // };
|
||||||
|
|
||||||
|
static getDerivedStateFromProps(props, state) {
|
||||||
|
let { lineWidth, activeLineWidth, disabledLineWidth } = props;
|
||||||
|
diff --git a/node_modules/react-native-material-textfield/src/components/outline/index.js b/node_modules/react-native-material-textfield/src/components/outline/index.js
|
||||||
|
index 9347a99..9c3e8a3 100644
|
||||||
|
--- a/node_modules/react-native-material-textfield/src/components/outline/index.js
|
||||||
|
+++ b/node_modules/react-native-material-textfield/src/components/outline/index.js
|
||||||
|
@@ -11,29 +11,29 @@ export default class Line extends PureComponent {
|
||||||
|
restricted: false,
|
||||||
|
};
|
||||||
|
|
||||||
|
- static propTypes = {
|
||||||
|
- lineType: PropTypes.oneOf(['solid', 'none']),
|
||||||
|
+ // static propTypes = {
|
||||||
|
+ // lineType: PropTypes.oneOf(['solid', 'none']),
|
||||||
|
|
||||||
|
- disabled: PropTypes.bool,
|
||||||
|
- restricted: PropTypes.bool,
|
||||||
|
+ // disabled: PropTypes.bool,
|
||||||
|
+ // restricted: PropTypes.bool,
|
||||||
|
|
||||||
|
- tintColor: PropTypes.string,
|
||||||
|
- baseColor: PropTypes.string,
|
||||||
|
- errorColor: PropTypes.string,
|
||||||
|
+ // tintColor: PropTypes.string,
|
||||||
|
+ // baseColor: PropTypes.string,
|
||||||
|
+ // errorColor: PropTypes.string,
|
||||||
|
|
||||||
|
- lineWidth: PropTypes.number,
|
||||||
|
- activeLineWidth: PropTypes.number,
|
||||||
|
- disabledLineWidth: PropTypes.number,
|
||||||
|
+ // lineWidth: PropTypes.number,
|
||||||
|
+ // activeLineWidth: PropTypes.number,
|
||||||
|
+ // disabledLineWidth: PropTypes.number,
|
||||||
|
|
||||||
|
- focusAnimation: PropTypes.instanceOf(Animated.Value),
|
||||||
|
- labelAnimation: PropTypes.instanceOf(Animated.Value),
|
||||||
|
- labelWidth: PropTypes.instanceOf(Animated.Value),
|
||||||
|
+ // focusAnimation: PropTypes.instanceOf(Animated.Value),
|
||||||
|
+ // labelAnimation: PropTypes.instanceOf(Animated.Value),
|
||||||
|
+ // labelWidth: PropTypes.instanceOf(Animated.Value),
|
||||||
|
|
||||||
|
- contentInset: PropTypes.shape({
|
||||||
|
- left: PropTypes.number,
|
||||||
|
- right: PropTypes.number,
|
||||||
|
- }),
|
||||||
|
- };
|
||||||
|
+ // contentInset: PropTypes.shape({
|
||||||
|
+ // left: PropTypes.number,
|
||||||
|
+ // right: PropTypes.number,
|
||||||
|
+ // }),
|
||||||
|
+ // };
|
||||||
|
|
||||||
|
borderProps() {
|
||||||
|
let {
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
diff --git a/node_modules/react-native-star-rating/StarButton.js b/node_modules/react-native-star-rating/StarButton.js
|
||||||
|
index b6db613..8a62f5a 100644
|
||||||
|
--- a/node_modules/react-native-star-rating/StarButton.js
|
||||||
|
+++ b/node_modules/react-native-star-rating/StarButton.js
|
||||||
|
@@ -1,6 +1,7 @@
|
||||||
|
// React and react native imports
|
||||||
|
import React, { Component } from 'react';
|
||||||
|
-import { Image, StyleSheet, ViewPropTypes } from 'react-native';
|
||||||
|
+import { Image, StyleSheet } from 'react-native';
|
||||||
|
+import {ViewPropTypes} from 'deprecated-react-native-prop-types';
|
||||||
|
import PropTypes from 'prop-types';
|
||||||
|
import { createIconSetFromIcoMoon } from 'react-native-vector-icons';
|
||||||
|
|
||||||
|
diff --git a/node_modules/react-native-star-rating/StarRating.js b/node_modules/react-native-star-rating/StarRating.js
|
||||||
|
index 7aecc95..de6397c 100644
|
||||||
|
--- a/node_modules/react-native-star-rating/StarRating.js
|
||||||
|
+++ b/node_modules/react-native-star-rating/StarRating.js
|
||||||
|
@@ -1,6 +1,7 @@
|
||||||
|
// React and react native imports
|
||||||
|
import React, { Component } from 'react';
|
||||||
|
-import { View, ViewPropTypes, StyleSheet } from 'react-native';
|
||||||
|
+import { View, StyleSheet } from 'react-native';
|
||||||
|
+import {ViewPropTypes} from 'deprecated-react-native-prop-types';
|
||||||
|
import PropTypes from 'prop-types';
|
||||||
|
import { View as AnimatableView } from 'react-native-animatable';
|
||||||
|
|
|
@ -1,25 +1,25 @@
|
||||||
import { useTheme } from '@react-navigation/native'
|
import { useTheme } from "@react-navigation/native";
|
||||||
import { useHeaderHeight } from '@react-navigation/stack'
|
import { useHeaderHeight } from "@react-navigation/elements";
|
||||||
import { StyleSheet } from 'react-native'
|
import { StyleSheet } from "react-native";
|
||||||
import { useSafeAreaInsets } from 'react-native-safe-area-context'
|
import { useSafeAreaInsets } from "react-native-safe-area-context";
|
||||||
import { scale } from '../../utils/scaling'
|
import { scale } from "../../utils/scaling";
|
||||||
|
|
||||||
const useStyle = () => {
|
const useStyle = () => {
|
||||||
const { colors } = useTheme()
|
const { colors } = useTheme();
|
||||||
const inset = useSafeAreaInsets()
|
const inset = useSafeAreaInsets();
|
||||||
const headerHeight = useHeaderHeight()
|
const headerHeight = useHeaderHeight();
|
||||||
|
|
||||||
return StyleSheet.create({
|
return StyleSheet.create({
|
||||||
flex: {
|
flex: {
|
||||||
flex: 1
|
flex: 1,
|
||||||
},
|
},
|
||||||
wrapperView: {
|
wrapperView: {
|
||||||
backgroundColor: colors.background,
|
backgroundColor: colors.background,
|
||||||
paddingTop: headerHeight,
|
paddingTop: headerHeight,
|
||||||
paddingBottom: inset.bottom
|
paddingBottom: inset.bottom,
|
||||||
},
|
},
|
||||||
topCurve: {
|
topCurve: {
|
||||||
position: 'absolute',
|
position: "absolute",
|
||||||
opacity: 0.2,
|
opacity: 0.2,
|
||||||
left: -75,
|
left: -75,
|
||||||
borderTopRightRadius: scale(90),
|
borderTopRightRadius: scale(90),
|
||||||
|
@ -28,10 +28,10 @@ const useStyle = () => {
|
||||||
width: scale(250),
|
width: scale(250),
|
||||||
height: scale(260),
|
height: scale(260),
|
||||||
borderRadius: 100,
|
borderRadius: 100,
|
||||||
backgroundColor: colors.curve
|
backgroundColor: colors.curve,
|
||||||
},
|
},
|
||||||
bottomCurve: {
|
bottomCurve: {
|
||||||
position: 'absolute',
|
position: "absolute",
|
||||||
height: scale(185),
|
height: scale(185),
|
||||||
width: scale(170),
|
width: scale(170),
|
||||||
borderTopRightRadius: scale(110),
|
borderTopRightRadius: scale(110),
|
||||||
|
@ -42,9 +42,9 @@ const useStyle = () => {
|
||||||
backgroundColor: colors.curve,
|
backgroundColor: colors.curve,
|
||||||
opacity: 0.2,
|
opacity: 0.2,
|
||||||
bottom: -80,
|
bottom: -80,
|
||||||
zIndex: -1
|
zIndex: -1,
|
||||||
}
|
},
|
||||||
})
|
});
|
||||||
}
|
};
|
||||||
|
|
||||||
export default useStyle
|
export default useStyle;
|
||||||
|
|
|
@ -1,100 +1,141 @@
|
||||||
/* eslint-disable react/prop-types */
|
/* eslint-disable react/prop-types */
|
||||||
import { createDrawerNavigator } from '@react-navigation/drawer'
|
import { createDrawerNavigator } from "@react-navigation/drawer";
|
||||||
import { NavigationContainer, useTheme } from '@react-navigation/native'
|
import { NavigationContainer, useTheme } from "@react-navigation/native";
|
||||||
import { createStackNavigator } from '@react-navigation/stack'
|
import { createStackNavigator } from "@react-navigation/stack";
|
||||||
import * as Notifications from 'expo-notifications'
|
import * as Notifications from "expo-notifications";
|
||||||
import React, { useEffect } from 'react'
|
import React, { useEffect } from "react";
|
||||||
import { useColorScheme } from 'react-native'
|
import { Text, useColorScheme, View } from "react-native";
|
||||||
import Animated from 'react-native-reanimated'
|
import Animated from "react-native-reanimated";
|
||||||
import {
|
import {
|
||||||
initialWindowMetrics,
|
initialWindowMetrics,
|
||||||
SafeAreaProvider
|
SafeAreaProvider,
|
||||||
} from 'react-native-safe-area-context'
|
} from "react-native-safe-area-context";
|
||||||
import { TextDefault, LeftButton, Sidebar } from '../components'
|
import { TextDefault, LeftButton, Sidebar } from "../components";
|
||||||
import {
|
import Menu from "../screens/Menu/Menu";
|
||||||
Addresses,
|
import MenuItems from "../screens/MenuItems/MenuItems";
|
||||||
Cart,
|
import Addresses from "../screens/Addresses/Addresses";
|
||||||
CartAddress,
|
import NewAddress from "../screens/NewAddress/NewAddress";
|
||||||
Chat,
|
import EditAddress from "../screens/EditAddress/EditAddress";
|
||||||
CreateAccount,
|
import Cart from "../screens/Cart/Cart";
|
||||||
EditAddress,
|
import Profile from "../screens/Profile/Profile";
|
||||||
ForgotPassword,
|
import FullMap from "../screens/FullMap/FullMap";
|
||||||
FullMap,
|
import CartAddress from "../screens/CartAddress/CartAddress";
|
||||||
Help,
|
import SelectVoucher from "../screens/Coupon/Coupon";
|
||||||
HelpBrowser,
|
import Help from "../screens/Help/Help";
|
||||||
ItemDetail,
|
import HelpBrowser from "../screens/HelpBrowser/HelpBrowser";
|
||||||
Login,
|
import Chat from "../screens/Chat/Chat";
|
||||||
Menu,
|
import Settings from "../screens/Settings/Settings";
|
||||||
MenuItems,
|
import Paypal from "../screens/Paypal/Paypal";
|
||||||
MyOrders,
|
import ItemDetail from "../screens/ItemDetail/ItemDetail";
|
||||||
NewAddress,
|
import MyOrders from "../screens/MyOrders/MyOrders";
|
||||||
OrderDetail,
|
import OrderDetail from "../screens/OrderDetail/OrderDetail";
|
||||||
Paypal,
|
import StripeCheckout from "../screens/Stripe/StripeCheckout";
|
||||||
Profile,
|
import RateAndReview from "../screens/RateAndReview/RateAndReview";
|
||||||
RateAndReview,
|
import CreateAccount from "../screens/CreateAccount/CreateAccount";
|
||||||
Register,
|
import Login from "../screens/Login/Login";
|
||||||
SelectVoucher,
|
import Register from "../screens/Register/Register";
|
||||||
Settings,
|
import ForgotPassword from "../screens/ForgotPassword/ForgotPassword";
|
||||||
StripeCheckout
|
|
||||||
} from '../screens'
|
|
||||||
import { THEME } from '../Theme'
|
|
||||||
import { ICONS_NAME, NAVIGATION_SCREEN } from '../utils/constant'
|
|
||||||
import navigationService from './navigationService'
|
|
||||||
import screenOptions from './screenOptions'
|
|
||||||
import styles from './styles'
|
|
||||||
|
|
||||||
const NavigationStack = createStackNavigator()
|
// import {
|
||||||
const MainStack = createStackNavigator()
|
// Addresses,
|
||||||
const SideDrawer = createDrawerNavigator()
|
// Cart,
|
||||||
|
// CartAddress,
|
||||||
|
// Chat,
|
||||||
|
// CreateAccount,
|
||||||
|
// EditAddress,
|
||||||
|
// ForgotPassword,
|
||||||
|
// FullMap,
|
||||||
|
// Help,
|
||||||
|
// HelpBrowser,
|
||||||
|
// ItemDetail,
|
||||||
|
// Login,
|
||||||
|
// MenuItems,
|
||||||
|
// MyOrders,
|
||||||
|
// NewAddress,
|
||||||
|
// OrderDetail,
|
||||||
|
// Paypal,
|
||||||
|
// Profile,
|
||||||
|
// RateAndReview,
|
||||||
|
// Register,
|
||||||
|
// SelectVoucher,
|
||||||
|
// Settings,
|
||||||
|
// StripeCheckout,
|
||||||
|
// Menu,
|
||||||
|
// } from "../screens";
|
||||||
|
|
||||||
|
import { THEME } from "../Theme";
|
||||||
|
import { ICONS_NAME, NAVIGATION_SCREEN } from "../utils/constant";
|
||||||
|
import navigationService from "./navigationService";
|
||||||
|
import screenOptions from "./screenOptions";
|
||||||
|
import styles from "./styles";
|
||||||
|
|
||||||
|
const NavigationStack = createStackNavigator();
|
||||||
|
const MainStack = createStackNavigator();
|
||||||
|
const SideDrawer = createDrawerNavigator();
|
||||||
|
|
||||||
function Drawer() {
|
function Drawer() {
|
||||||
const { colors } = useTheme()
|
const { colors } = useTheme();
|
||||||
let animatedStyle = {}
|
let animatedStyle = {};
|
||||||
let opacity
|
let opacity;
|
||||||
let OuterWindowSlide, InnerWindowSlide
|
let OuterWindowSlide, InnerWindowSlide;
|
||||||
return (
|
return (
|
||||||
<SideDrawer.Navigator
|
<SideDrawer.Navigator
|
||||||
drawerType="slide"
|
drawerType="slide"
|
||||||
overlayColor="transparent"
|
overlayColor="transparent"
|
||||||
drawerStyle={{
|
screenOptions={{
|
||||||
|
drawerStyle: {
|
||||||
flex: 1,
|
flex: 1,
|
||||||
backgroundColor: colors.drawerBackground,
|
backgroundColor: colors.drawerBackground,
|
||||||
width: '60%',
|
width: "60%",
|
||||||
justifyContent: 'space-between',
|
justifyContent: "space-between",
|
||||||
borderRightWidth: 0,
|
borderRightWidth: 0,
|
||||||
shadowOpacity: 0,
|
shadowOpacity: 0,
|
||||||
elevation: 0
|
elevation: 0,
|
||||||
|
},
|
||||||
|
sceneContainerStyle: { backgroundColor: colors.drawerBackground },
|
||||||
}}
|
}}
|
||||||
sceneContainerStyle={{ backgroundColor: colors.drawerBackground }}
|
// drawerStyle={{
|
||||||
drawerContent={props => {
|
// flex: 1,
|
||||||
|
// backgroundColor: colors.drawerBackground,
|
||||||
|
// width: "60%",
|
||||||
|
// justifyContent: "space-between",
|
||||||
|
// borderRightWidth: 0,
|
||||||
|
// shadowOpacity: 0,
|
||||||
|
// elevation: 0,
|
||||||
|
// }}
|
||||||
|
// sceneContainerStyle={{ backgroundColor: colors.drawerBackground }}
|
||||||
|
|
||||||
|
drawerContent={(props) => {
|
||||||
const scale = Animated.interpolateNode(props.progress, {
|
const scale = Animated.interpolateNode(props.progress, {
|
||||||
inputRange: [0, 1],
|
inputRange: [0, 1],
|
||||||
outputRange: [1, 0.7]
|
outputRange: [1, 0.7],
|
||||||
})
|
});
|
||||||
const Animatedopacity = Animated.interpolateNode(props.progress, {
|
const Animatedopacity = Animated.interpolateNode(props.progress, {
|
||||||
inputRange: [0, 0.6, 1],
|
inputRange: [0, 0.6, 1],
|
||||||
outputRange: [0, 0, 1]
|
outputRange: [0, 0, 1],
|
||||||
})
|
});
|
||||||
const AnimatedOuterSlide = Animated.interpolateNode(props.progress, {
|
const AnimatedOuterSlide = Animated.interpolateNode(props.progress, {
|
||||||
inputRange: [0, 1],
|
inputRange: [0, 1],
|
||||||
outputRange: [0, -35]
|
outputRange: [0, -35],
|
||||||
})
|
});
|
||||||
const AnimatedInnerSlide = Animated.interpolateNode(props.progress, {
|
const AnimatedInnerSlide = Animated.interpolateNode(props.progress, {
|
||||||
inputRange: [0, 1],
|
inputRange: [0, 1],
|
||||||
outputRange: [0, -15]
|
outputRange: [0, -15],
|
||||||
})
|
});
|
||||||
const borderRadius = Animated.interpolateNode(props.progress, {
|
const borderRadius = Animated.interpolateNode(props.progress, {
|
||||||
inputRange: [0, 1],
|
inputRange: [0, 1],
|
||||||
outputRange: [0, 20]
|
outputRange: [0, 20],
|
||||||
})
|
});
|
||||||
animatedStyle = { borderRadius, transform: [{ scale }] }
|
animatedStyle = { borderRadius, transform: [{ scale }] };
|
||||||
opacity = Animatedopacity
|
opacity = Animatedopacity;
|
||||||
OuterWindowSlide = AnimatedOuterSlide
|
OuterWindowSlide = AnimatedOuterSlide;
|
||||||
InnerWindowSlide = AnimatedInnerSlide
|
InnerWindowSlide = AnimatedInnerSlide;
|
||||||
return <Sidebar {...props} />
|
|
||||||
}}>
|
return <Sidebar {...props} />;
|
||||||
<SideDrawer.Screen name="noDrawer">
|
}}
|
||||||
{props => (
|
>
|
||||||
|
<SideDrawer.Screen name="noDrawer" options={{ headerShown: false }}>
|
||||||
|
{(props) => (
|
||||||
<NoDrawer
|
<NoDrawer
|
||||||
{...props}
|
{...props}
|
||||||
style={animatedStyle}
|
style={animatedStyle}
|
||||||
|
@ -105,10 +146,11 @@ function Drawer() {
|
||||||
)}
|
)}
|
||||||
</SideDrawer.Screen>
|
</SideDrawer.Screen>
|
||||||
</SideDrawer.Navigator>
|
</SideDrawer.Navigator>
|
||||||
)
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function NoDrawer({ style, opacity = 1, OuterWindowSlide, InnerWindowSlide }) {
|
function NoDrawer({ style, opacity = 1, OuterWindowSlide, InnerWindowSlide }) {
|
||||||
const { colors } = useTheme()
|
const { colors } = useTheme();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<React.Fragment>
|
<React.Fragment>
|
||||||
|
@ -120,15 +162,17 @@ function NoDrawer({ style, opacity = 1, OuterWindowSlide, InnerWindowSlide }) {
|
||||||
/>
|
/>
|
||||||
<Animated.View style={[styles.animatedView, style]}>
|
<Animated.View style={[styles.animatedView, style]}>
|
||||||
<NavigationStack.Navigator
|
<NavigationStack.Navigator
|
||||||
mode="modal"
|
//mode="modal"
|
||||||
|
presentation="modal"
|
||||||
screenOptions={screenOptions({
|
screenOptions={screenOptions({
|
||||||
textColor: colors.headerTextColor
|
textColor: colors.headerTextColor,
|
||||||
})}>
|
})}
|
||||||
|
>
|
||||||
<NavigationStack.Screen
|
<NavigationStack.Screen
|
||||||
name={NAVIGATION_SCREEN.Menu}
|
name={NAVIGATION_SCREEN.Menu}
|
||||||
component={Menu}
|
component={Menu}
|
||||||
options={{
|
options={{
|
||||||
headerLeft: () => <LeftButton icon={ICONS_NAME.Menu} />
|
headerLeft: () => <LeftButton icon={ICONS_NAME.Menu} />,
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
<NavigationStack.Screen
|
<NavigationStack.Screen
|
||||||
|
@ -143,14 +187,14 @@ function NoDrawer({ style, opacity = 1, OuterWindowSlide, InnerWindowSlide }) {
|
||||||
name={NAVIGATION_SCREEN.Profile}
|
name={NAVIGATION_SCREEN.Profile}
|
||||||
component={Profile}
|
component={Profile}
|
||||||
options={{
|
options={{
|
||||||
headerLeft: () => <LeftButton icon={ICONS_NAME.Menu} />
|
headerLeft: () => <LeftButton icon={ICONS_NAME.Menu} />,
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
<NavigationStack.Screen
|
<NavigationStack.Screen
|
||||||
name={NAVIGATION_SCREEN.Addresses}
|
name={NAVIGATION_SCREEN.Addresses}
|
||||||
component={Addresses}
|
component={Addresses}
|
||||||
options={{
|
options={{
|
||||||
headerLeft: () => <LeftButton icon={ICONS_NAME.Menu} />
|
headerLeft: () => <LeftButton icon={ICONS_NAME.Menu} />,
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
<NavigationStack.Screen
|
<NavigationStack.Screen
|
||||||
|
@ -177,14 +221,14 @@ function NoDrawer({ style, opacity = 1, OuterWindowSlide, InnerWindowSlide }) {
|
||||||
name={NAVIGATION_SCREEN.Help}
|
name={NAVIGATION_SCREEN.Help}
|
||||||
component={Help}
|
component={Help}
|
||||||
options={{
|
options={{
|
||||||
headerLeft: () => <LeftButton icon={ICONS_NAME.Menu} />
|
headerLeft: () => <LeftButton icon={ICONS_NAME.Menu} />,
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
<NavigationStack.Screen
|
<NavigationStack.Screen
|
||||||
name={NAVIGATION_SCREEN.Chat}
|
name={NAVIGATION_SCREEN.Chat}
|
||||||
component={Chat}
|
component={Chat}
|
||||||
options={{
|
options={{
|
||||||
headerLeft: () => <LeftButton icon={ICONS_NAME.Menu} />
|
headerLeft: () => <LeftButton icon={ICONS_NAME.Menu} />,
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
<NavigationStack.Screen
|
<NavigationStack.Screen
|
||||||
|
@ -195,7 +239,7 @@ function NoDrawer({ style, opacity = 1, OuterWindowSlide, InnerWindowSlide }) {
|
||||||
name={NAVIGATION_SCREEN.Settings}
|
name={NAVIGATION_SCREEN.Settings}
|
||||||
component={Settings}
|
component={Settings}
|
||||||
options={{
|
options={{
|
||||||
headerLeft: () => <LeftButton icon={ICONS_NAME.Menu} />
|
headerLeft: () => <LeftButton icon={ICONS_NAME.Menu} />,
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
<NavigationStack.Screen
|
<NavigationStack.Screen
|
||||||
|
@ -210,7 +254,7 @@ function NoDrawer({ style, opacity = 1, OuterWindowSlide, InnerWindowSlide }) {
|
||||||
name={NAVIGATION_SCREEN.MyOrders}
|
name={NAVIGATION_SCREEN.MyOrders}
|
||||||
component={MyOrders}
|
component={MyOrders}
|
||||||
options={{
|
options={{
|
||||||
headerLeft: () => <LeftButton icon={ICONS_NAME.Menu} />
|
headerLeft: () => <LeftButton icon={ICONS_NAME.Menu} />,
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
<NavigationStack.Screen
|
<NavigationStack.Screen
|
||||||
|
@ -249,26 +293,27 @@ function NoDrawer({ style, opacity = 1, OuterWindowSlide, InnerWindowSlide }) {
|
||||||
</Animated.View>
|
</Animated.View>
|
||||||
<Animated.View style={[styles.closeView, { opacity: opacity }]}>
|
<Animated.View style={[styles.closeView, { opacity: opacity }]}>
|
||||||
<TextDefault H4 medium>
|
<TextDefault H4 medium>
|
||||||
{'Close X'}
|
{"Close X"}
|
||||||
</TextDefault>
|
</TextDefault>
|
||||||
</Animated.View>
|
</Animated.View>
|
||||||
</React.Fragment>
|
</React.Fragment>
|
||||||
)
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function AppContainer() {
|
function AppContainer() {
|
||||||
const colorScheme = useColorScheme()
|
console.log("AppContainer Working");
|
||||||
|
const colorScheme = useColorScheme();
|
||||||
function _handleNotification(notification) {
|
function _handleNotification(notification) {
|
||||||
try {
|
try {
|
||||||
if (notification.origin === 'selected') {
|
if (notification.origin === "selected") {
|
||||||
if (notification.data.order) {
|
if (notification.data.order) {
|
||||||
navigationService.navigate(NAVIGATION_SCREEN.OrderDetail, {
|
navigationService.navigate(NAVIGATION_SCREEN.OrderDetail, {
|
||||||
_id: notification.data._id
|
_id: notification.data._id,
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log(e)
|
console.log(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
@ -276,24 +321,32 @@ function AppContainer() {
|
||||||
handleNotification: async () => ({
|
handleNotification: async () => ({
|
||||||
shouldShowAlert: true,
|
shouldShowAlert: true,
|
||||||
shouldPlaySound: false,
|
shouldPlaySound: false,
|
||||||
shouldSetBadge: false
|
shouldSetBadge: false,
|
||||||
})
|
}),
|
||||||
})
|
});
|
||||||
const subscription =
|
const subscription =
|
||||||
Notifications.addNotificationResponseReceivedListener(_handleNotification)
|
Notifications.addNotificationResponseReceivedListener(
|
||||||
return () => subscription.remove()
|
_handleNotification
|
||||||
}, [])
|
);
|
||||||
|
return () => subscription.remove();
|
||||||
|
}, []);
|
||||||
return (
|
return (
|
||||||
<SafeAreaProvider initialMetrics={initialWindowMetrics}>
|
<SafeAreaProvider initialMetrics={initialWindowMetrics}>
|
||||||
<NavigationContainer
|
<NavigationContainer
|
||||||
theme={colorScheme === 'dark' ? THEME.Dark : THEME.Light}
|
theme={colorScheme === "dark" ? THEME.Dark : THEME.Light}
|
||||||
ref={ref => {
|
ref={(ref) => {
|
||||||
navigationService.setGlobalRef(ref)
|
navigationService.setGlobalRef(ref);
|
||||||
Notifications.addNotificationReceivedListener(_handleNotification)
|
Notifications.addNotificationReceivedListener(_handleNotification);
|
||||||
}}>
|
}}
|
||||||
|
>
|
||||||
<MainStack.Navigator
|
<MainStack.Navigator
|
||||||
headerMode="none"
|
screenOptions={{
|
||||||
initialRouteName={NAVIGATION_SCREEN.Drawer}>
|
headerShown: false,
|
||||||
|
}}
|
||||||
|
//headerMode="none"
|
||||||
|
|
||||||
|
initialRouteName={NAVIGATION_SCREEN.Drawer}
|
||||||
|
>
|
||||||
<MainStack.Screen
|
<MainStack.Screen
|
||||||
name={NAVIGATION_SCREEN.Drawer}
|
name={NAVIGATION_SCREEN.Drawer}
|
||||||
component={Drawer}
|
component={Drawer}
|
||||||
|
@ -301,7 +354,7 @@ function AppContainer() {
|
||||||
</MainStack.Navigator>
|
</MainStack.Navigator>
|
||||||
</NavigationContainer>
|
</NavigationContainer>
|
||||||
</SafeAreaProvider>
|
</SafeAreaProvider>
|
||||||
)
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export default AppContainer
|
export default AppContainer;
|
||||||
|
|
|
@ -1,19 +1,20 @@
|
||||||
import { useQuery } from '@apollo/react-hooks'
|
import { useQuery } from "@apollo/react-hooks";
|
||||||
import { useNavigation, useRoute } from '@react-navigation/native'
|
import { useNavigation, useRoute } from "@react-navigation/native";
|
||||||
import { useHeaderHeight } from '@react-navigation/stack'
|
//import { useHeaderHeight } from '@react-navigation/stack'
|
||||||
import gql from 'graphql-tag'
|
import { useHeaderHeight } from "@react-navigation/elements";
|
||||||
import { get } from 'lodash'
|
import gql from "graphql-tag";
|
||||||
import React, { useContext, useLayoutEffect, useRef, useState } from 'react'
|
import { get } from "lodash";
|
||||||
|
import React, { useContext, useLayoutEffect, useRef, useState } from "react";
|
||||||
import {
|
import {
|
||||||
FlatList,
|
FlatList,
|
||||||
ImageBackground,
|
ImageBackground,
|
||||||
Platform,
|
Platform,
|
||||||
TouchableOpacity,
|
TouchableOpacity,
|
||||||
View
|
View,
|
||||||
} from 'react-native'
|
} from "react-native";
|
||||||
import { Modalize } from 'react-native-modalize'
|
import { Modalize } from "react-native-modalize";
|
||||||
import { foods } from '../../apollo/server'
|
import { foods } from "../../apollo/server";
|
||||||
import EmptyFood from '../../assets/images/SVG/imageComponents/EmptyFood'
|
import EmptyFood from "../../assets/images/SVG/imageComponents/EmptyFood";
|
||||||
import {
|
import {
|
||||||
EnategaImage,
|
EnategaImage,
|
||||||
FilterModal,
|
FilterModal,
|
||||||
|
@ -22,40 +23,40 @@ import {
|
||||||
Spinner,
|
Spinner,
|
||||||
TextDefault,
|
TextDefault,
|
||||||
TextError,
|
TextError,
|
||||||
WrapperView
|
WrapperView,
|
||||||
} from '../../components'
|
} from "../../components";
|
||||||
import ConfigurationContext from '../../context/Configuration'
|
import ConfigurationContext from "../../context/Configuration";
|
||||||
import UserContext from '../../context/User'
|
import UserContext from "../../context/User";
|
||||||
import { alignment } from '../../utils/alignment'
|
import { alignment } from "../../utils/alignment";
|
||||||
import { ICONS_NAME, NAVIGATION_SCREEN, SORT_DATA } from '../../utils/constant'
|
import { ICONS_NAME, NAVIGATION_SCREEN, SORT_DATA } from "../../utils/constant";
|
||||||
import { moderateScale, scale } from '../../utils/scaling'
|
import { moderateScale, scale } from "../../utils/scaling";
|
||||||
import useStyle from './styles'
|
import useStyle from "./styles";
|
||||||
|
|
||||||
// constants
|
// constants
|
||||||
const FOODS = gql`
|
const FOODS = gql`
|
||||||
${foods}
|
${foods}
|
||||||
`
|
`;
|
||||||
|
|
||||||
function MenuItems() {
|
function MenuItems() {
|
||||||
const route = useRoute()
|
const route = useRoute();
|
||||||
const styles = useStyle()
|
const styles = useStyle();
|
||||||
const headerHeight = useHeaderHeight()
|
const headerHeight = useHeaderHeight();
|
||||||
const navigation = useNavigation()
|
const navigation = useNavigation();
|
||||||
const _id = route.params._id ?? null
|
const _id = route.params._id ?? null;
|
||||||
const imgMenu = route.params.img_menu ?? null
|
const imgMenu = route.params.img_menu ?? null;
|
||||||
const title = route.params.title ?? null
|
const title = route.params.title ?? null;
|
||||||
const description = route.params.description ?? null
|
const description = route.params.description ?? null;
|
||||||
const [filters, setFilters] = useState({})
|
const [filters, setFilters] = useState({});
|
||||||
const { loading, error, data, refetch, networkStatus } = useQuery(FOODS, {
|
const { loading, error, data, refetch, networkStatus } = useQuery(FOODS, {
|
||||||
variables: { category: _id, ...filters }
|
variables: { category: _id, ...filters },
|
||||||
})
|
});
|
||||||
const { addCartItem } = useContext(UserContext)
|
const { addCartItem } = useContext(UserContext);
|
||||||
const configuration = useContext(ConfigurationContext)
|
const configuration = useContext(ConfigurationContext);
|
||||||
const modalizeRef = useRef(null)
|
const modalizeRef = useRef(null);
|
||||||
|
|
||||||
const closeModal = () => {
|
const closeModal = () => {
|
||||||
modalizeRef.current.close()
|
modalizeRef.current.close();
|
||||||
}
|
};
|
||||||
|
|
||||||
useLayoutEffect(() => {
|
useLayoutEffect(() => {
|
||||||
navigation.setOptions({
|
navigation.setOptions({
|
||||||
|
@ -65,26 +66,26 @@ function MenuItems() {
|
||||||
icon={ICONS_NAME.Filter}
|
icon={ICONS_NAME.Filter}
|
||||||
onPress={() => modalizeRef.current.open()}
|
onPress={() => modalizeRef.current.open()}
|
||||||
/>
|
/>
|
||||||
)
|
),
|
||||||
})
|
});
|
||||||
}, [navigation])
|
}, [navigation]);
|
||||||
|
|
||||||
async function onAddToCart(food) {
|
async function onAddToCart(food) {
|
||||||
if (food.stock < 1) {
|
if (food.stock < 1) {
|
||||||
FlashMessage({
|
FlashMessage({
|
||||||
message: 'Item out of stock'
|
message: "Item out of stock",
|
||||||
})
|
});
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (
|
if (
|
||||||
food.variations.length === 1 &&
|
food.variations.length === 1 &&
|
||||||
food.variations[0].addons.length === 0
|
food.variations[0].addons.length === 0
|
||||||
) {
|
) {
|
||||||
await addCartItem(food._id, food.variations[0]._id)
|
await addCartItem(food._id, food.variations[0]._id);
|
||||||
navigation.navigate(NAVIGATION_SCREEN.Cart)
|
navigation.navigate(NAVIGATION_SCREEN.Cart);
|
||||||
} else {
|
} else {
|
||||||
navigation.navigate(NAVIGATION_SCREEN.ItemDetail, { food })
|
navigation.navigate(NAVIGATION_SCREEN.ItemDetail, { food });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -92,19 +93,20 @@ function MenuItems() {
|
||||||
return (
|
return (
|
||||||
<TouchableOpacity
|
<TouchableOpacity
|
||||||
onPress={() => {
|
onPress={() => {
|
||||||
onAddToCart(item)
|
onAddToCart(item);
|
||||||
}}
|
}}
|
||||||
activeOpacity={0.7}
|
activeOpacity={0.7}
|
||||||
style={styles.cardContainer}>
|
style={styles.cardContainer}
|
||||||
|
>
|
||||||
<View style={styles.cardImageContainer}>
|
<View style={styles.cardImageContainer}>
|
||||||
<EnategaImage
|
<EnategaImage
|
||||||
imgStyle={styles.imgResponsive}
|
imgStyle={styles.imgResponsive}
|
||||||
imgSource={
|
imgSource={
|
||||||
item.img_url
|
item.img_url
|
||||||
? { uri: item.img_url }
|
? { uri: item.img_url }
|
||||||
: require('../../assets/images/food_placeholder.png')
|
: require("../../assets/images/food_placeholder.png")
|
||||||
}
|
}
|
||||||
resizeMode={'cover'}
|
resizeMode={"cover"}
|
||||||
spinnerProps={{ style: styles.loadingView }}
|
spinnerProps={{ style: styles.loadingView }}
|
||||||
/>
|
/>
|
||||||
{item.stock < 1 && (
|
{item.stock < 1 && (
|
||||||
|
@ -123,10 +125,11 @@ function MenuItems() {
|
||||||
numberOfLines={2}
|
numberOfLines={2}
|
||||||
textColor={styles.lightColor.color}
|
textColor={styles.lightColor.color}
|
||||||
small
|
small
|
||||||
medium>
|
medium
|
||||||
|
>
|
||||||
{item.description}
|
{item.description}
|
||||||
</TextDefault>
|
</TextDefault>
|
||||||
<View style={{ flexDirection: 'row', alignItems: 'center' }}>
|
<View style={{ flexDirection: "row", alignItems: "center" }}>
|
||||||
{item.variations[0].discounted > 0 && (
|
{item.variations[0].discounted > 0 && (
|
||||||
<TextDefault
|
<TextDefault
|
||||||
textColor={styles.lightColor.color}
|
textColor={styles.lightColor.color}
|
||||||
|
@ -134,61 +137,62 @@ function MenuItems() {
|
||||||
small
|
small
|
||||||
bold
|
bold
|
||||||
H5
|
H5
|
||||||
lineOver>
|
lineOver
|
||||||
{configuration.currency_symbol}{' '}
|
>
|
||||||
|
{configuration.currency_symbol}{" "}
|
||||||
{(
|
{(
|
||||||
item.variations[0].price + item.variations[0].discounted
|
item.variations[0].price + item.variations[0].discounted
|
||||||
).toFixed(2)}
|
).toFixed(2)}
|
||||||
</TextDefault>
|
</TextDefault>
|
||||||
)}
|
)}
|
||||||
<TextDefault textColor={styles.tagColor.color} H4 bolder>
|
<TextDefault textColor={styles.tagColor.color} H4 bolder>
|
||||||
{configuration.currency_symbol}{' '}
|
{configuration.currency_symbol}{" "}
|
||||||
{item.variations[0].price.toFixed(2)}
|
{item.variations[0].price.toFixed(2)}
|
||||||
</TextDefault>
|
</TextDefault>
|
||||||
</View>
|
</View>
|
||||||
</View>
|
</View>
|
||||||
</TouchableOpacity>
|
</TouchableOpacity>
|
||||||
)
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function sortData(foods) {
|
function sortData(foods) {
|
||||||
const VALUE = get(SORT_DATA, get(filters, 'sort'))
|
const VALUE = get(SORT_DATA, get(filters, "sort"));
|
||||||
switch (VALUE) {
|
switch (VALUE) {
|
||||||
case SORT_DATA.NameAsc:
|
case SORT_DATA.NameAsc:
|
||||||
return foods.sort((a, b) =>
|
return foods.sort((a, b) =>
|
||||||
a.title.toLowerCase() > b.title.toLowerCase() ? 1 : -1
|
a.title.toLowerCase() > b.title.toLowerCase() ? 1 : -1
|
||||||
)
|
);
|
||||||
case SORT_DATA.NameDesc:
|
case SORT_DATA.NameDesc:
|
||||||
return foods.sort((a, b) =>
|
return foods.sort((a, b) =>
|
||||||
a.title.toLowerCase() < b.title.toLowerCase() ? 1 : -1
|
a.title.toLowerCase() < b.title.toLowerCase() ? 1 : -1
|
||||||
)
|
);
|
||||||
case SORT_DATA.PriceAsc:
|
case SORT_DATA.PriceAsc:
|
||||||
return foods.sort((a, b) =>
|
return foods.sort((a, b) =>
|
||||||
a.variations[0].price > b.variations[0].price ? 1 : -1
|
a.variations[0].price > b.variations[0].price ? 1 : -1
|
||||||
)
|
);
|
||||||
case SORT_DATA.PriceDesc:
|
case SORT_DATA.PriceDesc:
|
||||||
return foods.sort((a, b) =>
|
return foods.sort((a, b) =>
|
||||||
a.variations[0].price < b.variations[0].price ? 1 : -1
|
a.variations[0].price < b.variations[0].price ? 1 : -1
|
||||||
)
|
);
|
||||||
default:
|
default:
|
||||||
return foods.sort((a, b) => (a.img_url < b.img_url ? 1 : -1))
|
return foods.sort((a, b) => (a.img_url < b.img_url ? 1 : -1));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const setFilterss = filterObj => {
|
const setFilterss = (filterObj) => {
|
||||||
setFilters(filterObj)
|
setFilters(filterObj);
|
||||||
}
|
};
|
||||||
|
|
||||||
function emptyView() {
|
function emptyView() {
|
||||||
if (loading) {
|
if (loading) {
|
||||||
return <Spinner />
|
return <Spinner />;
|
||||||
} else if (error) {
|
} else if (error) {
|
||||||
return (
|
return (
|
||||||
<TextError
|
<TextError
|
||||||
text={error ? error.message : 'No Foods'}
|
text={error ? error.message : "No Foods"}
|
||||||
backColor="transparent"
|
backColor="transparent"
|
||||||
/>
|
/>
|
||||||
)
|
);
|
||||||
} else {
|
} else {
|
||||||
return (
|
return (
|
||||||
<View style={styles.emptyContainer}>
|
<View style={styles.emptyContainer}>
|
||||||
|
@ -197,7 +201,7 @@ function MenuItems() {
|
||||||
No food item found
|
No food item found
|
||||||
</TextDefault>
|
</TextDefault>
|
||||||
</View>
|
</View>
|
||||||
)
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -210,27 +214,30 @@ function MenuItems() {
|
||||||
source={
|
source={
|
||||||
imgMenu
|
imgMenu
|
||||||
? { uri: imgMenu }
|
? { uri: imgMenu }
|
||||||
: require('../../assets/images/food_placeholder.png')
|
: require("../../assets/images/food_placeholder.png")
|
||||||
}>
|
}
|
||||||
|
>
|
||||||
<View style={styles.shadeContainer}></View>
|
<View style={styles.shadeContainer}></View>
|
||||||
<View style={styles.backgroundImageTextContainer}>
|
<View style={styles.backgroundImageTextContainer}>
|
||||||
<TextDefault
|
<TextDefault
|
||||||
numberOfLines={1}
|
numberOfLines={1}
|
||||||
textColor={styles.whiteFont.color}
|
textColor={styles.whiteFont.color}
|
||||||
H4
|
H4
|
||||||
bolder>
|
bolder
|
||||||
|
>
|
||||||
{title}
|
{title}
|
||||||
</TextDefault>
|
</TextDefault>
|
||||||
<TextDefault
|
<TextDefault
|
||||||
numberOfLines={1}
|
numberOfLines={1}
|
||||||
textColor={styles.whiteFont.color}
|
textColor={styles.whiteFont.color}
|
||||||
bold>
|
bold
|
||||||
|
>
|
||||||
{description}
|
{description}
|
||||||
</TextDefault>
|
</TextDefault>
|
||||||
</View>
|
</View>
|
||||||
</ImageBackground>
|
</ImageBackground>
|
||||||
</View>
|
</View>
|
||||||
)
|
);
|
||||||
}
|
}
|
||||||
return (
|
return (
|
||||||
<WrapperView>
|
<WrapperView>
|
||||||
|
@ -240,13 +247,13 @@ function MenuItems() {
|
||||||
contentContainerStyle={styles.contentContaienr}
|
contentContainerStyle={styles.contentContaienr}
|
||||||
showsVerticalScrollIndicator={false}
|
showsVerticalScrollIndicator={false}
|
||||||
ListHeaderComponent={renderListHeader()}
|
ListHeaderComponent={renderListHeader()}
|
||||||
keyExtractor={item => item._id}
|
keyExtractor={(item) => item._id}
|
||||||
ListEmptyComponent={emptyView}
|
ListEmptyComponent={emptyView}
|
||||||
data={loading ? [] : error ? [] : sortData(data.foodByCategory)}
|
data={loading ? [] : error ? [] : sortData(data.foodByCategory)}
|
||||||
refreshing={networkStatus === 4}
|
refreshing={networkStatus === 4}
|
||||||
onRefresh={() =>
|
onRefresh={() =>
|
||||||
refetch({
|
refetch({
|
||||||
variables: { category: _id, ...filters }
|
variables: { category: _id, ...filters },
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
renderItem={({ item }) => renderGridCards(item)}
|
renderItem={({ item }) => renderGridCards(item)}
|
||||||
|
@ -259,10 +266,11 @@ function MenuItems() {
|
||||||
modalTopOffset={headerHeight}
|
modalTopOffset={headerHeight}
|
||||||
avoidKeyboardLikeIOS={Platform.select({
|
avoidKeyboardLikeIOS={Platform.select({
|
||||||
ios: true,
|
ios: true,
|
||||||
android: false
|
android: false,
|
||||||
})}
|
})}
|
||||||
keyboardAvoidingOffset={2}
|
keyboardAvoidingOffset={2}
|
||||||
keyboardAvoidingBehavior="height">
|
keyboardAvoidingBehavior="height"
|
||||||
|
>
|
||||||
<FilterModal
|
<FilterModal
|
||||||
filterObj={filters}
|
filterObj={filters}
|
||||||
setFilters={setFilterss}
|
setFilters={setFilterss}
|
||||||
|
@ -270,6 +278,6 @@ function MenuItems() {
|
||||||
/>
|
/>
|
||||||
</Modalize>
|
</Modalize>
|
||||||
</WrapperView>
|
</WrapperView>
|
||||||
)
|
);
|
||||||
}
|
}
|
||||||
export default MenuItems
|
export default MenuItems;
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
> Why do I have a folder named ".expo" in my project?
|
||||||
|
|
||||||
|
The ".expo" folder is created when an Expo project is started using "expo start" command.
|
||||||
|
|
||||||
|
> What do the files contain?
|
||||||
|
|
||||||
|
- "devices.json": contains information about devices that have recently opened this project. This is used to populate the "Development sessions" list in your development builds.
|
||||||
|
- "packager-info.json": contains port numbers and process PIDs that are used to serve the application to the mobile device/simulator.
|
||||||
|
- "settings.json": contains the server configuration that is used to serve the application manifest.
|
||||||
|
|
||||||
|
> Should I commit the ".expo" folder?
|
||||||
|
|
||||||
|
No, you should not share the ".expo" folder. It does not contain any information that is relevant for other developers working on the project, it is specific to your machine.
|
||||||
|
|
||||||
|
Upon project creation, the ".expo" folder is already added to your ".gitignore" file.
|
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"devices": []
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
"expoServerPort": null,
|
||||||
|
"packagerPort": null,
|
||||||
|
"packagerPid": null,
|
||||||
|
"expoServerNgrokUrl": null,
|
||||||
|
"packagerNgrokUrl": null,
|
||||||
|
"ngrokPid": null,
|
||||||
|
"webpackServerPort": null
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
"hostType": "lan",
|
||||||
|
"lanType": "ip",
|
||||||
|
"dev": true,
|
||||||
|
"minify": false,
|
||||||
|
"urlRandomness": null,
|
||||||
|
"https": false,
|
||||||
|
"scheme": null
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
/node_modules
|
130
Rider App/App.js
130
Rider App/App.js
|
@ -1,96 +1,98 @@
|
||||||
import { ApolloProvider } from '@apollo/react-hooks'
|
import { ApolloProvider } from "@apollo/react-hooks";
|
||||||
import AsyncStorage from '@react-native-async-storage/async-storage'
|
import AsyncStorage from "@react-native-async-storage/async-storage";
|
||||||
import * as Font from 'expo-font'
|
import * as Font from "expo-font";
|
||||||
import * as Notifications from 'expo-notifications'
|
import * as Notifications from "expo-notifications";
|
||||||
import * as SplashScreen from 'expo-splash-screen'
|
import * as SplashScreen from "expo-splash-screen";
|
||||||
import React, { useEffect, useState } from 'react'
|
import React, { useEffect, useState } from "react";
|
||||||
import { Platform, StatusBar } from 'react-native'
|
import { Platform, StatusBar } from "react-native";
|
||||||
import FlashMessage from 'react-native-flash-message'
|
import FlashMessage from "react-native-flash-message";
|
||||||
import i18n from './i18n'
|
import i18n from "./i18n";
|
||||||
import setupApolloClient from './src/apollo/index'
|
import setupApolloClient from "./src/apollo/index";
|
||||||
import { AuthContext } from './src/context/auth'
|
import { AuthContext } from "./src/context/auth";
|
||||||
import { ConfigurationProvider } from './src/context/configuration'
|
import { ConfigurationProvider } from "./src/context/configuration";
|
||||||
import AppContainer from './src/routes/index'
|
import AppContainer from "./src/routes/index";
|
||||||
|
|
||||||
export default function App() {
|
export default function App() {
|
||||||
const [fontLoaded, setFontLoaded] = useState(false)
|
const [fontLoaded, setFontLoaded] = useState(false);
|
||||||
const [client, setClient] = useState(null)
|
const [client, setClient] = useState(null);
|
||||||
const [token, setToken] = useState(false)
|
const [token, setToken] = useState(false);
|
||||||
const [appIsReady, setAppIsReady] = useState(false)
|
const [appIsReady, setAppIsReady] = useState(false);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
;(async () => {
|
(async () => {
|
||||||
const token = await AsyncStorage.getItem('rider-token')
|
const token = await AsyncStorage.getItem("rider-token");
|
||||||
if (token) setToken(token)
|
if (token) setToken(token);
|
||||||
setAppIsReady(true)
|
setAppIsReady(true);
|
||||||
})()
|
})();
|
||||||
}, [])
|
}, []);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
;(async () => {
|
(async () => {
|
||||||
try {
|
try {
|
||||||
await SplashScreen.preventAutoHideAsync()
|
await SplashScreen.preventAutoHideAsync();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log(e)
|
console.log(e);
|
||||||
}
|
}
|
||||||
})()
|
})();
|
||||||
loadData()
|
loadData();
|
||||||
}, [])
|
}, []);
|
||||||
|
|
||||||
const setTokenAsync = async token => {
|
const setTokenAsync = async (token) => {
|
||||||
await AsyncStorage.setItem('rider-token', token)
|
await AsyncStorage.setItem("rider-token", token);
|
||||||
setToken(token)
|
setToken(token);
|
||||||
}
|
};
|
||||||
|
|
||||||
const logout = async () => {
|
const logout = async () => {
|
||||||
try {
|
try {
|
||||||
await AsyncStorage.removeItem('rider-token')
|
await AsyncStorage.removeItem("rider-token");
|
||||||
setToken(null)
|
setToken(null);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log('Logout Error: ', e)
|
console.log("Logout Error: ", e);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
};
|
||||||
|
|
||||||
async function loadData() {
|
async function loadData() {
|
||||||
await i18n.initAsync()
|
await i18n.initAsync();
|
||||||
await Font.loadAsync({
|
await Font.loadAsync({
|
||||||
MuseoSans300: require('./assets/font/MuseoSans/MuseoSans300.ttf'),
|
MuseoSans300: require("./assets/font/MuseoSans/MuseoSans300.ttf"),
|
||||||
MuseoSans500: require('./assets/font/MuseoSans/MuseoSans500.ttf'),
|
MuseoSans500: require("./assets/font/MuseoSans/MuseoSans500.ttf"),
|
||||||
MuseoSans700: require('./assets/font/MuseoSans/MuseoSans700.ttf'),
|
MuseoSans700: require("./assets/font/MuseoSans/MuseoSans700.ttf"),
|
||||||
icomoon: require('./assets/font/icomoon.ttf')
|
icomoon: require("./assets/font/icomoon.ttf"),
|
||||||
})
|
});
|
||||||
const client = await setupApolloClient()
|
const client = await setupApolloClient();
|
||||||
await permissionForPushNotificationsAsync()
|
await permissionForPushNotificationsAsync();
|
||||||
setClient(client)
|
setClient(client);
|
||||||
setFontLoaded(true)
|
setFontLoaded(true);
|
||||||
await SplashScreen.hideAsync()
|
await SplashScreen.hideAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
async function permissionForPushNotificationsAsync() {
|
async function permissionForPushNotificationsAsync() {
|
||||||
const { status: existingStatus } = await Notifications.getPermissionsAsync()
|
const {
|
||||||
let finalStatus = existingStatus
|
status: existingStatus,
|
||||||
|
} = await Notifications.getPermissionsAsync();
|
||||||
|
let finalStatus = existingStatus;
|
||||||
// only ask if permissions have not already been determined, because
|
// only ask if permissions have not already been determined, because
|
||||||
// iOS won't necessarily prompt the user a second time.
|
// iOS won't necessarily prompt the user a second time.
|
||||||
if (existingStatus !== 'granted') {
|
if (existingStatus !== "granted") {
|
||||||
// Android remote notification permissions are granted during the app
|
// Android remote notification permissions are granted during the app
|
||||||
// install, so this will only ask on iOS
|
// install, so this will only ask on iOS
|
||||||
const { status } = await Notifications.requestPermissionsAsync()
|
const { status } = await Notifications.requestPermissionsAsync();
|
||||||
finalStatus = status
|
finalStatus = status;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Stop here if the user did not grant permissions
|
// Stop here if the user did not grant permissions
|
||||||
if (finalStatus !== 'granted') {
|
if (finalStatus !== "granted") {
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Platform.OS === 'android') {
|
if (Platform.OS === "android") {
|
||||||
Notifications.setNotificationChannelAsync('default', {
|
Notifications.setNotificationChannelAsync("default", {
|
||||||
name: 'default',
|
name: "default",
|
||||||
sound: true,
|
sound: true,
|
||||||
priority: 'max',
|
priority: "max",
|
||||||
importance: Notifications.AndroidImportance.HIGH,
|
importance: Notifications.AndroidImportance.HIGH,
|
||||||
vibrate: [0, 250, 250, 250]
|
vibrate: [0, 250, 250, 250],
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -99,7 +101,7 @@ export default function App() {
|
||||||
<ApolloProvider client={client}>
|
<ApolloProvider client={client}>
|
||||||
<StatusBar
|
<StatusBar
|
||||||
translucent
|
translucent
|
||||||
backgroundColor={'transparent'}
|
backgroundColor={"transparent"}
|
||||||
barStyle="dark-content"
|
barStyle="dark-content"
|
||||||
/>
|
/>
|
||||||
<ConfigurationProvider>
|
<ConfigurationProvider>
|
||||||
|
@ -109,7 +111,7 @@ export default function App() {
|
||||||
</ConfigurationProvider>
|
</ConfigurationProvider>
|
||||||
<FlashMessage duration={2000} position="center" />
|
<FlashMessage duration={2000} position="center" />
|
||||||
</ApolloProvider>
|
</ApolloProvider>
|
||||||
)
|
);
|
||||||
}
|
}
|
||||||
return null
|
return null;
|
||||||
}
|
}
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -24,8 +24,8 @@
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@apollo/react-hooks": "^3.1.3",
|
"@apollo/react-hooks": "^3.1.3",
|
||||||
"@expo/vector-icons": "^12.0.0",
|
"@expo/vector-icons": "^13.0.0",
|
||||||
"@react-native-async-storage/async-storage": "~1.15.0",
|
"@react-native-async-storage/async-storage": "~1.17.3",
|
||||||
"@react-native-community/masked-view": "0.1.10",
|
"@react-native-community/masked-view": "0.1.10",
|
||||||
"@react-navigation/bottom-tabs": "^5.11.11",
|
"@react-navigation/bottom-tabs": "^5.11.11",
|
||||||
"@react-navigation/drawer": "^5.12.5",
|
"@react-navigation/drawer": "^5.12.5",
|
||||||
|
@ -39,39 +39,40 @@
|
||||||
"apollo-link-state": "^0.4.2",
|
"apollo-link-state": "^0.4.2",
|
||||||
"apollo-link-ws": "^1.0.20",
|
"apollo-link-ws": "^1.0.20",
|
||||||
"apollo-upload-client": "^10.0.1",
|
"apollo-upload-client": "^10.0.1",
|
||||||
"expo": "^44.0.0",
|
"deprecated-react-native-prop-types": "^4.0.0",
|
||||||
"expo-constants": "~13.0.1",
|
"expo": "^47.0.0",
|
||||||
"expo-font": "~10.0.4",
|
"expo-constants": "~14.0.2",
|
||||||
"expo-localization": "~12.0.0",
|
"expo-font": "~11.0.1",
|
||||||
"expo-location": "~14.0.1",
|
"expo-localization": "~14.0.0",
|
||||||
"expo-notifications": "~0.14.0",
|
"expo-location": "~15.0.1",
|
||||||
"expo-splash-screen": "~0.14.1",
|
"expo-notifications": "~0.17.0",
|
||||||
"expo-task-manager": "~10.1.0",
|
"expo-splash-screen": "~0.17.5",
|
||||||
"expo-updates": "~0.11.6",
|
"expo-task-manager": "~11.0.1",
|
||||||
|
"expo-updates": "~0.15.6",
|
||||||
"graphql": "^14.3.1",
|
"graphql": "^14.3.1",
|
||||||
"graphql-tag": "^2.10.1",
|
"graphql-tag": "^2.10.1",
|
||||||
"i18n-js": "^3.3.0",
|
"i18n-js": "^3.3.0",
|
||||||
"patch-package": "^6.2.2",
|
"patch-package": "^6.5.1",
|
||||||
"react": "17.0.1",
|
"react": "18.1.0",
|
||||||
"react-apollo": "^2.5.8",
|
"react-apollo": "^2.5.8",
|
||||||
"react-native": "0.64.3",
|
"react-native": "0.70.5",
|
||||||
"react-native-animatable": "^1.3.2",
|
"react-native-animatable": "^1.3.2",
|
||||||
"react-native-flash-message": "^0.1.13",
|
"react-native-flash-message": "^0.1.13",
|
||||||
"react-native-gesture-handler": "~2.1.0",
|
"react-native-gesture-handler": "~2.8.0",
|
||||||
"react-native-gifted-chat": "^0.16.3",
|
"react-native-gifted-chat": "^0.16.3",
|
||||||
"react-native-maps": "0.29.4",
|
"react-native-maps": "1.3.2",
|
||||||
"react-native-maps-directions": "^1.8.0",
|
"react-native-maps-directions": "^1.8.0",
|
||||||
"react-native-material-textfield": "^0.16.1",
|
"react-native-material-textfield": "^0.16.1",
|
||||||
"react-native-modal": "^11.5.6",
|
"react-native-modal": "^11.5.6",
|
||||||
"react-native-reanimated": "~2.3.1",
|
"react-native-reanimated": "~2.12.0",
|
||||||
"react-native-safe-area-context": "3.3.2",
|
"react-native-safe-area-context": "4.4.1",
|
||||||
"react-native-screens": "~3.10.1",
|
"react-native-screens": "~3.18.0",
|
||||||
"react-native-svg": "12.1.1",
|
"react-native-svg": "13.4.0",
|
||||||
"react-native-webview": "11.15.0",
|
"react-native-webview": "11.23.1",
|
||||||
"subscriptions-transport-ws": "^0.9.16"
|
"subscriptions-transport-ws": "^0.9.16"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"babel-preset-expo": "9.0.2",
|
"babel-preset-expo": "~9.2.1",
|
||||||
"eslint": "^7.1.0",
|
"eslint": "^7.1.0",
|
||||||
"eslint-config-standard": "^14.1.1",
|
"eslint-config-standard": "^14.1.1",
|
||||||
"eslint-plugin-import": "^2.20.2",
|
"eslint-plugin-import": "^2.20.2",
|
||||||
|
|
|
@ -1,21 +1,108 @@
|
||||||
diff --git a/node_modules/react-native-material-textfield/src/components/affix/index.js b/node_modules/react-native-material-textfield/src/components/affix/index.js
|
diff --git a/node_modules/react-native-material-textfield/src/components/affix/index.js b/node_modules/react-native-material-textfield/src/components/affix/index.js
|
||||||
index 0f85022..c12b3a6 100644
|
index 0f85022..e467adb 100644
|
||||||
--- a/node_modules/react-native-material-textfield/src/components/affix/index.js
|
--- a/node_modules/react-native-material-textfield/src/components/affix/index.js
|
||||||
+++ b/node_modules/react-native-material-textfield/src/components/affix/index.js
|
+++ b/node_modules/react-native-material-textfield/src/components/affix/index.js
|
||||||
@@ -11,7 +11,7 @@ export default class Affix extends PureComponent {
|
@@ -9,26 +9,26 @@ export default class Affix extends PureComponent {
|
||||||
|
numberOfLines: 1,
|
||||||
|
};
|
||||||
|
|
||||||
static propTypes = {
|
- static propTypes = {
|
||||||
numberOfLines: PropTypes.number,
|
- numberOfLines: PropTypes.number,
|
||||||
- style: Animated.Text.propTypes.style,
|
- style: Animated.Text.propTypes.style,
|
||||||
+ style: PropTypes.object,
|
+ // static propTypes = {
|
||||||
|
+ // numberOfLines: PropTypes.number,
|
||||||
|
+ // style: PropTypes.object,
|
||||||
|
|
||||||
color: PropTypes.string.isRequired,
|
- color: PropTypes.string.isRequired,
|
||||||
fontSize: PropTypes.number.isRequired,
|
- fontSize: PropTypes.number.isRequired,
|
||||||
|
+ // color: PropTypes.string.isRequired,
|
||||||
|
+ // fontSize: PropTypes.number.isRequired,
|
||||||
|
|
||||||
|
- type: PropTypes
|
||||||
|
- .oneOf(['prefix', 'suffix'])
|
||||||
|
- .isRequired,
|
||||||
|
+ // type: PropTypes
|
||||||
|
+ // .oneOf(['prefix', 'suffix'])
|
||||||
|
+ // .isRequired,
|
||||||
|
|
||||||
|
- labelAnimation: PropTypes
|
||||||
|
- .instanceOf(Animated.Value)
|
||||||
|
- .isRequired,
|
||||||
|
+ // labelAnimation: PropTypes
|
||||||
|
+ // .instanceOf(Animated.Value)
|
||||||
|
+ // .isRequired,
|
||||||
|
|
||||||
|
- children: PropTypes.oneOfType([
|
||||||
|
- PropTypes.arrayOf(PropTypes.node),
|
||||||
|
- PropTypes.node,
|
||||||
|
- ]),
|
||||||
|
- };
|
||||||
|
+ // children: PropTypes.oneOfType([
|
||||||
|
+ // PropTypes.arrayOf(PropTypes.node),
|
||||||
|
+ // PropTypes.node,
|
||||||
|
+ // ]),
|
||||||
|
+ // };
|
||||||
|
|
||||||
|
render() {
|
||||||
|
let { labelAnimation, style, children, type, fontSize, color } = this.props;
|
||||||
|
diff --git a/node_modules/react-native-material-textfield/src/components/counter/index.js b/node_modules/react-native-material-textfield/src/components/counter/index.js
|
||||||
|
index 35d3264..e4258cd 100644
|
||||||
|
--- a/node_modules/react-native-material-textfield/src/components/counter/index.js
|
||||||
|
+++ b/node_modules/react-native-material-textfield/src/components/counter/index.js
|
||||||
|
@@ -5,15 +5,15 @@ import { Text } from 'react-native';
|
||||||
|
import styles from './styles';
|
||||||
|
|
||||||
|
export default class Counter extends PureComponent {
|
||||||
|
- static propTypes = {
|
||||||
|
- count: PropTypes.number.isRequired,
|
||||||
|
- limit: PropTypes.number,
|
||||||
|
+ // static propTypes = {
|
||||||
|
+ // count: PropTypes.number.isRequired,
|
||||||
|
+ // limit: PropTypes.number,
|
||||||
|
|
||||||
|
- baseColor: PropTypes.string.isRequired,
|
||||||
|
- errorColor: PropTypes.string.isRequired,
|
||||||
|
+ // baseColor: PropTypes.string.isRequired,
|
||||||
|
+ // errorColor: PropTypes.string.isRequired,
|
||||||
|
|
||||||
|
- style: Text.propTypes.style,
|
||||||
|
- };
|
||||||
|
+ // style: Text.propTypes.style,
|
||||||
|
+ // };
|
||||||
|
|
||||||
|
render() {
|
||||||
|
let { count, limit, baseColor, errorColor, style } = this.props;
|
||||||
diff --git a/node_modules/react-native-material-textfield/src/components/field/index.js b/node_modules/react-native-material-textfield/src/components/field/index.js
|
diff --git a/node_modules/react-native-material-textfield/src/components/field/index.js b/node_modules/react-native-material-textfield/src/components/field/index.js
|
||||||
index 494bbaa..9bbf2e2 100644
|
index 494bbaa..d3960a6 100644
|
||||||
--- a/node_modules/react-native-material-textfield/src/components/field/index.js
|
--- a/node_modules/react-native-material-textfield/src/components/field/index.js
|
||||||
+++ b/node_modules/react-native-material-textfield/src/components/field/index.js
|
+++ b/node_modules/react-native-material-textfield/src/components/field/index.js
|
||||||
@@ -221,6 +221,7 @@ export default class TextField extends PureComponent {
|
@@ -1,4 +1,5 @@
|
||||||
|
import PropTypes from 'prop-types';
|
||||||
|
+import {ViewPropTypes} from 'deprecated-react-native-prop-types'
|
||||||
|
import React, { PureComponent } from 'react';
|
||||||
|
import {
|
||||||
|
View,
|
||||||
|
@@ -7,7 +8,7 @@ import {
|
||||||
|
Animated,
|
||||||
|
StyleSheet,
|
||||||
|
Platform,
|
||||||
|
- ViewPropTypes,
|
||||||
|
+ //ViewPropTypes,
|
||||||
|
} from 'react-native';
|
||||||
|
|
||||||
|
import Line from '../line';
|
||||||
|
@@ -83,9 +84,7 @@ export default class TextField extends PureComponent {
|
||||||
|
|
||||||
|
labelOffset: Label.propTypes.offset,
|
||||||
|
|
||||||
|
- labelTextStyle: Text.propTypes.style,
|
||||||
|
- titleTextStyle: Text.propTypes.style,
|
||||||
|
- affixTextStyle: Text.propTypes.style,
|
||||||
|
+
|
||||||
|
|
||||||
|
tintColor: PropTypes.string,
|
||||||
|
textColor: PropTypes.string,
|
||||||
|
@@ -221,6 +220,7 @@ export default class TextField extends PureComponent {
|
||||||
|
|
||||||
let options = {
|
let options = {
|
||||||
toValue: this.focusState(),
|
toValue: this.focusState(),
|
||||||
|
@ -24,22 +111,59 @@ index 494bbaa..9bbf2e2 100644
|
||||||
};
|
};
|
||||||
|
|
||||||
diff --git a/node_modules/react-native-material-textfield/src/components/helper/index.js b/node_modules/react-native-material-textfield/src/components/helper/index.js
|
diff --git a/node_modules/react-native-material-textfield/src/components/helper/index.js b/node_modules/react-native-material-textfield/src/components/helper/index.js
|
||||||
index 6060f9f..fe9d9c4 100644
|
index 6060f9f..7f790ca 100644
|
||||||
--- a/node_modules/react-native-material-textfield/src/components/helper/index.js
|
--- a/node_modules/react-native-material-textfield/src/components/helper/index.js
|
||||||
+++ b/node_modules/react-native-material-textfield/src/components/helper/index.js
|
+++ b/node_modules/react-native-material-textfield/src/components/helper/index.js
|
||||||
@@ -11,7 +11,7 @@ export default class Helper extends PureComponent {
|
@@ -5,19 +5,19 @@ import { Animated } from 'react-native';
|
||||||
|
import styles from './styles';
|
||||||
|
|
||||||
disabled: PropTypes.bool,
|
export default class Helper extends PureComponent {
|
||||||
|
- static propTypes = {
|
||||||
|
- title: PropTypes.string,
|
||||||
|
- error: PropTypes.string,
|
||||||
|
+ // static propTypes = {
|
||||||
|
+ // title: PropTypes.string,
|
||||||
|
+ // error: PropTypes.string,
|
||||||
|
|
||||||
|
- disabled: PropTypes.bool,
|
||||||
|
+ // disabled: PropTypes.bool,
|
||||||
|
|
||||||
- style: Animated.Text.propTypes.style,
|
- style: Animated.Text.propTypes.style,
|
||||||
+ style: PropTypes.object,
|
+ // style: PropTypes.object,
|
||||||
|
|
||||||
baseColor: PropTypes.string,
|
- baseColor: PropTypes.string,
|
||||||
errorColor: PropTypes.string,
|
- errorColor: PropTypes.string,
|
||||||
|
+ // baseColor: PropTypes.string,
|
||||||
|
+ // errorColor: PropTypes.string,
|
||||||
|
|
||||||
|
- focusAnimation: PropTypes.instanceOf(Animated.Value),
|
||||||
|
- };
|
||||||
|
+ // focusAnimation: PropTypes.instanceOf(Animated.Value),
|
||||||
|
+ // };
|
||||||
|
|
||||||
|
constructor(props) {
|
||||||
|
super(props);
|
||||||
diff --git a/node_modules/react-native-material-textfield/src/components/label/index.js b/node_modules/react-native-material-textfield/src/components/label/index.js
|
diff --git a/node_modules/react-native-material-textfield/src/components/label/index.js b/node_modules/react-native-material-textfield/src/components/label/index.js
|
||||||
index 82eaf03..809fcdd 100644
|
index 82eaf03..eebad36 100644
|
||||||
--- a/node_modules/react-native-material-textfield/src/components/label/index.js
|
--- a/node_modules/react-native-material-textfield/src/components/label/index.js
|
||||||
+++ b/node_modules/react-native-material-textfield/src/components/label/index.js
|
+++ b/node_modules/react-native-material-textfield/src/components/label/index.js
|
||||||
|
@@ -5,11 +5,11 @@ import { Animated } from 'react-native';
|
||||||
|
import styles from './styles';
|
||||||
|
|
||||||
|
export default class Label extends PureComponent {
|
||||||
|
- static defaultProps = {
|
||||||
|
- numberOfLines: 1,
|
||||||
|
- disabled: false,
|
||||||
|
- restricted: false,
|
||||||
|
- };
|
||||||
|
+ // static defaultProps = {
|
||||||
|
+ // numberOfLines: 1,
|
||||||
|
+ // disabled: false,
|
||||||
|
+ // restricted: false,
|
||||||
|
+ // };
|
||||||
|
|
||||||
|
static propTypes = {
|
||||||
|
numberOfLines: PropTypes.number,
|
||||||
@@ -43,7 +43,7 @@ export default class Label extends PureComponent {
|
@@ -43,7 +43,7 @@ export default class Label extends PureComponent {
|
||||||
y1: PropTypes.number,
|
y1: PropTypes.number,
|
||||||
}),
|
}),
|
||||||
|
@ -49,3 +173,79 @@ index 82eaf03..809fcdd 100644
|
||||||
label: PropTypes.string,
|
label: PropTypes.string,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
diff --git a/node_modules/react-native-material-textfield/src/components/line/index.js b/node_modules/react-native-material-textfield/src/components/line/index.js
|
||||||
|
index 44995e9..7ba8db0 100644
|
||||||
|
--- a/node_modules/react-native-material-textfield/src/components/line/index.js
|
||||||
|
+++ b/node_modules/react-native-material-textfield/src/components/line/index.js
|
||||||
|
@@ -8,13 +8,13 @@ const lineTypes = PropTypes
|
||||||
|
.oneOf(['solid', 'dotted', 'dashed', 'none']);
|
||||||
|
|
||||||
|
export default class Line extends PureComponent {
|
||||||
|
- static defaultProps = {
|
||||||
|
- lineType: 'solid',
|
||||||
|
- disabledLineType: 'dotted',
|
||||||
|
+ // static defaultProps = {
|
||||||
|
+ // lineType: 'solid',
|
||||||
|
+ // disabledLineType: 'dotted',
|
||||||
|
|
||||||
|
- disabled: false,
|
||||||
|
- restricted: false,
|
||||||
|
- };
|
||||||
|
+ // disabled: false,
|
||||||
|
+ // restricted: false,
|
||||||
|
+ // };
|
||||||
|
|
||||||
|
static propTypes = {
|
||||||
|
lineType: lineTypes,
|
||||||
|
diff --git a/node_modules/react-native-material-textfield/src/components/outline/index.js b/node_modules/react-native-material-textfield/src/components/outline/index.js
|
||||||
|
index 9347a99..9c3e8a3 100644
|
||||||
|
--- a/node_modules/react-native-material-textfield/src/components/outline/index.js
|
||||||
|
+++ b/node_modules/react-native-material-textfield/src/components/outline/index.js
|
||||||
|
@@ -11,29 +11,29 @@ export default class Line extends PureComponent {
|
||||||
|
restricted: false,
|
||||||
|
};
|
||||||
|
|
||||||
|
- static propTypes = {
|
||||||
|
- lineType: PropTypes.oneOf(['solid', 'none']),
|
||||||
|
+ // static propTypes = {
|
||||||
|
+ // lineType: PropTypes.oneOf(['solid', 'none']),
|
||||||
|
|
||||||
|
- disabled: PropTypes.bool,
|
||||||
|
- restricted: PropTypes.bool,
|
||||||
|
+ // disabled: PropTypes.bool,
|
||||||
|
+ // restricted: PropTypes.bool,
|
||||||
|
|
||||||
|
- tintColor: PropTypes.string,
|
||||||
|
- baseColor: PropTypes.string,
|
||||||
|
- errorColor: PropTypes.string,
|
||||||
|
+ // tintColor: PropTypes.string,
|
||||||
|
+ // baseColor: PropTypes.string,
|
||||||
|
+ // errorColor: PropTypes.string,
|
||||||
|
|
||||||
|
- lineWidth: PropTypes.number,
|
||||||
|
- activeLineWidth: PropTypes.number,
|
||||||
|
- disabledLineWidth: PropTypes.number,
|
||||||
|
+ // lineWidth: PropTypes.number,
|
||||||
|
+ // activeLineWidth: PropTypes.number,
|
||||||
|
+ // disabledLineWidth: PropTypes.number,
|
||||||
|
|
||||||
|
- focusAnimation: PropTypes.instanceOf(Animated.Value),
|
||||||
|
- labelAnimation: PropTypes.instanceOf(Animated.Value),
|
||||||
|
- labelWidth: PropTypes.instanceOf(Animated.Value),
|
||||||
|
+ // focusAnimation: PropTypes.instanceOf(Animated.Value),
|
||||||
|
+ // labelAnimation: PropTypes.instanceOf(Animated.Value),
|
||||||
|
+ // labelWidth: PropTypes.instanceOf(Animated.Value),
|
||||||
|
|
||||||
|
- contentInset: PropTypes.shape({
|
||||||
|
- left: PropTypes.number,
|
||||||
|
- right: PropTypes.number,
|
||||||
|
- }),
|
||||||
|
- };
|
||||||
|
+ // contentInset: PropTypes.shape({
|
||||||
|
+ // left: PropTypes.number,
|
||||||
|
+ // right: PropTypes.number,
|
||||||
|
+ // }),
|
||||||
|
+ // };
|
||||||
|
|
||||||
|
borderProps() {
|
||||||
|
let {
|
||||||
|
|
Loading…
Reference in New Issue