diff --git a/App.js b/App.js
index 50421cd..8c31c82 100644
--- a/App.js
+++ b/App.js
@@ -1,7 +1,7 @@
import React from 'react';
import MainNavigator from './src/navigations/MainNavigator';
-
+import 'react-native-gesture-handler';
const App = () => {
return ;
};
diff --git a/android/app/build.gradle b/android/app/build.gradle
index 86942bf..97851fd 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -128,12 +128,16 @@ def reactNativeArchitectures() {
return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"]
}
+
+
+
android {
ndkVersion rootProject.ext.ndkVersion
compileSdkVersion rootProject.ext.compileSdkVersion
defaultConfig {
+
applicationId "com.travelapp"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
@@ -160,6 +164,17 @@ android {
}
}
}
+
+ }
+ signingConfigs {
+ release {
+ if (project.hasProperty('MYAPP_UPLOAD_STORE_FILE')) {
+ storeFile file(MYAPP_UPLOAD_STORE_FILE)
+ storePassword MYAPP_UPLOAD_STORE_PASSWORD
+
+ keyPassword MYAPP_UPLOAD_KEY_PASSWORD
+ }
+ }
}
if (isNewArchitectureEnabled()) {
@@ -222,11 +237,14 @@ android {
buildTypes {
debug {
signingConfig signingConfigs.debug
+
}
release {
+ signingConfig signingConfigs.release
// Caution! In production, you need to generate your own keystore file.
// see https://reactnative.dev/docs/signed-apk-android.
- signingConfig signingConfigs.debug
+ //signingConfig signingConfigs.debug
+ signingConfig signingConfigs.release
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
}
diff --git a/android/gradle.properties b/android/gradle.properties
index fa4feae..9331bd7 100644
--- a/android/gradle.properties
+++ b/android/gradle.properties
@@ -38,3 +38,7 @@ reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64
# to write custom TurboModules/Fabric components OR use libraries that
# are providing them.
newArchEnabled=false
+MYAPP_UPLOAD_STORE_FILE=appHotel.jsk
+
+MYAPP_UPLOAD_STORE_PASSWORD=priscila
+MYAPP_UPLOAD_KEY_PASSWORD=priscila
diff --git a/assets/images/trips/0e627c12c05e4dd93ab122d618ea7849.jpeg b/assets/images/trips/0e627c12c05e4dd93ab122d618ea7849.jpeg
deleted file mode 100644
index 12e422b..0000000
Binary files a/assets/images/trips/0e627c12c05e4dd93ab122d618ea7849.jpeg and /dev/null differ
diff --git a/assets/images/trips/2082f59465c39094ce90bebd0fcf8fa7.jpeg b/assets/images/trips/2082f59465c39094ce90bebd0fcf8fa7.jpeg
deleted file mode 100644
index 364ec24..0000000
Binary files a/assets/images/trips/2082f59465c39094ce90bebd0fcf8fa7.jpeg and /dev/null differ
diff --git a/assets/images/trips/3722dd4614a5a58f2ec8ebf17c22f76d.jpeg b/assets/images/trips/3722dd4614a5a58f2ec8ebf17c22f76d.jpeg
deleted file mode 100644
index 5d72412..0000000
Binary files a/assets/images/trips/3722dd4614a5a58f2ec8ebf17c22f76d.jpeg and /dev/null differ
diff --git a/assets/images/trips/4c73f37e70dded978374960fb29360f2.jpeg b/assets/images/trips/4c73f37e70dded978374960fb29360f2.jpeg
deleted file mode 100644
index 22603c1..0000000
Binary files a/assets/images/trips/4c73f37e70dded978374960fb29360f2.jpeg and /dev/null differ
diff --git a/assets/images/trips/55608c7000bb15d24ee022f3d3f0bf8a.jpeg b/assets/images/trips/55608c7000bb15d24ee022f3d3f0bf8a.jpeg
deleted file mode 100644
index 6c56b59..0000000
Binary files a/assets/images/trips/55608c7000bb15d24ee022f3d3f0bf8a.jpeg and /dev/null differ
diff --git a/assets/images/trips/645d5f28e26c7de2a280f71db15c2141.jpeg b/assets/images/trips/645d5f28e26c7de2a280f71db15c2141.jpeg
deleted file mode 100644
index b5fd25d..0000000
Binary files a/assets/images/trips/645d5f28e26c7de2a280f71db15c2141.jpeg and /dev/null differ
diff --git a/assets/images/trips/922a0cb274208ccd234f6c14f2174b8b.jpeg b/assets/images/trips/922a0cb274208ccd234f6c14f2174b8b.jpeg
index 934fa61..668fc09 100644
Binary files a/assets/images/trips/922a0cb274208ccd234f6c14f2174b8b.jpeg and b/assets/images/trips/922a0cb274208ccd234f6c14f2174b8b.jpeg differ
diff --git a/assets/images/trips/af933a359582704eee05be198e882be0.jpeg b/assets/images/trips/af933a359582704eee05be198e882be0.jpeg
deleted file mode 100644
index c1d26e4..0000000
Binary files a/assets/images/trips/af933a359582704eee05be198e882be0.jpeg and /dev/null differ
diff --git a/assets/images/trips/c2dcbb54ca9316831b0f6ed4d4136dda.jpeg b/assets/images/trips/c2dcbb54ca9316831b0f6ed4d4136dda.jpeg
deleted file mode 100644
index e73d5b3..0000000
Binary files a/assets/images/trips/c2dcbb54ca9316831b0f6ed4d4136dda.jpeg and /dev/null differ
diff --git a/assets/images/trips/c68a4484f89d0c087ebdaa43629d2a7a.jpeg b/assets/images/trips/c68a4484f89d0c087ebdaa43629d2a7a.jpeg
deleted file mode 100644
index a95f84d..0000000
Binary files a/assets/images/trips/c68a4484f89d0c087ebdaa43629d2a7a.jpeg and /dev/null differ
diff --git a/assets/images/trips/e57a2a310330ee1d8928eb75d416a53d.jpeg b/assets/images/trips/e57a2a310330ee1d8928eb75d416a53d.jpeg
deleted file mode 100644
index f4b597a..0000000
Binary files a/assets/images/trips/e57a2a310330ee1d8928eb75d416a53d.jpeg and /dev/null differ
diff --git a/assets/images/trips/eea622430834cb64b900c2f03e5be6b8.jpeg b/assets/images/trips/eea622430834cb64b900c2f03e5be6b8.jpeg
deleted file mode 100644
index c243c5a..0000000
Binary files a/assets/images/trips/eea622430834cb64b900c2f03e5be6b8.jpeg and /dev/null differ
diff --git a/index.js b/index.js
index a850d03..fd10e66 100644
--- a/index.js
+++ b/index.js
@@ -5,5 +5,5 @@
import {AppRegistry} from 'react-native';
import App from './App';
import {name as appName} from './app.json';
-
+//import 'react-native-gesture-handler';
AppRegistry.registerComponent(appName, () => App);
diff --git a/package-lock.json b/package-lock.json
index 19fac07..4aeae4a 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,20 +9,30 @@
"version": "0.0.1",
"dependencies": {
"@gorhom/bottom-sheet": "^4.3.2",
+ "@react-native-async-storage/async-storage": "^1.17.12",
"@react-native-seoul/masonry-list": "^1.4.1",
"@react-navigation/bottom-tabs": "^6.2.0",
- "@react-navigation/native": "^6.0.8",
+ "@react-navigation/drawer": "^6.6.0",
+ "@react-navigation/native": "^6.1.6",
"@react-navigation/stack": "^6.1.1",
+ "axios": "^1.3.4",
"react": "17.0.2",
"react-native": "0.68.0",
"react-native-animatable": "^1.3.3",
+ "react-native-date-picker": "^4.2.8",
+ "react-native-datepicker": "^1.7.2",
+ "react-native-elements": "^3.4.3",
"react-native-gesture-handler": "^2.5.0",
+ "react-native-neat-date-picker": "^1.4.9",
"react-native-ratings": "^8.1.0",
"react-native-reanimated": "^2.8.0",
"react-native-safe-area-context": "^4.2.4",
"react-native-screens": "^3.13.1",
"react-native-shared-element": "^0.8.4",
- "react-navigation-shared-element": "^3.1.3"
+ "react-navigation-shared-element": "^3.1.3",
+ "react-redux": "^8.0.5",
+ "redux": "^4.2.0",
+ "sweetalert": "^2.1.2"
},
"devDependencies": {
"@babel/core": "^7.12.9",
@@ -3722,6 +3732,17 @@
"url": "https://github.com/sponsors/isaacs"
}
},
+ "node_modules/@react-native-async-storage/async-storage": {
+ "version": "1.17.12",
+ "resolved": "https://registry.npmjs.org/@react-native-async-storage/async-storage/-/async-storage-1.17.12.tgz",
+ "integrity": "sha512-BXg4OxFdjPTRt+8MvN6jz4muq0/2zII3s7HeT/11e4Zeh3WCgk/BleLzUcDfVqF3OzFHUqEkSrb76d6Ndjd/Nw==",
+ "dependencies": {
+ "merge-options": "^3.0.4"
+ },
+ "peerDependencies": {
+ "react-native": "^0.0.0-0 || 0.60 - 0.71 || 1000.0.0"
+ }
+ },
"node_modules/@react-native-community/cli": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-7.0.3.tgz",
@@ -4181,15 +4202,16 @@
}
},
"node_modules/@react-navigation/core": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-6.2.1.tgz",
- "integrity": "sha512-3mjS6ujwGnPA/BC11DN9c2c42gFld6B6dQBgDedxP2djceXESpY2kVTTwISDHuqFnF7WjvRjsrDu3cKBX+JosA==",
+ "version": "6.4.8",
+ "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-6.4.8.tgz",
+ "integrity": "sha512-klZ9Mcf/P2j+5cHMoGyIeurEzyBM2Uq9+NoSFrF6sdV5iCWHLFhrCXuhbBiQ5wVLCKf4lavlkd/DDs47PXs9RQ==",
"dependencies": {
- "@react-navigation/routers": "^6.1.0",
+ "@react-navigation/routers": "^6.1.8",
"escape-string-regexp": "^4.0.0",
"nanoid": "^3.1.23",
- "query-string": "^7.0.0",
- "react-is": "^16.13.0"
+ "query-string": "^7.1.3",
+ "react-is": "^16.13.0",
+ "use-latest-callback": "^0.1.5"
},
"peerDependencies": {
"react": "*"
@@ -4211,10 +4233,41 @@
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
},
+ "node_modules/@react-navigation/drawer": {
+ "version": "6.6.0",
+ "resolved": "https://registry.npmjs.org/@react-navigation/drawer/-/drawer-6.6.0.tgz",
+ "integrity": "sha512-/GJZrFOwgsd2vfIYYSG382iHIwufYURYtIs9y3gWkBBJVu9RcAZ6BbUtxeF8CC1PqpC4WHlqzxz+6L922Tw54g==",
+ "dependencies": {
+ "@react-navigation/elements": "^1.3.15",
+ "color": "^4.2.3",
+ "warn-once": "^0.1.0"
+ },
+ "peerDependencies": {
+ "@react-navigation/native": "^6.0.0",
+ "react": "*",
+ "react-native": "*",
+ "react-native-gesture-handler": ">= 1.0.0",
+ "react-native-reanimated": ">= 1.0.0",
+ "react-native-safe-area-context": ">= 3.0.0",
+ "react-native-screens": ">= 3.0.0"
+ }
+ },
+ "node_modules/@react-navigation/drawer/node_modules/color": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
+ "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
+ "dependencies": {
+ "color-convert": "^2.0.1",
+ "color-string": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=12.5.0"
+ }
+ },
"node_modules/@react-navigation/elements": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.3.3.tgz",
- "integrity": "sha512-Lv2lR7si5gNME8dRsqz57d54m4FJtrwHRjNQLOyQO546ZxO+g864cSvoLC6hQedQU0+IJnPTsZiEI2hHqfpEpw==",
+ "version": "1.3.15",
+ "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.3.15.tgz",
+ "integrity": "sha512-CR4CEYJVY0OLyeLQi9N3Z2o4K47gXctvFxfZizDuW1xFtCJbA0eGvpjSLXEWHoY0hFjrlC6KinpdepGHVxhYIg==",
"peerDependencies": {
"@react-navigation/native": "^6.0.0",
"react": "*",
@@ -4223,11 +4276,11 @@
}
},
"node_modules/@react-navigation/native": {
- "version": "6.0.8",
- "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-6.0.8.tgz",
- "integrity": "sha512-6022M3+Btok3xJC/49B88er3SRrlDAZ4FdmGndhEVvBcGSHWmscU2qKCwFd0RY6A0AGCVmdIlXudrfdcdRAkpQ==",
+ "version": "6.1.6",
+ "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-6.1.6.tgz",
+ "integrity": "sha512-14PmSy4JR8HHEk04QkxQ0ZLuqtiQfb4BV9kkMXD2/jI4TZ+yc43OnO6fQ2o9wm+Bq8pY3DxyerC2AjNUz+oH7Q==",
"dependencies": {
- "@react-navigation/core": "^6.1.1",
+ "@react-navigation/core": "^6.4.8",
"escape-string-regexp": "^4.0.0",
"fast-deep-equal": "^3.1.3",
"nanoid": "^3.1.23"
@@ -4249,9 +4302,9 @@
}
},
"node_modules/@react-navigation/routers": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-6.1.0.tgz",
- "integrity": "sha512-8xJL+djIzpFdRW/sGlKojQ06fWgFk1c5jER9501HYJ12LF5DIJFr/tqBI2TJ6bk+y+QFu0nbNyeRC80OjRlmkA==",
+ "version": "6.1.8",
+ "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-6.1.8.tgz",
+ "integrity": "sha512-CEge+ZLhb1HBrSvv4RwOol7EKLW1QoqVIQlE9TN5MpxS/+VoQvP+cLbuz0Op53/iJfYhtXRFd1ZAd3RTRqto9w==",
"dependencies": {
"nanoid": "^3.1.23"
}
@@ -4401,6 +4454,15 @@
"resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.41.tgz",
"integrity": "sha512-ewXv/ceBaJprikMcxCmWU1FKyMAQ2X7a9Gtmzw8fcg2kIePI1crERDM818W+XYrxqdBBOdlf2rm137bU+BltCA=="
},
+ "node_modules/@types/hoist-non-react-statics": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz",
+ "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==",
+ "dependencies": {
+ "@types/react": "*",
+ "hoist-non-react-statics": "^3.3.0"
+ }
+ },
"node_modules/@types/invariant": {
"version": "2.2.35",
"resolved": "https://registry.npmjs.org/@types/invariant/-/invariant-2.2.35.tgz",
@@ -4457,6 +4519,43 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/@types/prop-types": {
+ "version": "15.7.5",
+ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz",
+ "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w=="
+ },
+ "node_modules/@types/react": {
+ "version": "18.0.31",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.31.tgz",
+ "integrity": "sha512-EEG67of7DsvRDU6BLLI0p+k1GojDLz9+lZsnCpCRTa/lOokvyPBvp8S5x+A24hME3yyQuIipcP70KJ6H7Qupww==",
+ "dependencies": {
+ "@types/prop-types": "*",
+ "@types/scheduler": "*",
+ "csstype": "^3.0.2"
+ }
+ },
+ "node_modules/@types/react-native": {
+ "version": "0.70.13",
+ "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.70.13.tgz",
+ "integrity": "sha512-VnC/ny8Eynk3fvY4cnNKXpo/0zUhA2gO64RX51yzVofblOP6TR6jciga0kIjI4c+2eUyWNGrahmiolNm+QU6Cw==",
+ "dependencies": {
+ "@types/react": "*"
+ }
+ },
+ "node_modules/@types/react-native-vector-icons": {
+ "version": "6.4.13",
+ "resolved": "https://registry.npmjs.org/@types/react-native-vector-icons/-/react-native-vector-icons-6.4.13.tgz",
+ "integrity": "sha512-1PqFoKuXTSzMHwGMAr+REdYJBQAbe9xrww3ecZR0FsHcD1K+vGS/rxuAriL4rsI6+p69sZQjDzpEVAbDQcjSwA==",
+ "dependencies": {
+ "@types/react": "*",
+ "@types/react-native": "^0.70"
+ }
+ },
+ "node_modules/@types/scheduler": {
+ "version": "0.16.3",
+ "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz",
+ "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ=="
+ },
"node_modules/@types/stack-utils": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
@@ -4464,6 +4563,11 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/@types/use-sync-external-store": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz",
+ "integrity": "sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA=="
+ },
"node_modules/@types/yargs": {
"version": "15.0.14",
"resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz",
@@ -5203,6 +5307,29 @@
"node": ">= 4.5.0"
}
},
+ "node_modules/axios": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.3.4.tgz",
+ "integrity": "sha512-toYm+Bsyl6VC5wSkfkbbNB6ROv7KY93PEBBL6xyDczaIHasAiv4wPqQ/c4RjoQzipxRD2W5g21cOqQulZ7rHwQ==",
+ "dependencies": {
+ "follow-redirects": "^1.15.0",
+ "form-data": "^4.0.0",
+ "proxy-from-env": "^1.1.0"
+ }
+ },
+ "node_modules/axios/node_modules/form-data": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
"node_modules/babel-core": {
"version": "7.0.0-bridge.0",
"resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz",
@@ -6584,6 +6711,11 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/csstype": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz",
+ "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw=="
+ },
"node_modules/dag-map": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/dag-map/-/dag-map-1.0.2.tgz",
@@ -6645,10 +6777,9 @@
"license": "MIT"
},
"node_modules/decode-uri-component": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
- "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
- "license": "MIT",
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
+ "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==",
"engines": {
"node": ">=0.10"
}
@@ -7136,6 +7267,11 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/es6-object-assign": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz",
+ "integrity": "sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw=="
+ },
"node_modules/escalade": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
@@ -8322,7 +8458,7 @@
"node_modules/filter-obj": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz",
- "integrity": "sha1-mzERErxsYSehbgFsbF1/GeCAXFs=",
+ "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==",
"engines": {
"node": ">=0.10.0"
}
@@ -8552,6 +8688,25 @@
"node": ">=0.4.0"
}
},
+ "node_modules/follow-redirects": {
+ "version": "1.15.2",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
+ "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/RubenVerborgh"
+ }
+ ],
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
+ }
+ },
"node_modules/fontfaceobserver": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/fontfaceobserver/-/fontfaceobserver-2.3.0.tgz",
@@ -9648,6 +9803,14 @@
"node": ">=8"
}
},
+ "node_modules/is-plain-obj": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
+ "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/is-plain-object": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
@@ -11135,17 +11298,32 @@
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
"license": "MIT"
},
+ "node_modules/lodash._reinterpolate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
+ "integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA=="
+ },
"node_modules/lodash.debounce": {
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
"integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=",
"license": "MIT"
},
+ "node_modules/lodash.frompairs": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/lodash.frompairs/-/lodash.frompairs-4.0.1.tgz",
+ "integrity": "sha512-dvqe2I+cO5MzXCMhUnfYFa9MD+/760yx2aTAN1lqEcEkf896TxgrX373igVdqSJj6tQd0jnSLE1UMuKufqqxFw=="
+ },
"node_modules/lodash.isequal": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
"integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ=="
},
+ "node_modules/lodash.isstring": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
+ "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw=="
+ },
"node_modules/lodash.merge": {
"version": "4.6.2",
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
@@ -11153,6 +11331,33 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/lodash.omit": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz",
+ "integrity": "sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg=="
+ },
+ "node_modules/lodash.pick": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz",
+ "integrity": "sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q=="
+ },
+ "node_modules/lodash.template": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz",
+ "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==",
+ "dependencies": {
+ "lodash._reinterpolate": "^3.0.0",
+ "lodash.templatesettings": "^4.0.0"
+ }
+ },
+ "node_modules/lodash.templatesettings": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz",
+ "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==",
+ "dependencies": {
+ "lodash._reinterpolate": "^3.0.0"
+ }
+ },
"node_modules/lodash.throttle": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz",
@@ -11375,6 +11580,17 @@
"integrity": "sha512-OcjA+jzjOYzKmKS6IQVALHLVz+rNTMPoJvCztFaZxwG14wtAW7VRZjwTQu06vKCYOxh4jVnik7ya0SXTB0W+xA==",
"peer": true
},
+ "node_modules/merge-options": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz",
+ "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==",
+ "dependencies": {
+ "is-plain-obj": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/merge-stream": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
@@ -12210,6 +12426,14 @@
"mkdirp": "bin/cmd.js"
}
},
+ "node_modules/moment": {
+ "version": "2.29.4",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz",
+ "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==",
+ "engines": {
+ "node": "*"
+ }
+ },
"node_modules/ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
@@ -12877,6 +13101,14 @@
"node": ">=8"
}
},
+ "node_modules/opencollective-postinstall": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz",
+ "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==",
+ "bin": {
+ "opencollective-postinstall": "index.js"
+ }
+ },
"node_modules/optionator": {
"version": "0.9.1",
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
@@ -13544,6 +13776,11 @@
"integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==",
"peer": true
},
+ "node_modules/promise-polyfill": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-6.1.0.tgz",
+ "integrity": "sha512-g0LWaH0gFsxovsU7R5LrrhHhWAWiHRnh1GPrhXnPgYsDkIqjRYUYSZEsej/wtleDrz5xVSIDbeKfidztp2XHFQ=="
+ },
"node_modules/prompts": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
@@ -13574,6 +13811,11 @@
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
"license": "MIT"
},
+ "node_modules/proxy-from-env": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
+ },
"node_modules/psl": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
@@ -13620,11 +13862,11 @@
}
},
"node_modules/query-string": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.1.tgz",
- "integrity": "sha512-MplouLRDHBZSG9z7fpuAAcI7aAYjDLhtsiVZsevsfaHWDS2IDdORKbSd1kWUA+V4zyva/HZoSfpwnYMMQDhb0w==",
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz",
+ "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==",
"dependencies": {
- "decode-uri-component": "^0.2.0",
+ "decode-uri-component": "^0.2.2",
"filter-obj": "^1.1.0",
"split-on-first": "^1.0.0",
"strict-uri-encode": "^2.0.0"
@@ -13883,6 +14125,66 @@
"nullthrows": "^1.1.1"
}
},
+ "node_modules/react-native-date-picker": {
+ "version": "4.2.8",
+ "resolved": "https://registry.npmjs.org/react-native-date-picker/-/react-native-date-picker-4.2.8.tgz",
+ "integrity": "sha512-3sVIceiB7SjayGh1t0IE06K8ExWqPAFFPDzvk+lmaiL2ahH0UUZ2IpVERVk0/lyClHBmDZgVUn8nZJKwRndmGA==",
+ "dependencies": {
+ "prop-types": "^15.8.1"
+ },
+ "peerDependencies": {
+ "react": ">= 17.0.1",
+ "react-native": ">= 0.64.3"
+ }
+ },
+ "node_modules/react-native-datepicker": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/react-native-datepicker/-/react-native-datepicker-1.7.2.tgz",
+ "integrity": "sha512-ses0N1y44fYBmlejYwR2i+dGnQQ8v5/gacX2CrbFJiWxbcQaRuxexsZPB9YQuQkAy+uKz5Gti3Lrp3dh9BfkzA==",
+ "dependencies": {
+ "moment": "^2.22.0"
+ }
+ },
+ "node_modules/react-native-elements": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/react-native-elements/-/react-native-elements-3.4.3.tgz",
+ "integrity": "sha512-VtZc25EecPZyUBER85zFK9ZbY6kkUdcm1ZwJ9hdoGSCr1R/GFgxor4jngOcSYeMvQ+qimd5No44OVJW3rSJECA==",
+ "hasInstallScript": true,
+ "dependencies": {
+ "@types/react-native-vector-icons": "^6.4.6",
+ "color": "^3.1.2",
+ "deepmerge": "^4.2.2",
+ "hoist-non-react-statics": "^3.3.2",
+ "lodash.isequal": "^4.5.0",
+ "opencollective-postinstall": "^2.0.3",
+ "react-native-ratings": "8.0.4",
+ "react-native-size-matters": "^0.3.1"
+ },
+ "peerDependencies": {
+ "react-native-safe-area-context": ">= 3.0.0",
+ "react-native-vector-icons": ">7.0.0"
+ }
+ },
+ "node_modules/react-native-elements/node_modules/deepmerge": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
+ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-native-elements/node_modules/react-native-ratings": {
+ "version": "8.0.4",
+ "resolved": "https://registry.npmjs.org/react-native-ratings/-/react-native-ratings-8.0.4.tgz",
+ "integrity": "sha512-Xczu5lskIIRD6BEdz9A0jDRpEck/SFxRqiglkXi0u67yAtI1/pcJC76P4MukCbT8K4BPVl+42w83YqXBoBRl7A==",
+ "dependencies": {
+ "lodash": "^4.17.15"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*"
+ }
+ },
"node_modules/react-native-gesture-handler": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.5.0.tgz",
@@ -13920,6 +14222,28 @@
"nullthrows": "^1.1.1"
}
},
+ "node_modules/react-native-modal": {
+ "version": "13.0.1",
+ "resolved": "https://registry.npmjs.org/react-native-modal/-/react-native-modal-13.0.1.tgz",
+ "integrity": "sha512-UB+mjmUtf+miaG/sDhOikRfBOv0gJdBU2ZE1HtFWp6UixW9jCk/bhGdHUgmZljbPpp0RaO/6YiMmQSSK3kkMaw==",
+ "dependencies": {
+ "prop-types": "^15.6.2",
+ "react-native-animatable": "1.3.3"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": ">=0.65.0"
+ }
+ },
+ "node_modules/react-native-neat-date-picker": {
+ "version": "1.4.9",
+ "resolved": "https://registry.npmjs.org/react-native-neat-date-picker/-/react-native-neat-date-picker-1.4.9.tgz",
+ "integrity": "sha512-D6AuU+mbJMBIeE3VtjlE07Te0pLdFSNjVhrVqVBttRQvJH+eLAFEV8h54Upfk+vle5AvDSvFBcvpbMuJs2kFiQ==",
+ "dependencies": {
+ "react-native-modal": "13.0.1",
+ "react-native-vector-icons": "^8.1.0"
+ }
+ },
"node_modules/react-native-ratings": {
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/react-native-ratings/-/react-native-ratings-8.1.0.tgz",
@@ -13994,6 +14318,92 @@
"resolved": "https://registry.npmjs.org/react-native-shared-element/-/react-native-shared-element-0.8.4.tgz",
"integrity": "sha512-agRuD5AB4daw4QLo7KCTBqCtmIjbQkqpwsT/aYrxDu/McvTCdDuXVttaVMrqeyAgdDkU1egp41FdiExS1L/hJw=="
},
+ "node_modules/react-native-size-matters": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/react-native-size-matters/-/react-native-size-matters-0.3.1.tgz",
+ "integrity": "sha512-mKOfBLIBFBcs9br1rlZDvxD5+mAl8Gfr5CounwJtxI6Z82rGrMO+Kgl9EIg3RMVf3G855a85YVqHJL2f5EDRlw==",
+ "peerDependencies": {
+ "react-native": "*"
+ }
+ },
+ "node_modules/react-native-vector-icons": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/react-native-vector-icons/-/react-native-vector-icons-8.1.0.tgz",
+ "integrity": "sha512-sHIdBB6Y0dHaot2fMXgy5J/hhCn5YuyN7SKDNFgPzL8KA1oF2/v7mgYMavnK7LIIs2dJoGnDANKf61dsU+TZlg==",
+ "dependencies": {
+ "lodash.frompairs": "^4.0.1",
+ "lodash.isequal": "^4.5.0",
+ "lodash.isstring": "^4.0.1",
+ "lodash.omit": "^4.5.0",
+ "lodash.pick": "^4.4.0",
+ "lodash.template": "^4.5.0",
+ "prop-types": "^15.7.2",
+ "yargs": "^16.1.1"
+ },
+ "bin": {
+ "fa5-upgrade": "bin/fa5-upgrade.sh",
+ "generate-icon": "bin/generate-icon.js"
+ }
+ },
+ "node_modules/react-native-vector-icons/node_modules/cliui": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
+ "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
+ }
+ },
+ "node_modules/react-native-vector-icons/node_modules/wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/react-native-vector-icons/node_modules/y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/react-native-vector-icons/node_modules/yargs": {
+ "version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
+ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
+ "dependencies": {
+ "cliui": "^7.0.2",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.0",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^20.2.2"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/react-native-vector-icons/node_modules/yargs-parser": {
+ "version": "20.2.9",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
+ "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/react-native/node_modules/ws": {
"version": "6.2.2",
"resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz",
@@ -14016,6 +14426,49 @@
"react-native-shared-element": "*"
}
},
+ "node_modules/react-redux": {
+ "version": "8.0.5",
+ "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.0.5.tgz",
+ "integrity": "sha512-Q2f6fCKxPFpkXt1qNRZdEDLlScsDWyrgSj0mliK59qU6W5gvBiKkdMEG2lJzhd1rCctf0hb6EtePPLZ2e0m1uw==",
+ "dependencies": {
+ "@babel/runtime": "^7.12.1",
+ "@types/hoist-non-react-statics": "^3.3.1",
+ "@types/use-sync-external-store": "^0.0.3",
+ "hoist-non-react-statics": "^3.3.2",
+ "react-is": "^18.0.0",
+ "use-sync-external-store": "^1.0.0"
+ },
+ "peerDependencies": {
+ "@types/react": "^16.8 || ^17.0 || ^18.0",
+ "@types/react-dom": "^16.8 || ^17.0 || ^18.0",
+ "react": "^16.8 || ^17.0 || ^18.0",
+ "react-dom": "^16.8 || ^17.0 || ^18.0",
+ "react-native": ">=0.59",
+ "redux": "^4"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ },
+ "react-dom": {
+ "optional": true
+ },
+ "react-native": {
+ "optional": true
+ },
+ "redux": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/react-redux/node_modules/react-is": {
+ "version": "18.2.0",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
+ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
+ },
"node_modules/react-refresh": {
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.4.3.tgz",
@@ -14183,6 +14636,14 @@
"node": ">= 4"
}
},
+ "node_modules/redux": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.0.tgz",
+ "integrity": "sha512-oSBmcKKIuIR4ME29/AeNUnl5L+hvBq7OaJWzaptTQJAntaPvxIJqfnjbaEiCzzaIz+XmVILfqAM3Ob0aXLPfjA==",
+ "dependencies": {
+ "@babel/runtime": "^7.9.2"
+ }
+ },
"node_modules/regenerate": {
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
@@ -15408,7 +15869,7 @@
"node_modules/strict-uri-encode": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz",
- "integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY=",
+ "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==",
"engines": {
"node": ">=4"
}
@@ -15681,6 +16142,15 @@
"resolved": "https://registry.npmjs.org/svg-arc-to-cubic-bezier/-/svg-arc-to-cubic-bezier-3.2.0.tgz",
"integrity": "sha512-djbJ/vZKZO+gPoSDThGNpKDO+o+bAeA4XQKovvkNCqnIS2t+S4qnLAGQhyyrulhCFRl1WWzAp0wUDV8PpTVU3g=="
},
+ "node_modules/sweetalert": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/sweetalert/-/sweetalert-2.1.2.tgz",
+ "integrity": "sha512-iWx7X4anRBNDa/a+AdTmvAzQtkN1+s4j/JJRWlHpYE8Qimkohs8/XnFcWeYHH2lMA8LRCa5tj2d244If3S/hzA==",
+ "dependencies": {
+ "es6-object-assign": "^1.1.0",
+ "promise-polyfill": "^6.0.2"
+ }
+ },
"node_modules/symbol-tree": {
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
@@ -16486,6 +16956,11 @@
"node": ">=0.10.0"
}
},
+ "node_modules/use-latest-callback": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/use-latest-callback/-/use-latest-callback-0.1.5.tgz",
+ "integrity": "sha512-HtHatS2U4/h32NlkhupDsPlrbiD27gSH5swBdtXbCAlc6pfOFzaj0FehW/FO12rx8j2Vy4/lJScCiJyM01E+bQ=="
+ },
"node_modules/use-subscription": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/use-subscription/-/use-subscription-1.6.0.tgz",
@@ -16495,6 +16970,14 @@
"react": "^18.0.0"
}
},
+ "node_modules/use-sync-external-store": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz",
+ "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==",
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
@@ -19596,6 +20079,14 @@
}
}
},
+ "@react-native-async-storage/async-storage": {
+ "version": "1.17.12",
+ "resolved": "https://registry.npmjs.org/@react-native-async-storage/async-storage/-/async-storage-1.17.12.tgz",
+ "integrity": "sha512-BXg4OxFdjPTRt+8MvN6jz4muq0/2zII3s7HeT/11e4Zeh3WCgk/BleLzUcDfVqF3OzFHUqEkSrb76d6Ndjd/Nw==",
+ "requires": {
+ "merge-options": "^3.0.4"
+ }
+ },
"@react-native-community/cli": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-7.0.3.tgz",
@@ -19971,15 +20462,16 @@
}
},
"@react-navigation/core": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-6.2.1.tgz",
- "integrity": "sha512-3mjS6ujwGnPA/BC11DN9c2c42gFld6B6dQBgDedxP2djceXESpY2kVTTwISDHuqFnF7WjvRjsrDu3cKBX+JosA==",
+ "version": "6.4.8",
+ "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-6.4.8.tgz",
+ "integrity": "sha512-klZ9Mcf/P2j+5cHMoGyIeurEzyBM2Uq9+NoSFrF6sdV5iCWHLFhrCXuhbBiQ5wVLCKf4lavlkd/DDs47PXs9RQ==",
"requires": {
- "@react-navigation/routers": "^6.1.0",
+ "@react-navigation/routers": "^6.1.8",
"escape-string-regexp": "^4.0.0",
"nanoid": "^3.1.23",
- "query-string": "^7.0.0",
- "react-is": "^16.13.0"
+ "query-string": "^7.1.3",
+ "react-is": "^16.13.0",
+ "use-latest-callback": "^0.1.5"
},
"dependencies": {
"escape-string-regexp": {
@@ -19994,18 +20486,39 @@
}
}
},
+ "@react-navigation/drawer": {
+ "version": "6.6.0",
+ "resolved": "https://registry.npmjs.org/@react-navigation/drawer/-/drawer-6.6.0.tgz",
+ "integrity": "sha512-/GJZrFOwgsd2vfIYYSG382iHIwufYURYtIs9y3gWkBBJVu9RcAZ6BbUtxeF8CC1PqpC4WHlqzxz+6L922Tw54g==",
+ "requires": {
+ "@react-navigation/elements": "^1.3.15",
+ "color": "^4.2.3",
+ "warn-once": "^0.1.0"
+ },
+ "dependencies": {
+ "color": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
+ "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
+ "requires": {
+ "color-convert": "^2.0.1",
+ "color-string": "^1.9.0"
+ }
+ }
+ }
+ },
"@react-navigation/elements": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.3.3.tgz",
- "integrity": "sha512-Lv2lR7si5gNME8dRsqz57d54m4FJtrwHRjNQLOyQO546ZxO+g864cSvoLC6hQedQU0+IJnPTsZiEI2hHqfpEpw==",
+ "version": "1.3.15",
+ "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.3.15.tgz",
+ "integrity": "sha512-CR4CEYJVY0OLyeLQi9N3Z2o4K47gXctvFxfZizDuW1xFtCJbA0eGvpjSLXEWHoY0hFjrlC6KinpdepGHVxhYIg==",
"requires": {}
},
"@react-navigation/native": {
- "version": "6.0.8",
- "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-6.0.8.tgz",
- "integrity": "sha512-6022M3+Btok3xJC/49B88er3SRrlDAZ4FdmGndhEVvBcGSHWmscU2qKCwFd0RY6A0AGCVmdIlXudrfdcdRAkpQ==",
+ "version": "6.1.6",
+ "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-6.1.6.tgz",
+ "integrity": "sha512-14PmSy4JR8HHEk04QkxQ0ZLuqtiQfb4BV9kkMXD2/jI4TZ+yc43OnO6fQ2o9wm+Bq8pY3DxyerC2AjNUz+oH7Q==",
"requires": {
- "@react-navigation/core": "^6.1.1",
+ "@react-navigation/core": "^6.4.8",
"escape-string-regexp": "^4.0.0",
"fast-deep-equal": "^3.1.3",
"nanoid": "^3.1.23"
@@ -20019,9 +20532,9 @@
}
},
"@react-navigation/routers": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-6.1.0.tgz",
- "integrity": "sha512-8xJL+djIzpFdRW/sGlKojQ06fWgFk1c5jER9501HYJ12LF5DIJFr/tqBI2TJ6bk+y+QFu0nbNyeRC80OjRlmkA==",
+ "version": "6.1.8",
+ "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-6.1.8.tgz",
+ "integrity": "sha512-CEge+ZLhb1HBrSvv4RwOol7EKLW1QoqVIQlE9TN5MpxS/+VoQvP+cLbuz0Op53/iJfYhtXRFd1ZAd3RTRqto9w==",
"requires": {
"nanoid": "^3.1.23"
}
@@ -20148,6 +20661,15 @@
"resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.41.tgz",
"integrity": "sha512-ewXv/ceBaJprikMcxCmWU1FKyMAQ2X7a9Gtmzw8fcg2kIePI1crERDM818W+XYrxqdBBOdlf2rm137bU+BltCA=="
},
+ "@types/hoist-non-react-statics": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz",
+ "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==",
+ "requires": {
+ "@types/react": "*",
+ "hoist-non-react-statics": "^3.3.0"
+ }
+ },
"@types/invariant": {
"version": "2.2.35",
"resolved": "https://registry.npmjs.org/@types/invariant/-/invariant-2.2.35.tgz",
@@ -20197,12 +20719,54 @@
"integrity": "sha512-G/AdOadiZhnJp0jXCaBQU449W2h716OW/EoXeYkCytxKL06X1WCXB4DZpp8TpZ8eyIJVS1cw4lrlkkSYU21cDw==",
"dev": true
},
+ "@types/prop-types": {
+ "version": "15.7.5",
+ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz",
+ "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w=="
+ },
+ "@types/react": {
+ "version": "18.0.31",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.31.tgz",
+ "integrity": "sha512-EEG67of7DsvRDU6BLLI0p+k1GojDLz9+lZsnCpCRTa/lOokvyPBvp8S5x+A24hME3yyQuIipcP70KJ6H7Qupww==",
+ "requires": {
+ "@types/prop-types": "*",
+ "@types/scheduler": "*",
+ "csstype": "^3.0.2"
+ }
+ },
+ "@types/react-native": {
+ "version": "0.70.13",
+ "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.70.13.tgz",
+ "integrity": "sha512-VnC/ny8Eynk3fvY4cnNKXpo/0zUhA2gO64RX51yzVofblOP6TR6jciga0kIjI4c+2eUyWNGrahmiolNm+QU6Cw==",
+ "requires": {
+ "@types/react": "*"
+ }
+ },
+ "@types/react-native-vector-icons": {
+ "version": "6.4.13",
+ "resolved": "https://registry.npmjs.org/@types/react-native-vector-icons/-/react-native-vector-icons-6.4.13.tgz",
+ "integrity": "sha512-1PqFoKuXTSzMHwGMAr+REdYJBQAbe9xrww3ecZR0FsHcD1K+vGS/rxuAriL4rsI6+p69sZQjDzpEVAbDQcjSwA==",
+ "requires": {
+ "@types/react": "*",
+ "@types/react-native": "^0.70"
+ }
+ },
+ "@types/scheduler": {
+ "version": "0.16.3",
+ "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz",
+ "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ=="
+ },
"@types/stack-utils": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
"integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==",
"dev": true
},
+ "@types/use-sync-external-store": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz",
+ "integrity": "sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA=="
+ },
"@types/yargs": {
"version": "15.0.14",
"resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.14.tgz",
@@ -20690,6 +21254,28 @@
"resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
"integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="
},
+ "axios": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.3.4.tgz",
+ "integrity": "sha512-toYm+Bsyl6VC5wSkfkbbNB6ROv7KY93PEBBL6xyDczaIHasAiv4wPqQ/c4RjoQzipxRD2W5g21cOqQulZ7rHwQ==",
+ "requires": {
+ "follow-redirects": "^1.15.0",
+ "form-data": "^4.0.0",
+ "proxy-from-env": "^1.1.0"
+ },
+ "dependencies": {
+ "form-data": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ }
+ }
+ }
+ },
"babel-core": {
"version": "7.0.0-bridge.0",
"resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz",
@@ -21735,6 +22321,11 @@
}
}
},
+ "csstype": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz",
+ "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw=="
+ },
"dag-map": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/dag-map/-/dag-map-1.0.2.tgz",
@@ -21777,9 +22368,9 @@
"dev": true
},
"decode-uri-component": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
- "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
+ "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ=="
},
"deep-extend": {
"version": "0.6.0",
@@ -22125,6 +22716,11 @@
"is-symbol": "^1.0.2"
}
},
+ "es6-object-assign": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz",
+ "integrity": "sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw=="
+ },
"escalade": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
@@ -23001,7 +23597,7 @@
"filter-obj": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz",
- "integrity": "sha1-mzERErxsYSehbgFsbF1/GeCAXFs="
+ "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ=="
},
"finalhandler": {
"version": "1.1.2",
@@ -23169,6 +23765,11 @@
"resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.121.0.tgz",
"integrity": "sha512-1gIBiWJNR0tKUNv8gZuk7l9rVX06OuLzY9AoGio7y/JT4V1IZErEMEq2TJS+PFcw/y0RshZ1J/27VfK1UQzYVg=="
},
+ "follow-redirects": {
+ "version": "1.15.2",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
+ "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA=="
+ },
"fontfaceobserver": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/fontfaceobserver/-/fontfaceobserver-2.3.0.tgz",
@@ -23900,6 +24501,11 @@
"integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
"peer": true
},
+ "is-plain-obj": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
+ "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA=="
+ },
"is-plain-object": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
@@ -24982,22 +25588,64 @@
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
},
+ "lodash._reinterpolate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
+ "integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA=="
+ },
"lodash.debounce": {
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
"integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168="
},
+ "lodash.frompairs": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/lodash.frompairs/-/lodash.frompairs-4.0.1.tgz",
+ "integrity": "sha512-dvqe2I+cO5MzXCMhUnfYFa9MD+/760yx2aTAN1lqEcEkf896TxgrX373igVdqSJj6tQd0jnSLE1UMuKufqqxFw=="
+ },
"lodash.isequal": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
"integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ=="
},
+ "lodash.isstring": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
+ "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw=="
+ },
"lodash.merge": {
"version": "4.6.2",
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
"dev": true
},
+ "lodash.omit": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz",
+ "integrity": "sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg=="
+ },
+ "lodash.pick": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz",
+ "integrity": "sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q=="
+ },
+ "lodash.template": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz",
+ "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==",
+ "requires": {
+ "lodash._reinterpolate": "^3.0.0",
+ "lodash.templatesettings": "^4.0.0"
+ }
+ },
+ "lodash.templatesettings": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz",
+ "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==",
+ "requires": {
+ "lodash._reinterpolate": "^3.0.0"
+ }
+ },
"lodash.throttle": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz",
@@ -25162,6 +25810,14 @@
"integrity": "sha512-OcjA+jzjOYzKmKS6IQVALHLVz+rNTMPoJvCztFaZxwG14wtAW7VRZjwTQu06vKCYOxh4jVnik7ya0SXTB0W+xA==",
"peer": true
},
+ "merge-options": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz",
+ "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==",
+ "requires": {
+ "is-plain-obj": "^2.1.0"
+ }
+ },
"merge-stream": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
@@ -25825,6 +26481,11 @@
"minimist": "^1.2.6"
}
},
+ "moment": {
+ "version": "2.29.4",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz",
+ "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w=="
+ },
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
@@ -26311,6 +26972,11 @@
"is-wsl": "^1.1.0"
}
},
+ "opencollective-postinstall": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz",
+ "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q=="
+ },
"optionator": {
"version": "0.9.1",
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
@@ -26773,6 +27439,11 @@
"integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==",
"peer": true
},
+ "promise-polyfill": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-6.1.0.tgz",
+ "integrity": "sha512-g0LWaH0gFsxovsU7R5LrrhHhWAWiHRnh1GPrhXnPgYsDkIqjRYUYSZEsej/wtleDrz5xVSIDbeKfidztp2XHFQ=="
+ },
"prompts": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
@@ -26799,6 +27470,11 @@
}
}
},
+ "proxy-from-env": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
+ },
"psl": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
@@ -26833,11 +27509,11 @@
"peer": true
},
"query-string": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.1.tgz",
- "integrity": "sha512-MplouLRDHBZSG9z7fpuAAcI7aAYjDLhtsiVZsevsfaHWDS2IDdORKbSd1kWUA+V4zyva/HZoSfpwnYMMQDhb0w==",
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz",
+ "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==",
"requires": {
- "decode-uri-component": "^0.2.0",
+ "decode-uri-component": "^0.2.2",
"filter-obj": "^1.1.0",
"split-on-first": "^1.0.0",
"strict-uri-encode": "^2.0.0"
@@ -27040,6 +27716,52 @@
"nullthrows": "^1.1.1"
}
},
+ "react-native-date-picker": {
+ "version": "4.2.8",
+ "resolved": "https://registry.npmjs.org/react-native-date-picker/-/react-native-date-picker-4.2.8.tgz",
+ "integrity": "sha512-3sVIceiB7SjayGh1t0IE06K8ExWqPAFFPDzvk+lmaiL2ahH0UUZ2IpVERVk0/lyClHBmDZgVUn8nZJKwRndmGA==",
+ "requires": {
+ "prop-types": "^15.8.1"
+ }
+ },
+ "react-native-datepicker": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/react-native-datepicker/-/react-native-datepicker-1.7.2.tgz",
+ "integrity": "sha512-ses0N1y44fYBmlejYwR2i+dGnQQ8v5/gacX2CrbFJiWxbcQaRuxexsZPB9YQuQkAy+uKz5Gti3Lrp3dh9BfkzA==",
+ "requires": {
+ "moment": "^2.22.0"
+ }
+ },
+ "react-native-elements": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/react-native-elements/-/react-native-elements-3.4.3.tgz",
+ "integrity": "sha512-VtZc25EecPZyUBER85zFK9ZbY6kkUdcm1ZwJ9hdoGSCr1R/GFgxor4jngOcSYeMvQ+qimd5No44OVJW3rSJECA==",
+ "requires": {
+ "@types/react-native-vector-icons": "^6.4.6",
+ "color": "^3.1.2",
+ "deepmerge": "^4.2.2",
+ "hoist-non-react-statics": "^3.3.2",
+ "lodash.isequal": "^4.5.0",
+ "opencollective-postinstall": "^2.0.3",
+ "react-native-ratings": "8.0.4",
+ "react-native-size-matters": "^0.3.1"
+ },
+ "dependencies": {
+ "deepmerge": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
+ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A=="
+ },
+ "react-native-ratings": {
+ "version": "8.0.4",
+ "resolved": "https://registry.npmjs.org/react-native-ratings/-/react-native-ratings-8.0.4.tgz",
+ "integrity": "sha512-Xczu5lskIIRD6BEdz9A0jDRpEck/SFxRqiglkXi0u67yAtI1/pcJC76P4MukCbT8K4BPVl+42w83YqXBoBRl7A==",
+ "requires": {
+ "lodash": "^4.17.15"
+ }
+ }
+ }
+ },
"react-native-gesture-handler": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.5.0.tgz",
@@ -27073,6 +27795,24 @@
}
}
},
+ "react-native-modal": {
+ "version": "13.0.1",
+ "resolved": "https://registry.npmjs.org/react-native-modal/-/react-native-modal-13.0.1.tgz",
+ "integrity": "sha512-UB+mjmUtf+miaG/sDhOikRfBOv0gJdBU2ZE1HtFWp6UixW9jCk/bhGdHUgmZljbPpp0RaO/6YiMmQSSK3kkMaw==",
+ "requires": {
+ "prop-types": "^15.6.2",
+ "react-native-animatable": "1.3.3"
+ }
+ },
+ "react-native-neat-date-picker": {
+ "version": "1.4.9",
+ "resolved": "https://registry.npmjs.org/react-native-neat-date-picker/-/react-native-neat-date-picker-1.4.9.tgz",
+ "integrity": "sha512-D6AuU+mbJMBIeE3VtjlE07Te0pLdFSNjVhrVqVBttRQvJH+eLAFEV8h54Upfk+vle5AvDSvFBcvpbMuJs2kFiQ==",
+ "requires": {
+ "react-native-modal": "13.0.1",
+ "react-native-vector-icons": "^8.1.0"
+ }
+ },
"react-native-ratings": {
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/react-native-ratings/-/react-native-ratings-8.1.0.tgz",
@@ -27125,6 +27865,73 @@
"resolved": "https://registry.npmjs.org/react-native-shared-element/-/react-native-shared-element-0.8.4.tgz",
"integrity": "sha512-agRuD5AB4daw4QLo7KCTBqCtmIjbQkqpwsT/aYrxDu/McvTCdDuXVttaVMrqeyAgdDkU1egp41FdiExS1L/hJw=="
},
+ "react-native-size-matters": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/react-native-size-matters/-/react-native-size-matters-0.3.1.tgz",
+ "integrity": "sha512-mKOfBLIBFBcs9br1rlZDvxD5+mAl8Gfr5CounwJtxI6Z82rGrMO+Kgl9EIg3RMVf3G855a85YVqHJL2f5EDRlw==",
+ "requires": {}
+ },
+ "react-native-vector-icons": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/react-native-vector-icons/-/react-native-vector-icons-8.1.0.tgz",
+ "integrity": "sha512-sHIdBB6Y0dHaot2fMXgy5J/hhCn5YuyN7SKDNFgPzL8KA1oF2/v7mgYMavnK7LIIs2dJoGnDANKf61dsU+TZlg==",
+ "requires": {
+ "lodash.frompairs": "^4.0.1",
+ "lodash.isequal": "^4.5.0",
+ "lodash.isstring": "^4.0.1",
+ "lodash.omit": "^4.5.0",
+ "lodash.pick": "^4.4.0",
+ "lodash.template": "^4.5.0",
+ "prop-types": "^15.7.2",
+ "yargs": "^16.1.1"
+ },
+ "dependencies": {
+ "cliui": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
+ "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
+ "requires": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
+ }
+ },
+ "wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="
+ },
+ "yargs": {
+ "version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
+ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
+ "requires": {
+ "cliui": "^7.0.2",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.0",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^20.2.2"
+ }
+ },
+ "yargs-parser": {
+ "version": "20.2.9",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
+ "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w=="
+ }
+ }
+ },
"react-navigation-shared-element": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/react-navigation-shared-element/-/react-navigation-shared-element-3.1.3.tgz",
@@ -27133,6 +27940,26 @@
"hoist-non-react-statics": "^3.3.2"
}
},
+ "react-redux": {
+ "version": "8.0.5",
+ "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.0.5.tgz",
+ "integrity": "sha512-Q2f6fCKxPFpkXt1qNRZdEDLlScsDWyrgSj0mliK59qU6W5gvBiKkdMEG2lJzhd1rCctf0hb6EtePPLZ2e0m1uw==",
+ "requires": {
+ "@babel/runtime": "^7.12.1",
+ "@types/hoist-non-react-statics": "^3.3.1",
+ "@types/use-sync-external-store": "^0.0.3",
+ "hoist-non-react-statics": "^3.3.2",
+ "react-is": "^18.0.0",
+ "use-sync-external-store": "^1.0.0"
+ },
+ "dependencies": {
+ "react-is": {
+ "version": "18.2.0",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
+ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
+ }
+ }
+ },
"react-refresh": {
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.4.3.tgz",
@@ -27256,6 +28083,14 @@
"tslib": "^2.0.1"
}
},
+ "redux": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.0.tgz",
+ "integrity": "sha512-oSBmcKKIuIR4ME29/AeNUnl5L+hvBq7OaJWzaptTQJAntaPvxIJqfnjbaEiCzzaIz+XmVILfqAM3Ob0aXLPfjA==",
+ "requires": {
+ "@babel/runtime": "^7.9.2"
+ }
+ },
"regenerate": {
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
@@ -28174,7 +29009,7 @@
"strict-uri-encode": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz",
- "integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY="
+ "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ=="
},
"string_decoder": {
"version": "1.3.0",
@@ -28357,6 +29192,15 @@
"resolved": "https://registry.npmjs.org/svg-arc-to-cubic-bezier/-/svg-arc-to-cubic-bezier-3.2.0.tgz",
"integrity": "sha512-djbJ/vZKZO+gPoSDThGNpKDO+o+bAeA4XQKovvkNCqnIS2t+S4qnLAGQhyyrulhCFRl1WWzAp0wUDV8PpTVU3g=="
},
+ "sweetalert": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/sweetalert/-/sweetalert-2.1.2.tgz",
+ "integrity": "sha512-iWx7X4anRBNDa/a+AdTmvAzQtkN1+s4j/JJRWlHpYE8Qimkohs8/XnFcWeYHH2lMA8LRCa5tj2d244If3S/hzA==",
+ "requires": {
+ "es6-object-assign": "^1.1.0",
+ "promise-polyfill": "^6.0.2"
+ }
+ },
"symbol-tree": {
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
@@ -28939,12 +29783,23 @@
"resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
"integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ=="
},
+ "use-latest-callback": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/use-latest-callback/-/use-latest-callback-0.1.5.tgz",
+ "integrity": "sha512-HtHatS2U4/h32NlkhupDsPlrbiD27gSH5swBdtXbCAlc6pfOFzaj0FehW/FO12rx8j2Vy4/lJScCiJyM01E+bQ=="
+ },
"use-subscription": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/use-subscription/-/use-subscription-1.6.0.tgz",
"integrity": "sha512-0Y/cTLlZfw547tJhJMoRA16OUbVqRm6DmvGpiGbmLST6BIA5KU5cKlvlz8DVMrACnWpyEjCkgmhLatthP4jUbA==",
"requires": {}
},
+ "use-sync-external-store": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz",
+ "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==",
+ "requires": {}
+ },
"util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
diff --git a/package.json b/package.json
index 6bf71a0..b990943 100644
--- a/package.json
+++ b/package.json
@@ -7,24 +7,35 @@
"ios": "react-native run-ios --simulator=\"iPhone 13 Pro\"",
"start": "react-native start --reset-cache",
"test": "jest",
- "lint": "eslint ."
+ "lint": "eslint .",
+ "proxy": "http://localhost:3001"
},
"dependencies": {
"@gorhom/bottom-sheet": "^4.3.2",
+ "@react-native-async-storage/async-storage": "^1.17.12",
"@react-native-seoul/masonry-list": "^1.4.1",
"@react-navigation/bottom-tabs": "^6.2.0",
- "@react-navigation/native": "^6.0.8",
+ "@react-navigation/drawer": "^6.6.0",
+ "@react-navigation/native": "^6.1.6",
"@react-navigation/stack": "^6.1.1",
+ "axios": "^1.3.4",
"react": "17.0.2",
"react-native": "0.68.0",
"react-native-animatable": "^1.3.3",
+ "react-native-date-picker": "^4.2.8",
+ "react-native-datepicker": "^1.7.2",
+ "react-native-elements": "^3.4.3",
"react-native-gesture-handler": "^2.5.0",
+ "react-native-neat-date-picker": "^1.4.9",
"react-native-ratings": "^8.1.0",
"react-native-reanimated": "^2.8.0",
"react-native-safe-area-context": "^4.2.4",
"react-native-screens": "^3.13.1",
"react-native-shared-element": "^0.8.4",
- "react-navigation-shared-element": "^3.1.3"
+ "react-navigation-shared-element": "^3.1.3",
+ "react-redux": "^8.0.5",
+ "redux": "^4.2.0",
+ "sweetalert": "^2.1.2"
},
"devDependencies": {
"@babel/core": "^7.12.9",
diff --git a/src/components/TripDetails/TripDetailsCard/HotelsCarousel.js b/src/components/TripDetails/TripDetailsCard/HotelsCarousel.js
index fcf9a41..ca47d0d 100644
--- a/src/components/TripDetails/TripDetailsCard/HotelsCarousel.js
+++ b/src/components/TripDetails/TripDetailsCard/HotelsCarousel.js
@@ -92,4 +92,4 @@ const styles = StyleSheet.create({
},
});
-export default HotelsCarousel;
+export default HotelsCarousel;
\ No newline at end of file
diff --git a/src/components/TripDetails/TripDetailsCard/TripDetailsCard.js b/src/components/TripDetails/TripDetailsCard/TripDetailsCard.js
index c319eeb..3aa1768 100644
--- a/src/components/TripDetails/TripDetailsCard/TripDetailsCard.js
+++ b/src/components/TripDetails/TripDetailsCard/TripDetailsCard.js
@@ -1,5 +1,5 @@
import React, {useMemo} from 'react';
-import {View, StyleSheet, Text} from 'react-native';
+import {View, StyleSheet, Text, Button} from 'react-native';
import {colors, sizes, spacing} from '../../../constants/theme';
import * as Animatable from 'react-native-animatable';
import BottomSheet, {BottomSheetScrollView} from '@gorhom/bottom-sheet';
@@ -18,10 +18,14 @@ import SectionHeader from '../../shared/SectionHeader';
import RatingOverall from '../../shared/Rating/RatingOverall';
import HotelsCarousel from './HotelsCarousel';
import Reviews from '../../Reviews/Reviews';
-
+import { useNavigation } from '@react-navigation/native';
+import { TouchableOpacity } from 'react-native-gesture-handler';
+import TopPlacesCarousel from '../../Home/TopPlacesCarousel';
+import { SEARCH_HOTELS } from '../../../data';
const AnimatedDivider = Animated.createAnimatedComponent(Divider);
const TripDetailsCard = ({trip}) => {
+ const navigation = useNavigation();
const animatedIndex = useSharedValue(0);
const snapPoints = useMemo(() => ['30%', '80%'], []);
@@ -118,7 +122,7 @@ const TripDetailsCard = ({trip}) => {
@@ -126,19 +130,36 @@ const TripDetailsCard = ({trip}) => {
{trip.description}
{}}
- buttonTitle="See All"
+
/>
-
+
+
+
+
+
+
{}}
buttonTitle="See All"
+
/>
@@ -173,12 +194,30 @@ const styles = StyleSheet.create({
marginBottom: spacing.m,
},
sectionHeader: {
- marginTop: spacing.m,
+ marginTop:20,
},
sectionTitle: {
color: colors.lightGray,
fontWeight: 'normal',
},
+ styleB: {
+ color: 'gray',
+ marginTop:-50,
+ fontWeight: 5,
+ padding:50,
+ marginEnd:200,
+ fontSize: 2
+
+ },
+ styleB2: {
+ color: 'gray',
+ marginTop:-50,
+ fontWeight: 80,
+ padding:40,
+ marginEnd:200,
+ fontSize: 45
+
+ },
summary: {
marginHorizontal: spacing.l,
},
diff --git a/src/components/shared/MainHeader.js b/src/components/shared/MainHeader.js
index b362b43..5f68bd5 100644
--- a/src/components/shared/MainHeader.js
+++ b/src/components/shared/MainHeader.js
@@ -3,15 +3,21 @@ import {Text, View, StyleSheet} from 'react-native';
import {useSafeAreaInsets} from 'react-native-safe-area-context';
import Icon from './Icon';
import {sizes, spacing} from '../../constants/theme';
+import { useNavigation } from '@react-navigation/native';
const MainHeader = ({title}) => {
const insets = useSafeAreaInsets();
+ const navigation = useNavigation();
return (
- {}} />
+ navigation.navigate ('Edit2')} />
+
+
+
{title}
- {}} />
-
+ navigation.navigate('Logout')} />
+
+
);
};
@@ -26,6 +32,14 @@ const styles = StyleSheet.create({
fontSize: sizes.h3,
fontWeight: 'bold',
},
+ title2: {
+ fontSize: sizes.caption,
+ fontWeight: 'bold',
+ position: 'absolute',
+ paddingHorizontal: spacing.m,
+ paddingVertical: spacing.xs,
+ paddingTop: spacing.xl
+ },
});
export default MainHeader;
diff --git a/src/components/shared/Tabs.js b/src/components/shared/Tabs.js
index 12929e2..222d3d6 100644
--- a/src/components/shared/Tabs.js
+++ b/src/components/shared/Tabs.js
@@ -44,7 +44,7 @@ const styles = StyleSheet.create({
marginLeft: spacing.m,
},
tabText: {
- color: colors.gray,
+ color: colors.lightGray,
},
activeTabText: {
color: colors.primary,
diff --git a/src/constants/icons.js b/src/constants/icons.js
index 975a491..9a5d30b 100644
--- a/src/constants/icons.js
+++ b/src/constants/icons.js
@@ -2,6 +2,10 @@ const Home = require('../../assets/icons/Home.png');
const Search = require('../../assets/icons/Search.png');
const Favorite = require('../../assets/icons/Favorite.png');
const FavoriteFilled = require('../../assets/icons/Favorite_filled.png');
+const Hotels = require('../../assets/icons/Hotels.png');
+const Reserva = require('../../assets/icons/Reserva.png');
+const Logout = require('../../assets/icons/Logout.png');
+const Usuario = require('../../assets/icons/Usuario.png');
const Hamburger = require('../../assets/icons/Hamburger.png');
const Notification = require('../../assets/icons/Notification.png');
const ArrowLeft = require('../../assets/icons/Arrow_Left.png');
@@ -9,6 +13,7 @@ const Location = require('../../assets/icons/Location.png');
const Filter = require('../../assets/icons/Filter.png');
const Back = require('../../assets/icons/Back.png');
+
export default {
Home,
FavoriteFilled,
@@ -20,4 +25,9 @@ export default {
Location,
Filter,
Back,
+ Hotels,
+ Logout,
+ Usuario,
+ Reserva
+
};
diff --git a/src/constants/theme.js b/src/constants/theme.js
index 8449441..dee7814 100644
--- a/src/constants/theme.js
+++ b/src/constants/theme.js
@@ -9,13 +9,14 @@ export const colors = {
light: '#fbfbfb',
white: '#fff',
black: '#000',
+ blue: '#3C33FF',
};
export const shadow = {
light: {
shadowColor: colors.black,
shadowRadius: 4,
- shadowOpacity: 0.1,
+ shadowOpacity: 1,
shadowOffset: {
width: 0,
height: 2,
@@ -36,7 +37,7 @@ export const sizes = {
width,
height,
title: 32,
- h2: 24,
+ h2: 25,
h3: 18,
body: 14,
caption: 12,
diff --git a/src/data/index.js b/src/data/index.js
index 0974481..6c1b8f1 100644
--- a/src/data/index.js
+++ b/src/data/index.js
@@ -31,9 +31,9 @@ const REVIEWS = {
export const HOTELS = {
1: {
id: 1,
- title: 'Argos in Cappadocia',
+ title: 'Categoria Swing',
image: require('../../assets/images/hotels/cp-1.jpeg'),
- location: 'Turkey, Cappadocia',
+ location: 'Habitación Especial, Individual',
rating: 9,
pricePeerDay: '130$',
type: 'HOTEL',
@@ -42,7 +42,7 @@ export const HOTELS = {
id: 2,
title: 'Sultan Cave Suites',
image: require('../../assets/images/hotels/cp-2.jpeg'),
- location: 'Turkey, Cappadocia',
+ location: 'Oaxaca de juarez, centro',
rating: 9.3,
pricePeerDay: '230$',
type: 'HOTEL',
@@ -51,7 +51,7 @@ export const HOTELS = {
id: 3,
title: 'Villa Brunella',
image: require('../../assets/images/hotels/capri-1.jpeg'),
- location: 'Italy, Capri',
+ location: 'Oaxaca de juarez, centro',
rating: 9.4,
pricePeerDay: '280$',
type: 'HOTEL',
@@ -60,43 +60,43 @@ export const HOTELS = {
id: 4,
title: 'Hotel La Floridiana',
image: require('../../assets/images/hotels/capri-2.jpeg'),
- location: 'Italy, Capri',
+ location: 'Oaxaca de juarez, centro',
rating: 9.3,
pricePeerDay: '190$',
type: 'HOTEL',
},
5: {
id: 5,
- title: "Le Taha'a by Pearl Resorts",
+ title: "Gran Fiesta Mericana",
image: require('../../assets/images/hotels/polynesia-1.jpeg'),
- location: 'Polynesia, Bora Bora',
+ location: 'Oaxaca de juarez, centro',
rating: 9.2,
pricePeerDay: '250$',
type: 'HOTEL',
},
6: {
id: 6,
- title: 'Le Meridien Bora Bora',
+ title: 'Holiday INN Express',
image: require('../../assets/images/hotels/polynesia-2.jpeg'),
- location: 'Polynesia, Bora Bora',
+ location: 'Oaxaca de juarez, centro',
rating: 9.4,
pricePeerDay: '270$',
type: 'HOTEL',
},
7: {
id: 7,
- title: 'InterContinental Phuket Resort',
+ title: ' Hotel Boutique Parador San Miguel Oaxaca',
image: require('../../assets/images/hotels/phuket-1.jpg'),
- location: 'Thailand, Phuket',
+ location: 'Oaxaca de juarez, centro',
rating: 9.2,
pricePeerDay: '210$',
type: 'HOTEL',
},
8: {
id: 8,
- title: 'The Nai Harn',
+ title: ' Quinta Real Oaxaca',
image: require('../../assets/images/hotels/phuket-2.jpeg'),
- location: 'Thailand, Phuket',
+ location: 'Oaxaca de juarez, centro',
rating: 9.4,
pricePeerDay: '430$',
type: 'HOTEL',
@@ -105,25 +105,25 @@ export const HOTELS = {
id: 9,
title: 'Hotel Poseidon',
image: require('../../assets/images/hotels/ac-1.jpeg'),
- location: 'Italy, Amalfi Coast',
+ location: 'Oaxaca de juarez, centro',
rating: 9.2,
pricePeerDay: '330$',
type: 'HOTEL',
},
10: {
id: 10,
- title: 'Le Agavi Hotel',
+ title: 'Hotel La Casona de Tita',
image: require('../../assets/images/hotels/ac-2.jpeg'),
- location: 'Italy, Amalfi Coast',
+ location: 'Oaxaca de juarez, centro',
rating: 9.4,
pricePeerDay: '350$',
type: 'HOTEL',
},
11: {
id: 11,
- title: 'Hotel Casa 1800 Granada',
+ title: 'One Oaxaca Centro',
image: require('../../assets/images/hotels/granada-1.jpeg'),
- location: 'Spain, Granada',
+ location: 'Oaxaca de juarez, centro',
rating: 9.2,
pricePeerDay: '230$',
type: 'HOTEL',
@@ -132,7 +132,7 @@ export const HOTELS = {
id: 12,
title: 'Parador de Granada',
image: require('../../assets/images/hotels/granada-2.jpeg'),
- location: 'Spain, Granada',
+ location: 'Oaxaca de juarez, centro',
rating: 9.4,
pricePeerDay: '120$',
type: 'HOTEL',
@@ -140,18 +140,18 @@ export const HOTELS = {
13: {
id: 13,
- title: 'Konansou',
+ title: 'Mision Oaxaca',
image: require('../../assets/images/hotels/cb-1.jpeg'),
- location: 'Japan, Cherry blossoms',
+ location: 'Oaxaca de juarez, centro',
rating: 9.2,
pricePeerDay: '740$',
type: 'HOTEL',
},
14: {
id: 14,
- title: 'Shuhokaku Kogetsu',
+ title: 'Casa Antonieta',
image: require('../../assets/images/hotels/cb-2.jpeg'),
- location: 'Japan, Cherry blossoms',
+ location: 'Oaxaca de juarez, centro',
rating: 9.4,
pricePeerDay: '240$',
type: 'HOTEL',
@@ -161,15 +161,15 @@ export const HOTELS = {
export const TOP_PLACES = [
{
id: 1,
- image: require('../../assets/images/trips/2082f59465c39094ce90bebd0fcf8fa7.jpeg'),
- title: 'Amalfi Coast',
- location: 'Italy',
+ image: require('../../assets/images/trips/2082f59465c39094ce90bebd0fcf8fa7.jpg'),
+ title: 'Hotel Mayis',
+ location: 'Oaxaca de Juarez, Av. José María Morelos 905',
description:
- 'The ultimate Amalfi Coast travel guide, where to stay, where to eat, and what areas to visit in the Amalfi Coast of Italy. Positano, Ravello, Amalfi and more',
+ 'Este hotel sencillo se encuentra en un colorido edificio colonial en el centro histórico de la ciudad, a 7 minutos a pie de la iglesia de Santo Domingo de Guzmán y a 8 km del aeropuerto internacional de Oaxaca',
rating: 9.4,
gallery: [
- require('../../assets/images/trips/3722dd4614a5a58f2ec8ebf17c22f76d.jpeg'),
- require('../../assets/images/trips/af933a359582704eee05be198e882be0.jpeg'),
+ require('../../assets/images/trips/3722dd4614a5a58f2ec8ebf17c22f76d.jpg'),
+ require('../../assets/images/trips/af933a359582704eee05be198e882be0.jpg'),
],
reviews: [REVIEWS[2], REVIEWS[1]],
hotels: [HOTELS[9], HOTELS[10]],
@@ -190,7 +190,7 @@ export const TOP_PLACES = [
},
{
id: 6,
- image: require('../../assets/images/trips/e57a2a310330ee1d8928eb75d416a53d.jpeg'),
+ image: require('../../assets/images/trips/e57a2a310330ee1d8928eb75d416a53d.jpg'),
title: 'Cherry blossoms',
location: 'Japan',
description:
@@ -206,16 +206,16 @@ export const TOP_PLACES = [
export const PLACES = [
{
id: 5,
- image: require('../../assets/images/trips/645d5f28e26c7de2a280f71db15c2141.jpeg'),
- title: 'Cappadocia',
- location: 'Turkey',
+ image: require('../../assets/images/trips/645d5f28e26c7de2a280f71db15c2141.jpg'),
+ title: 'Marialicia Suites',
+ location: 'Oaxaca Centro',
description:
"Cappadocia's landscape includes dramatic expanses of soft volcanic rock, shaped by erosion into towers, cones, valleys, and caves. Rock-cut churches and underground tunnel complexes from the Byzantine and Islamic eras are scattered throughout the countryside.",
rating: 9.2,
gallery: [
- require('../../assets/images/trips/4c73f37e70dded978374960fb29360f2.jpeg'),
- require('../../assets/images/trips/55608c7000bb15d24ee022f3d3f0bf8a.jpeg'),
- require('../../assets/images/trips/c68a4484f89d0c087ebdaa43629d2a7a.jpeg'),
+ require('../../assets/images/trips/4c73f37e70dded978374960fb29360f2.jpg'),
+ require('../../assets/images/trips/55608c7000bb15d24ee022f3d3f0bf8a.jpg'),
+ require('../../assets/images/trips/c68a4484f89d0c087ebdaa43629d2a7a.jpg'),
],
reviews: [REVIEWS[1], REVIEWS[2]],
hotels: [HOTELS[1], HOTELS[2]],
@@ -223,9 +223,9 @@ export const PLACES = [
},
{
id: 2,
- image: require('../../assets/images/trips/eea622430834cb64b900c2f03e5be6b8.jpeg'),
- title: 'Capri',
- location: 'Italy',
+ image: require('../../assets/images/trips/eea622430834cb64b900c2f03e5be6b8.jpg'),
+ title: 'Quinta Real Oaxaca',
+ location: 'Oaxaca centro',
description:
'Capri is an island of a thousand faces, where visitors can walk the trails skirting the cliffs above the Mediterranean in total solitude, dive into the crystalline waters of its rocky shore, or plunge into the vibrant crowds of the Piazzetta and shop in the most fashionable boutiques in the world.',
rating: 9.1,
@@ -236,9 +236,9 @@ export const PLACES = [
},
{
id: 3,
- image: require('../../assets/images/trips/0e627c12c05e4dd93ab122d618ea7849.jpeg'),
- title: 'Bora Bora',
- location: 'Polynesia',
+ image: require('../../assets/images/trips/0e627c12c05e4dd93ab122d618ea7849.jpg'),
+ title: 'Casa Antonieta',
+ location: 'Oaxaca Centro',
description:
'Learn how you can travel Bora Bora on a budget and how overwater bungalows are possible for cheap plus tips on keeping Bora Bora trip costs low.',
rating: 8.9,
@@ -249,9 +249,9 @@ export const PLACES = [
},
{
id: 7,
- image: require('../../assets/images/trips/c2dcbb54ca9316831b0f6ed4d4136dda.jpeg'),
- title: 'Phuket',
- location: 'Thailand',
+ image: require('../../assets/images/trips/c2dcbb54ca9316831b0f6ed4d4136dda.jpg'),
+ title: ' Mision Oaxaca',
+ location: 'Oaxaca centro',
description:
'Phuket is the largest island in Thailand. It is located in the Andaman Sea in southern Thailand',
rating: 9.2,
diff --git a/src/navigations/HomeNavigator.js b/src/navigations/HomeNavigator.js
index 9c3a345..06c16fa 100644
--- a/src/navigations/HomeNavigator.js
+++ b/src/navigations/HomeNavigator.js
@@ -1,6 +1,20 @@
import React from 'react';
-import {createSharedElementStackNavigator} from 'react-navigation-shared-element';
+import { createSharedElementStackNavigator } from 'react-navigation-shared-element';
+import Tabs from '../components/shared/Tabs';
+
+import Editar2 from '../screens/Edit2';
+import EditReserva from '../screens/EditReserva';
import HomeScreen from '../screens/HomeScreen';
+import HotelsScreen from '../screens/HotelsScreen';
+import LoginScreen from '../screens/LoginScreen';
+import Splash from '../screens/Logout';
+import Register from '../screens/RegistroScreen';
+import ReservaScreen from '../screens/ReservaScreen';
+import TripDetailsScreen from '../screens/TripsDetailScreen';
+import TablaDatos from '../screens/Ver';
+
+import Ver from '../screens/Ver';
+import TabNavigator from './TabNavigator';
const Stack = createSharedElementStackNavigator();
@@ -8,7 +22,17 @@ const HomeNavigator = () => {
return (
+
+ {
gestureEnabled: false,
}}
/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
);
};
diff --git a/src/navigations/MainNavigator.js b/src/navigations/MainNavigator.js
index 63f28ae..e4302a4 100644
--- a/src/navigations/MainNavigator.js
+++ b/src/navigations/MainNavigator.js
@@ -2,8 +2,11 @@ import React from 'react';
import {NavigationContainer} from '@react-navigation/native';
import TabNavigator from './TabNavigator';
import {StatusBar} from 'react-native';
-import TripDetailsScreen from '../screens/TripDetailsScreen';
import {createSharedElementStackNavigator} from 'react-navigation-shared-element';
+import HotelsScreen from '../screens/HotelsScreen';
+import Ver from '../screens/Ver';
+import LoginScreen from '../screens/LoginScreen';
+import TripDetailsScreen from '../screens/TripsDetailScreen';
const Stack = createSharedElementStackNavigator();
@@ -11,16 +14,20 @@ const MainNavigator = () => {
return (
-
-
+
+
+
+
{
);
};
-export default MainNavigator;
+export default MainNavigator;
\ No newline at end of file
diff --git a/src/navigations/TabNavigator.js b/src/navigations/TabNavigator.js
index f6085f7..1b11b88 100644
--- a/src/navigations/TabNavigator.js
+++ b/src/navigations/TabNavigator.js
@@ -6,6 +6,7 @@ import {colors, sizes} from '../constants/theme';
import {StyleSheet, Animated} from 'react-native';
import HomeNavigator from './HomeNavigator';
import SearchNavigator from './SearchNavigator';
+import Ver from '../screens/Ver';
const tabs = [
{
@@ -20,6 +21,11 @@ const tabs = [
name: 'Favorite',
screen: FavoriteScreen,
},
+
+ {
+ name: 'Hotels',
+ screen: Ver,
+ },
];
const Tab = createBottomTabNavigator();
diff --git a/src/screens/HomeScreen.js b/src/screens/HomeScreen.js
index 7bc1cd4..df04000 100644
--- a/src/screens/HomeScreen.js
+++ b/src/screens/HomeScreen.js
@@ -1,5 +1,5 @@
import React from 'react';
-import {View, StyleSheet, ScrollView} from 'react-native';
+import {View, StyleSheet, ScrollView, Button,Text} from 'react-native';
import {colors} from '../constants/theme';
import MainHeader from '../components/shared/MainHeader';
import ScreenHeader from '../components/shared/ScreenHeader';
@@ -7,21 +7,46 @@ import TopPlacesCarousel from '../components/Home/TopPlacesCarousel';
import {PLACES, TOP_PLACES} from '../data';
import SectionHeader from '../components/shared/SectionHeader';
import TripsList from '../components/Home/TripsList';
+import { useNavigation } from '@react-navigation/native';
+//import Drawers from '../navigations/DrawerNavigation'
+import { TouchableOpacity } from 'react-native-gesture-handler';
+import { color } from 'react-native-reanimated';
+import Icon from '../components/shared/Icon';
+
const HomeScreen = () => {
+ const navigation = useNavigation();
+
return (
-
-
+
+
+
+
{}}
+ title="Mejores alojamientos"
+ />
+
+
+
+
+ navigation.navigate ('Edit')} />
+ Editar Reserva
+
+
+
+
+
);
};
@@ -29,8 +54,25 @@ const HomeScreen = () => {
const styles = StyleSheet.create({
container: {
flex: 1,
- backgroundColor: colors.light,
+ backgroundColor: colors.black,
+ },
+ styleB: {
+
+ marginTop:-50,
+ fontWeight: 5,
+ padding:50,
+ marginEnd:175,
+ fontSize: 2,
},
+ styleB1: {
+
+ marginTop:-50,
+ fontWeight: 5,
+ padding:20,
+ marginEnd:175,
+ fontSize: 2,
+
+ }
});
export default HomeScreen;
diff --git a/src/screens/LoginScreen.js b/src/screens/LoginScreen.js
new file mode 100644
index 0000000..33fc621
--- /dev/null
+++ b/src/screens/LoginScreen.js
@@ -0,0 +1,268 @@
+
+
+import { useNavigation } from '@react-navigation/native';
+import React, { useState } from 'react';
+import { View, TextInput, Button, Alert, Text, StyleSheet, Image, TouchableOpacity } from 'react-native';
+import AsyncStorage from '@react-native-async-storage/async-storage';
+import { Eye, EyeActive } from '../assets/index';
+import { colors, sizes } from '../constants/theme';
+
+
+const LoginScreen = () => {
+ const navigation = useNavigation();
+ const [email, setEmail] = useState('');
+ const [password, setPassword] = useState('');
+ const [seePassword, setSeePassword] = useState(true);
+ const [checkValidEmail, setCheckValidEmail] = useState(false);
+
+
+
+ const handleCheckEmail = text => {
+ let re = /\S+@\S+\.\S+/;
+ let regex = /^[\+]?[(]?[0-9]{3}[)]?[-\s\.]?[0-9]{3}[-\s\.]?[0-9]{4,6}$/im;
+
+ setEmail(text);
+ if (re.test(text) || regex.test(text)) {
+ setCheckValidEmail(false);
+ } else {
+ setCheckValidEmail(true);
+
+ }
+ };
+
+ const checkPasswordValidity = value => {
+ const isNonWhiteSpace = /^\S*$/;
+ if (!isNonWhiteSpace.test(value)) {
+ return 'Password must not contain Whitespaces.';
+ }
+
+ const isContainsUppercase = /^(?=.*[a-z]).*$/;
+ if (!isContainsUppercase.test(value)) {
+ return 'Password must have at least one Uppercase Character.';
+ }
+
+ const isContainsLowercase = /^(?=.*[a-z]).*$/;
+ if (!isContainsLowercase.test(value)) {
+ return 'Password must have at least one Lowercase Character.';
+ }
+
+ const isContainsNumber = /^(?=.*).*$/;
+ if (!isContainsNumber.test(value)) {
+ return 'Password must contain at least one Digit.';
+ }
+
+
+
+
+ return null;
+ };
+
+ const handleLogin = async () => {
+
+
+ const checkPassowrd = checkPasswordValidity(password);
+ if (!checkPassowrd) {
+ // Hacer la solicitud a la API REST con los datos del usuario
+ await fetch('https://apphotel.iidtec.com/api/v1/login', {
+ method: 'POST',
+ headers: {
+ email,
+ password,
+
+
+ //'Content-Type': 'application/json'
+ },
+ //body:{
+
+ //}
+ })
+ .then(response => response.json())
+
+ .then(data => {
+
+ if (data.success) {
+
+
+ //const token = data.message;
+ // Si la solicitud es exitosa, mostrar un mensaje de éxito
+
+ AsyncStorage.setItem('token', data.message);
+ //se convierte el json a una cadena de texto
+ const jsonData = JSON.stringify(data.data);
+ AsyncStorage.setItem('data_user', jsonData);
+
+ Alert.alert('¡Inicio de sesión exitoso!');
+ // Alert.alert('recuerdalo, te servira para tu reserva',data.id);
+ navigation.navigate('Home');
+
+ //console.log(data)
+ //console.log(data.data)
+
+
+ }
+ else {
+ Alert.alert('error de email o contraseña');
+ }
+ })
+ .catch(error => {
+ // Si hay un error en la solicitud, mostrar un mensaje de error
+
+ Alert.alert('Error en el inicio de sesión', error.message);
+ navigation.navigate('Login');
+
+ });
+ }
+ };
+ return (
+
+
+ Inicio de Sesión
+
+
+
+ handleCheckEmail(text)}
+ />
+
+ {checkValidEmail ? (
+ email invalido
+ ) : (
+
+ )}
+
+
+
+ setPassword(text)}
+ />
+ setSeePassword(!seePassword)}>
+
+
+
+ {checkValidEmail || password == true ? (
+
+ Iniciar Sesión
+
+ ) : (
+
+ Iniciar Sesión
+
+
+ )}
+
+ ¿Aún no tienes cuenta?
+ navigation.navigate('Registro')} >Regístrate
+
+
+
+
+ {/* */}
+
+ )
+}
+const styles = StyleSheet.create({
+ container: {
+ flex: 1,
+ justifyContent: 'center',
+ marginHorizontal: 20,
+ backgroundColor: colors.primary,
+ borderRadius: 30
+ },
+ wrapperInput: {
+ borderWidth: 1,
+ borderRadius: 5,
+ borderColor: 'grey',
+ marginTop: 20,
+ flexDirection: 'row',
+ alignItems: 'center',
+ borderTopColor: 'black',
+ borderColor: colors.gray
+
+ },
+ input: {
+ padding: 10,
+ width: '100%',
+ },
+ wrapperIcon: {
+ position: 'absolute',
+ right: 5,
+ padding: 5,
+ marginStart: -1,
+ },
+ icon: {
+ width: 30,
+ height: 24,
+ paddingStart: -50,
+ position: 'relative',
+ left: -50
+
+
+ },
+ button: {
+ padding: 15,
+ paddingStart: 100,
+ alignContent: 'center',
+ height: 50,
+ marginTop: 30,
+ borderRadius: 6,
+ backgroundColor: 'grey',
+ marginHorizontal: 50,
+ alignItems: 'baseline'
+ },
+
+ buttonDisable: {
+ padding: 15,
+ paddingStart: 100,
+ alignContent: 'flex-end',
+ height: 50,
+ marginTop: 30,
+ borderRadius: 6,
+ backgroundColor: 'grey',
+ marginHorizontal: 50,
+ },
+ buttonVisible: {
+ padding: 15,
+ paddingStart: 100,
+ alignContent: 'center',
+ height: 50,
+ marginTop: 30,
+ borderRadius: 6,
+ backgroundColor: 'grey',
+ marginHorizontal: 50,
+ },
+ text: {
+ color: 'white',
+ fontWeight: '700',
+
+ },
+
+ text2: {
+ color: 'white',
+ fontWeight: '700',
+
+ },
+ textFailed: {
+ alignSelf: 'flex-end',
+ color: 'red',
+ },
+ title: {
+ fontSize: sizes.title,
+ fontWeight: 'bold',
+ },
+ link: {
+ color: colors.blue,
+ },
+})
+export default LoginScreen;
\ No newline at end of file
diff --git a/src/screens/ReservaScreen.js b/src/screens/ReservaScreen.js
new file mode 100644
index 0000000..2a3269e
--- /dev/null
+++ b/src/screens/ReservaScreen.js
@@ -0,0 +1,269 @@
+import { useNavigation } from '@react-navigation/native';
+import React, { useState } from 'react';
+import { View, TextInput, Button, Alert, Text, StyleSheet } from 'react-native';
+import AsyncStorage from '@react-native-async-storage/async-storage';
+import { TouchableOpacity } from 'react-native-gesture-handler';
+import { colors, sizes } from '../constants/theme';
+import moment from 'moment';
+
+
+const ReservaScreen = () => {
+ const navigation = useNavigation();
+ //const [hotelUser_id, setHotelUser_id] = useState('');
+ const [description, setDescription] = useState('');
+ const [arrival, setArrival] = useState('');
+ const [departure, setDeparture] = useState('');
+ const [amountPeople, setAmountPeople] = useState('');
+ //const [hotelRoom_id, setHotelRoom_id] = useState('');
+ const [CheckValidArrival, setCheckValidArrival] = useState('');
+ const [CheckValidDeparture, setCheckValidDeparture] = useState('');
+
+ const hotelReservationStatu_id = 1;
+ const hotelStatusEntity_id = 1;
+
+ const hotelRoom_id=1;
+
+
+
+ const handleCheckFecha = text => {
+ let re = /S\S\S/;
+ let regex = /[2]{1}?[0]{1}?[2]{1}?[1-9]{1}?[-]?[0,1]{1}?[1-9]{1}?[-]?[0-3]{1}?[0-9]{1}$/;
+
+ setArrival(text);
+ setDeparture(text);
+ if (re.test(text) || regex.test(text)) {
+ setCheckValidArrival(false);
+
+
+ }
+
+
+ else {
+ setCheckValidArrival(true);
+
+ }
+ };
+
+
+ const handleCheckDeparture = text => {
+ let re = /S\S\S/;
+ let regex = /[2]{1}?[0]{1}?[2]{1}?[1-9]{1}?[-]?[0,1]{1}?[1-9]{1}?[-]?[0-3]{1}?[0-9]{2}$/;
+
+
+ setDeparture(text);
+ if (re.test(text) || regex.test(text)) {
+
+ setCheckValidDeparture(true);
+
+ }
+
+ else {
+ setCheckValidDeparture(false);
+ }
+ };
+
+
+
+
+
+
+
+
+
+
+ const handleReserva = async () => {
+ // Hacer la solicitud a la API REST con los datos del usuario
+
+
+
+
+ const token = await AsyncStorage.getItem('token');
+ ///const hotelUser_id = await AsyncStorage.getItem('hotelUser_id');
+ let data_user = await AsyncStorage.getItem('data_user');
+ if (data_user !== null) {
+ //console.log(JSON.parse(data_user));
+ data_user= JSON.parse(data_user);
+ // Aquí puedes utilizar los datos obtenidos
+ }
+ //console.log(token);
+ console.log(data_user.id);
+ console.log(token)
+ const hotelUser_id = data_user.id;
+ const isBefore = moment (arrival).isBefore(departure);
+ if (isBefore) {
+ fetch(`https://apphotel.iidtec.com/api/v1/reservation`, {
+
+
+ method: 'POST',
+ headers: {
+
+ 'Content-Type': 'application/json',
+ 'Authorization': `Bearer ${token}`
+ },
+
+
+
+ body: JSON.stringify({
+ hotelUser_id,
+ description,
+ arrival,
+ departure,
+ amountPeople,
+ hotelRoom_id,
+ hotelReservationStatu_id,
+ hotelStatusEntity_id: hotelStatusEntity_id,
+ token
+
+ })
+
+ })
+ .then(response => response.json())
+ .then(data => {
+ // Si la solicitud es exitosa, mostrar un mensaje de éxito
+
+ //localStorage.setItem ('token', JSON.stringify(token));
+
+ Alert.alert('¡Reserva Exitosa!');
+
+ console.log(token)
+ console.log(data)
+ console.log(hotelUser_id)
+
+
+
+
+ })
+ .catch(error => {
+ // Si hay un error en la solicitud, mostrar un mensaje de error
+
+ Alert.alert('Error de Reserva', error.message);
+
+ })
+ }
+ else {
+ alert('La fecha de salida debe ser posterior a la fecha de llegada');
+ };
+ };
+
+ return (
+
+ Reserva
+
+ setDescription(text)}
+
+ />
+
+
+ {CheckValidArrival ? (
+ fecha invalida
+ ) : (
+
+ )}
+
+
+
+ handleCheckFecha(text)}
+ />
+
+
+ {CheckValidDeparture ? (
+ fecha invalido
+ ) : (
+
+ )}
+
+ handleCheckDeparture(text)}
+ />
+
+
+
+ setAmountPeople(text)}
+ keyboardType='numeric'
+ />
+
+
+
+ {description == '' || arrival == '' || departure == '' || amountPeople == '' || CheckValidArrival || CheckValidDeparture == true ? (
+
+ Reservar
+
+ ) : (
+
+ Reservar
+
+
+ )}
+ navigation.navigate('Home')} >
+ Regresar
+
+
+ );
+};
+const styles = StyleSheet.create({
+ link: {
+ color: 'blue'
+ },
+ textFailed: {
+ alignSelf: 'flex-end',
+ color: 'red',
+ },
+
+
+ wrapperInput: {
+ borderWidth: 1.5,
+ borderRadius: 10,
+ borderColor: 'grey',
+ marginTop: 10,
+ flexDirection: 'column-reverse',
+ paddingStart: 10,
+
+
+
+ },
+ container: {
+ flex: 1,
+ justifyContent: 'center',
+ marginHorizontal: 20,
+ backgroundColor: colors.primary,
+ borderRadius: 30
+ },
+ text: {
+ color: 'white',
+ fontWeight: '700',
+ },
+ buttonDisable: {
+ padding: 15,
+ paddingStart: 100,
+ alignContent: 'center',
+ height: 50,
+ marginTop: 30,
+ borderRadius: 6,
+ backgroundColor: 'grey',
+ marginHorizontal: 50,
+ alignItems: 'baseline'
+
+
+ },
+ title: {
+ fontSize: sizes.title,
+ fontWeight: 'bold',
+ }
+})
+export default ReservaScreen;
\ No newline at end of file
diff --git a/src/screens/SearchScreen.js b/src/screens/SearchScreen.js
index ab79af4..a4bcecc 100644
--- a/src/screens/SearchScreen.js
+++ b/src/screens/SearchScreen.js
@@ -9,16 +9,18 @@ import {SEARCH_ALL, SEARCH_HOTELS, SEARCH_PLACES} from '../data';
const tabs = [
{
- title: 'All',
+ title: 'Todos',
content: () => ,
},
{
- title: 'Places',
+ title: '5 estrellas',
content: () => ,
},
{
- title: 'Hotels',
+ title: 'mejor alojamiento',
content: () => ,
+
+
},
];
diff --git a/src/screens/TripDetailsScreen.js b/src/screens/TripDetailsScreen.js
deleted file mode 100644
index 3d4ae88..0000000
--- a/src/screens/TripDetailsScreen.js
+++ /dev/null
@@ -1,84 +0,0 @@
-import React from 'react';
-import {View, StyleSheet} from 'react-native';
-import {colors, shadow, sizes, spacing} from '../constants/theme';
-import Icon from '../components/shared/Icon';
-import {useSafeAreaInsets} from 'react-native-safe-area-context';
-import TripDetailsCard from '../components/TripDetails/TripDetailsCard/TripDetailsCard';
-import * as Animatable from 'react-native-animatable';
-import TripDetailsCarousel from '../components/TripDetails/TripDetailsCarousel';
-import FavoriteButton from '../components/shared/FavoriteButton';
-
-const TripDetailsScreen = ({navigation, route}) => {
- const insets = useSafeAreaInsets();
- const {trip} = route.params;
- const slides = [trip.image, ...trip.gallery];
- return (
-
-
-
-
-
- {}} />
-
-
-
-
- );
-};
-
-TripDetailsScreen.sharedElements = route => {
- const {trip} = route.params;
- return [
- {
- id: `trip.${trip.id}.image`,
- },
- ];
-};
-
-const styles = StyleSheet.create({
- container: {
- flex: 1,
- },
- imageBox: {
- borderRadius: sizes.radius,
- overflow: 'hidden',
- },
- image: {
- width: sizes.width,
- height: sizes.height,
- resizeMode: 'cover',
- },
- backButton: {
- position: 'absolute',
- left: spacing.l,
- zIndex: 1,
- },
- backIcon: {
- backgroundColor: colors.white,
- padding: 4,
- borderRadius: sizes.radius,
- ...shadow.light,
- },
- favoriteButton: {
- position: 'absolute',
- right: spacing.l,
- zIndex: 1,
- },
-});
-
-export default TripDetailsScreen;