diff --git a/ComApp/README.md b/ComApp/README.md
index 5cc135d..73f187f 100644
--- a/ComApp/README.md
+++ b/ComApp/README.md
@@ -4,4 +4,11 @@
- @react-native-community/netinfo
- axios
- lodash
-- expo
\ No newline at end of file
+- expo
+- react-redux
+- redux
+- realm
+- @react-navigation/native
+- react-native-screens
+- react-native-safe-area-context
+- @react-navigation/native-stack
\ No newline at end of file
diff --git a/ComApp/package-lock.json b/ComApp/package-lock.json
index 67535d2..5255f49 100644
--- a/ComApp/package-lock.json
+++ b/ComApp/package-lock.json
@@ -9,6 +9,8 @@
"version": "0.0.1",
"dependencies": {
"@react-native-community/netinfo": "^9.3.2",
+ "@react-navigation/native": "^6.0.13",
+ "@react-navigation/native-stack": "^6.9.0",
"axios": "^0.27.2",
"expo": "^46.0.13",
"i18n-js": "^4.1.1",
@@ -17,7 +19,11 @@
"npm": "^8.19.2",
"react": "18.1.0",
"react-native": "0.70.1",
- "realm": "^11.0.0-rc.2"
+ "react-native-safe-area-context": "^4.4.1",
+ "react-native-screens": "^3.18.0",
+ "react-redux": "^8.0.4",
+ "realm": "^11.0.0-rc.2",
+ "redux": "^4.2.0"
},
"devDependencies": {
"@babel/core": "^7.12.9",
@@ -4075,6 +4081,99 @@
"integrity": "sha512-K0aGNn1TjalKj+65D7ycc1//H9roAQ51GJVk5ZJQFb2teECGmzd86bYDC0aYdbRf7gtovescq4Zt6FR0tgXiHQ==",
"license": "MIT"
},
+ "node_modules/@react-navigation/core": {
+ "version": "6.4.0",
+ "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-6.4.0.tgz",
+ "integrity": "sha512-tpc0Ak/DiHfU3LlYaRmIY7vI4sM/Ru0xCet6runLUh9aABf4wiLgxyFJ5BtoWq6xFF8ymYEA/KWtDhetQ24YiA==",
+ "dependencies": {
+ "@react-navigation/routers": "^6.1.3",
+ "escape-string-regexp": "^4.0.0",
+ "nanoid": "^3.1.23",
+ "query-string": "^7.0.0",
+ "react-is": "^16.13.0",
+ "use-latest-callback": "^0.1.5"
+ },
+ "peerDependencies": {
+ "react": "*"
+ }
+ },
+ "node_modules/@react-navigation/core/node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@react-navigation/core/node_modules/react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
+ },
+ "node_modules/@react-navigation/elements": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.3.6.tgz",
+ "integrity": "sha512-pNJ8R9JMga6SXOw6wGVN0tjmE6vegwPmJBL45SEMX2fqTfAk2ykDnlJHodRpHpAgsv0DaI8qX76z3A+aqKSU0w==",
+ "peerDependencies": {
+ "@react-navigation/native": "^6.0.0",
+ "react": "*",
+ "react-native": "*",
+ "react-native-safe-area-context": ">= 3.0.0"
+ }
+ },
+ "node_modules/@react-navigation/native": {
+ "version": "6.0.13",
+ "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-6.0.13.tgz",
+ "integrity": "sha512-CwaJcAGbhv3p3ECablxBkw8QBCGDWXqVRwQ4QbelajNW623m3sNTC9dOF6kjp8au6Rg9B5e0KmeuY0xWbPk79A==",
+ "dependencies": {
+ "@react-navigation/core": "^6.4.0",
+ "escape-string-regexp": "^4.0.0",
+ "fast-deep-equal": "^3.1.3",
+ "nanoid": "^3.1.23"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/@react-navigation/native-stack": {
+ "version": "6.9.0",
+ "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-6.9.0.tgz",
+ "integrity": "sha512-cwqm/2GO0hf94OFRuH6R0beZPVKY4vMFxrdAPaDwwoukN5a0UgcsMYxrN8s2huwssTCuGScABFME9GnqG5hC5w==",
+ "dependencies": {
+ "@react-navigation/elements": "^1.3.6",
+ "warn-once": "^0.1.0"
+ },
+ "peerDependencies": {
+ "@react-navigation/native": "^6.0.0",
+ "react": "*",
+ "react-native": "*",
+ "react-native-safe-area-context": ">= 3.0.0",
+ "react-native-screens": ">= 3.0.0"
+ }
+ },
+ "node_modules/@react-navigation/native/node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@react-navigation/routers": {
+ "version": "6.1.3",
+ "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-6.1.3.tgz",
+ "integrity": "sha512-idJotMEzHc3haWsCh7EvnnZMKxvaS4YF/x2UyFBkNFiEFUaEo/1ioQU6qqmVLspdEv4bI/dLm97hQo7qD8Yl7Q==",
+ "dependencies": {
+ "nanoid": "^3.1.23"
+ }
+ },
"node_modules/@realm.io/common": {
"version": "0.1.5",
"resolved": "https://registry.npmjs.org/@realm.io/common/-/common-0.1.5.tgz",
@@ -4202,6 +4301,15 @@
"@types/node": "*"
}
},
+ "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/istanbul-lib-coverage": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz",
@@ -4253,6 +4361,26 @@
"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.21",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.21.tgz",
+ "integrity": "sha512-7QUCOxvFgnD5Jk8ZKlUAhVcRj7GuJRjnjjiY/IUBWKgOlnvDvTMLD4RTF7NPyVmbRhNrbomZiOepg7M/2Kj1mA==",
+ "dependencies": {
+ "@types/prop-types": "*",
+ "@types/scheduler": "*",
+ "csstype": "^3.0.2"
+ }
+ },
+ "node_modules/@types/scheduler": {
+ "version": "0.16.2",
+ "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz",
+ "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew=="
+ },
"node_modules/@types/stack-utils": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
@@ -4260,6 +4388,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",
@@ -6457,6 +6590,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",
@@ -8248,6 +8386,14 @@
"node": ">=8"
}
},
+ "node_modules/filter-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz",
+ "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/finalhandler": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
@@ -9043,6 +9189,19 @@
"node": ">= 8"
}
},
+ "node_modules/hoist-non-react-statics": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
+ "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
+ "dependencies": {
+ "react-is": "^16.7.0"
+ }
+ },
+ "node_modules/hoist-non-react-statics/node_modules/react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
+ },
"node_modules/hosted-git-info": {
"version": "2.8.9",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
@@ -12305,6 +12464,17 @@
"thenify-all": "^1.0.0"
}
},
+ "node_modules/nanoid": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
+ "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
"node_modules/nanomatch": {
"version": "1.2.13",
"resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
@@ -13149,6 +13319,8 @@
},
"node_modules/npm/node_modules/aggregate-error": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
+ "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
"inBundle": true,
"license": "MIT",
"dependencies": {
@@ -13335,6 +13507,8 @@
},
"node_modules/npm/node_modules/clean-stack": {
"version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
+ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
"inBundle": true,
"license": "MIT",
"engines": {
@@ -13747,6 +13921,8 @@
},
"node_modules/npm/node_modules/indent-string": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
+ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
"inBundle": true,
"license": "MIT",
"engines": {
@@ -13755,6 +13931,8 @@
},
"node_modules/npm/node_modules/infer-owner": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz",
+ "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==",
"inBundle": true,
"license": "ISC"
},
@@ -14108,6 +14286,8 @@
},
"node_modules/npm/node_modules/minipass-collect": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz",
+ "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==",
"inBundle": true,
"license": "ISC",
"dependencies": {
@@ -14135,6 +14315,8 @@
},
"node_modules/npm/node_modules/minipass-flush": {
"version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz",
+ "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==",
"inBundle": true,
"license": "ISC",
"dependencies": {
@@ -14518,6 +14700,8 @@
},
"node_modules/npm/node_modules/p-map": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
+ "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
"inBundle": true,
"license": "MIT",
"dependencies": {
@@ -14625,6 +14809,8 @@
},
"node_modules/npm/node_modules/promise-inflight": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
+ "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==",
"inBundle": true,
"license": "ISC"
},
@@ -16070,6 +16256,23 @@
"node": ">=0.6"
}
},
+ "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==",
+ "dependencies": {
+ "decode-uri-component": "^0.2.0",
+ "filter-obj": "^1.1.0",
+ "split-on-first": "^1.0.0",
+ "strict-uri-encode": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/querystringify": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
@@ -16219,6 +16422,17 @@
"ws": "^7"
}
},
+ "node_modules/react-freeze": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/react-freeze/-/react-freeze-1.0.3.tgz",
+ "integrity": "sha512-ZnXwLQnGzrDpHBHiC56TXFXvmolPeMjTn1UOm610M4EXGzbEDR7oOIyS2ZiItgbs6eZc4oU/a0hpk8PrcKvv5g==",
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "react": ">=17.0.0"
+ }
+ },
"node_modules/react-is": {
"version": "18.2.0",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
@@ -16292,6 +16506,28 @@
"integrity": "sha512-oOanj84fJEXUg9FoEAQomA8ISG+DVIrTZ3qF7m69VQUJyOGYyDZmPqKcjvRku4KXlEH6hWO9i4ACLzNBh8gC0A==",
"license": "MIT"
},
+ "node_modules/react-native-safe-area-context": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-4.4.1.tgz",
+ "integrity": "sha512-N9XTjiuD73ZpVlejHrUWIFZc+6Z14co1K/p1IFMkImU7+avD69F3y+lhkqA2hN/+vljdZrBSiOwXPkuo43nFQA==",
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*"
+ }
+ },
+ "node_modules/react-native-screens": {
+ "version": "3.18.0",
+ "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-3.18.0.tgz",
+ "integrity": "sha512-ndnz5JPLMLq/ThCYQzAOT65x6B4bdKFH1GKckUdbxKrwINGItPRSUiAoVI7YYyOQOa4VYL4hF37rrx+AjgjtRg==",
+ "dependencies": {
+ "react-freeze": "^1.0.0",
+ "warn-once": "^0.1.0"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-native": "*"
+ }
+ },
"node_modules/react-native/node_modules/metro-runtime": {
"version": "0.72.1",
"resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.72.1.tgz",
@@ -16362,6 +16598,44 @@
"async-limiter": "~1.0.0"
}
},
+ "node_modules/react-redux": {
+ "version": "8.0.4",
+ "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.0.4.tgz",
+ "integrity": "sha512-yMfQ7mX6bWuicz2fids6cR1YT59VTuT8MKyyE310wJQlINKENCeT1UcPdEiX6znI5tF8zXyJ/VYvDgeGuaaNwQ==",
+ "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-refresh": {
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.4.3.tgz",
@@ -16591,6 +16865,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",
@@ -17762,6 +18044,14 @@
"node": "*"
}
},
+ "node_modules/split-on-first": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz",
+ "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -17928,6 +18218,14 @@
"node": ">=0.10.20"
}
},
+ "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": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
@@ -19049,6 +19347,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-sync-external-store": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz",
@@ -19203,6 +19506,11 @@
"makeerror": "1.0.12"
}
},
+ "node_modules/warn-once": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/warn-once/-/warn-once-0.1.1.tgz",
+ "integrity": "sha512-VkQZJbO8zVImzYFteBXvBOZEl1qL175WH8VmZcxF2fZAoudNhNDvHi+doCaAEdU2l2vtcIwa2zn0QK5+I1HQ3Q=="
+ },
"node_modules/wcwidth": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
@@ -22397,6 +22705,72 @@
"resolved": "https://registry.npmjs.org/@react-native/polyfills/-/polyfills-2.0.0.tgz",
"integrity": "sha512-K0aGNn1TjalKj+65D7ycc1//H9roAQ51GJVk5ZJQFb2teECGmzd86bYDC0aYdbRf7gtovescq4Zt6FR0tgXiHQ=="
},
+ "@react-navigation/core": {
+ "version": "6.4.0",
+ "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-6.4.0.tgz",
+ "integrity": "sha512-tpc0Ak/DiHfU3LlYaRmIY7vI4sM/Ru0xCet6runLUh9aABf4wiLgxyFJ5BtoWq6xFF8ymYEA/KWtDhetQ24YiA==",
+ "requires": {
+ "@react-navigation/routers": "^6.1.3",
+ "escape-string-regexp": "^4.0.0",
+ "nanoid": "^3.1.23",
+ "query-string": "^7.0.0",
+ "react-is": "^16.13.0",
+ "use-latest-callback": "^0.1.5"
+ },
+ "dependencies": {
+ "escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="
+ },
+ "react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
+ }
+ }
+ },
+ "@react-navigation/elements": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.3.6.tgz",
+ "integrity": "sha512-pNJ8R9JMga6SXOw6wGVN0tjmE6vegwPmJBL45SEMX2fqTfAk2ykDnlJHodRpHpAgsv0DaI8qX76z3A+aqKSU0w==",
+ "requires": {}
+ },
+ "@react-navigation/native": {
+ "version": "6.0.13",
+ "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-6.0.13.tgz",
+ "integrity": "sha512-CwaJcAGbhv3p3ECablxBkw8QBCGDWXqVRwQ4QbelajNW623m3sNTC9dOF6kjp8au6Rg9B5e0KmeuY0xWbPk79A==",
+ "requires": {
+ "@react-navigation/core": "^6.4.0",
+ "escape-string-regexp": "^4.0.0",
+ "fast-deep-equal": "^3.1.3",
+ "nanoid": "^3.1.23"
+ },
+ "dependencies": {
+ "escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="
+ }
+ }
+ },
+ "@react-navigation/native-stack": {
+ "version": "6.9.0",
+ "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-6.9.0.tgz",
+ "integrity": "sha512-cwqm/2GO0hf94OFRuH6R0beZPVKY4vMFxrdAPaDwwoukN5a0UgcsMYxrN8s2huwssTCuGScABFME9GnqG5hC5w==",
+ "requires": {
+ "@react-navigation/elements": "^1.3.6",
+ "warn-once": "^0.1.0"
+ }
+ },
+ "@react-navigation/routers": {
+ "version": "6.1.3",
+ "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-6.1.3.tgz",
+ "integrity": "sha512-idJotMEzHc3haWsCh7EvnnZMKxvaS4YF/x2UyFBkNFiEFUaEo/1ioQU6qqmVLspdEv4bI/dLm97hQo7qD8Yl7Q==",
+ "requires": {
+ "nanoid": "^3.1.23"
+ }
+ },
"@realm.io/common": {
"version": "0.1.5",
"resolved": "https://registry.npmjs.org/@realm.io/common/-/common-0.1.5.tgz",
@@ -22509,6 +22883,15 @@
"@types/node": "*"
}
},
+ "@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/istanbul-lib-coverage": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz",
@@ -22553,12 +22936,37 @@
"integrity": "sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==",
"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.21",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.21.tgz",
+ "integrity": "sha512-7QUCOxvFgnD5Jk8ZKlUAhVcRj7GuJRjnjjiY/IUBWKgOlnvDvTMLD4RTF7NPyVmbRhNrbomZiOepg7M/2Kj1mA==",
+ "requires": {
+ "@types/prop-types": "*",
+ "@types/scheduler": "*",
+ "csstype": "^3.0.2"
+ }
+ },
+ "@types/scheduler": {
+ "version": "0.16.2",
+ "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz",
+ "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew=="
+ },
"@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",
@@ -24124,6 +24532,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",
@@ -25405,6 +25818,11 @@
"to-regex-range": "^5.0.1"
}
},
+ "filter-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz",
+ "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ=="
+ },
"finalhandler": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
@@ -25949,6 +26367,21 @@
}
}
},
+ "hoist-non-react-statics": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
+ "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
+ "requires": {
+ "react-is": "^16.7.0"
+ },
+ "dependencies": {
+ "react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
+ }
+ }
+ },
"hosted-git-info": {
"version": "2.8.9",
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
@@ -28364,6 +28797,11 @@
"thenify-all": "^1.0.0"
}
},
+ "nanoid": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
+ "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw=="
+ },
"nanomatch": {
"version": "1.2.13",
"resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
@@ -28903,6 +29341,8 @@
},
"aggregate-error": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
+ "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
"bundled": true,
"requires": {
"clean-stack": "^2.0.0",
@@ -29035,6 +29475,8 @@
},
"clean-stack": {
"version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
+ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
"bundled": true
},
"cli-columns": {
@@ -29318,10 +29760,14 @@
},
"indent-string": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
+ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
"bundled": true
},
"infer-owner": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz",
+ "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==",
"bundled": true
},
"inflight": {
@@ -29574,6 +30020,8 @@
},
"minipass-collect": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz",
+ "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==",
"bundled": true,
"requires": {
"minipass": "^3.0.0"
@@ -29591,6 +30039,8 @@
},
"minipass-flush": {
"version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz",
+ "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==",
"bundled": true,
"requires": {
"minipass": "^3.0.0"
@@ -29853,6 +30303,8 @@
},
"p-map": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
+ "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
"bundled": true,
"requires": {
"aggregate-error": "^3.0.0"
@@ -29922,6 +30374,8 @@
},
"promise-inflight": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
+ "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==",
"bundled": true
},
"promise-retry": {
@@ -30961,6 +31415,17 @@
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz",
"integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA=="
},
+ "query-string": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.1.tgz",
+ "integrity": "sha512-MplouLRDHBZSG9z7fpuAAcI7aAYjDLhtsiVZsevsfaHWDS2IDdORKbSd1kWUA+V4zyva/HZoSfpwnYMMQDhb0w==",
+ "requires": {
+ "decode-uri-component": "^0.2.0",
+ "filter-obj": "^1.1.0",
+ "split-on-first": "^1.0.0",
+ "strict-uri-encode": "^2.0.0"
+ }
+ },
"querystringify": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
@@ -31066,6 +31531,12 @@
"ws": "^7"
}
},
+ "react-freeze": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/react-freeze/-/react-freeze-1.0.3.tgz",
+ "integrity": "sha512-ZnXwLQnGzrDpHBHiC56TXFXvmolPeMjTn1UOm610M4EXGzbEDR7oOIyS2ZiItgbs6eZc4oU/a0hpk8PrcKvv5g==",
+ "requires": {}
+ },
"react-is": {
"version": "18.2.0",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
@@ -31183,6 +31654,34 @@
"resolved": "https://registry.npmjs.org/react-native-gradle-plugin/-/react-native-gradle-plugin-0.70.3.tgz",
"integrity": "sha512-oOanj84fJEXUg9FoEAQomA8ISG+DVIrTZ3qF7m69VQUJyOGYyDZmPqKcjvRku4KXlEH6hWO9i4ACLzNBh8gC0A=="
},
+ "react-native-safe-area-context": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-4.4.1.tgz",
+ "integrity": "sha512-N9XTjiuD73ZpVlejHrUWIFZc+6Z14co1K/p1IFMkImU7+avD69F3y+lhkqA2hN/+vljdZrBSiOwXPkuo43nFQA==",
+ "requires": {}
+ },
+ "react-native-screens": {
+ "version": "3.18.0",
+ "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-3.18.0.tgz",
+ "integrity": "sha512-ndnz5JPLMLq/ThCYQzAOT65x6B4bdKFH1GKckUdbxKrwINGItPRSUiAoVI7YYyOQOa4VYL4hF37rrx+AjgjtRg==",
+ "requires": {
+ "react-freeze": "^1.0.0",
+ "warn-once": "^0.1.0"
+ }
+ },
+ "react-redux": {
+ "version": "8.0.4",
+ "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.0.4.tgz",
+ "integrity": "sha512-yMfQ7mX6bWuicz2fids6cR1YT59VTuT8MKyyE310wJQlINKENCeT1UcPdEiX6znI5tF8zXyJ/VYvDgeGuaaNwQ==",
+ "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"
+ }
+ },
"react-refresh": {
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.4.3.tgz",
@@ -31351,6 +31850,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",
@@ -32213,6 +32720,11 @@
"through": "2"
}
},
+ "split-on-first": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz",
+ "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw=="
+ },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -32330,6 +32842,11 @@
"resolved": "https://registry.npmjs.org/stream-counter/-/stream-counter-1.0.0.tgz",
"integrity": "sha512-4nfHc1016AhNOs0CFDR3S0FNeqnYbT7xZ408coajcx2Msj8malNNjvFHzWYIfIAXNK5i0eaKIVfgBYPOkyOTIg=="
},
+ "strict-uri-encode": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz",
+ "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ=="
+ },
"string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
@@ -33142,6 +33659,11 @@
"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-sync-external-store": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz",
@@ -33264,6 +33786,11 @@
"makeerror": "1.0.12"
}
},
+ "warn-once": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/warn-once/-/warn-once-0.1.1.tgz",
+ "integrity": "sha512-VkQZJbO8zVImzYFteBXvBOZEl1qL175WH8VmZcxF2fZAoudNhNDvHi+doCaAEdU2l2vtcIwa2zn0QK5+I1HQ3Q=="
+ },
"wcwidth": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
diff --git a/ComApp/package.json b/ComApp/package.json
index 2582123..51438b3 100644
--- a/ComApp/package.json
+++ b/ComApp/package.json
@@ -11,6 +11,8 @@
},
"dependencies": {
"@react-native-community/netinfo": "^9.3.2",
+ "@react-navigation/native": "^6.0.13",
+ "@react-navigation/native-stack": "^6.9.0",
"axios": "^0.27.2",
"expo": "^46.0.13",
"i18n-js": "^4.1.1",
@@ -19,7 +21,11 @@
"npm": "^8.19.2",
"react": "18.1.0",
"react-native": "0.70.1",
- "realm": "^11.0.0-rc.2"
+ "react-native-safe-area-context": "^4.4.1",
+ "react-native-screens": "^3.18.0",
+ "react-redux": "^8.0.4",
+ "realm": "^11.0.0-rc.2",
+ "redux": "^4.2.0"
},
"devDependencies": {
"@babel/core": "^7.12.9",
diff --git a/ComApp/src/App.js b/ComApp/src/App.js
index 16f12b9..b221e78 100644
--- a/ComApp/src/App.js
+++ b/ComApp/src/App.js
@@ -7,16 +7,126 @@
*/
import React from 'react';
-import type {Node} from 'react';
-
+import { View, Image, TextInput, TouchableOpacity, Icon } from 'react-native';
+// Redux
+import { Provider } from 'react-redux';
+// Store
+import { store } from './App/Store/ConfigureStore';
+// Navigation
+import { NavigationContainer } from '@react-navigation/native';
+import { createNativeStackNavigator } from '@react-navigation/native-stack';
+import CustomNavigation from './Navigation';
+// Translations
+import i18n from "./I18n";
+// Navigations style
+import styles from './Resources/Styles/NavigationStyle';
+// Database
+import { Setting } from "./Database";
// Views
import InstallScreen from './App/Views/InstallScreen';
import HomeScreen from './App/Views/HomeScreen';
+// Lang Flags
+import flagFR from './Resources/assets/img/flags/fr.png';
+import flagEN from './Resources/assets/img/flags/en.png';
+import flagDE from './Resources/assets/img/flags/de.png';
+import flagES from './Resources/assets/img/flags/es.png';
-const App: () => Node = () => {
+const Stack = createNativeStackNavigator();
+
+const App = () => {
+ state = {
+ logged: false,
+ searchTxt: '',
+ sendEmail: '',
+ ShowIsActive: '0'
+ };
+
+ const savedLocale = Setting.get('locale');
+ let locale;
+ if (savedLocale !== undefined) {
+ locale = savedLocale.value;
+ } else {
+ locale = store.getState().locale;
+ }
+
+ let flag;
+ switch (locale) {
+ case "fr":
+ flag = { uri: Image.resolveAssetSource(flagFR).uri }
+ break;
+ case "en":
+ flag = { uri: Image.resolveAssetSource(flagEN).uri }
+ break;
+ case "de":
+ flag = { uri: Image.resolveAssetSource(flagDE).uri }
+ break;
+ case "es":
+ flag = { uri: Image.resolveAssetSource(flagES).uri }
+ break;
+ }
return (
-
+
+
+
+ ({
+ headerTitle: () => CustomNavigation.LogoTitle(i18n.t('global.home')),
+ headerRight: () => (
+
+
+ this.setState({ searchTxt: text })} />
+ {
+ if (this.state.searchTxt.length > 0) {
+ navigation.navigation.navigate('SearchScreen', {
+ needle: this.state.searchTxt,
+ onlyVideos: false,
+ });
+ this.setState({ searchTxt: '' });
+ }
+ }}>
+
+
+
+ {
+ store.dispatch({ type: 'UPDATE_LOCALE' });
+ }}
+ style={{ marginRight: 15 }}>
+
+
+ {this.state.ShowIsActive === '1' && (
+ navigation.navigation.navigate('MySpaceScreen')}
+ style={{ marginRight: 15 }}>
+
+
+ )}
+
+ navigation.navigation.navigate('SyncScreen', {
+ isInstalled: true,
+ })
+ }
+ style={{ marginRight: 15 }}>
+
+
+ {
+ store.dispatch({ type: 'SET_LOGGED', data: false });
+ }}
+ style={{ marginRight: 15 }}>
+
+
+
+ )
+ })}
+ />
+
+
+
);
};
diff --git a/ComApp/src/App/Store/ConfigureStore.js b/ComApp/src/App/Store/ConfigureStore.js
new file mode 100644
index 0000000..489eb85
--- /dev/null
+++ b/ComApp/src/App/Store/ConfigureStore.js
@@ -0,0 +1,9 @@
+import { createStore, combineReducers } from "redux";
+
+import appReducer from "./Reducers/AppReducer";
+
+const rootReducer = combineReducers({
+ app: appReducer
+});
+
+export const store = createStore(rootReducer);
\ No newline at end of file
diff --git a/ComApp/src/App/Store/Reducers/AppReducer.js b/ComApp/src/App/Store/Reducers/AppReducer.js
new file mode 100644
index 0000000..e26b909
--- /dev/null
+++ b/ComApp/src/App/Store/Reducers/AppReducer.js
@@ -0,0 +1,127 @@
+const initialState = {
+ locale: 'fr',
+ users: {},
+ directories: {},
+ documents: {},
+ contacts: {},
+ syncVersion: 0,
+ logged: undefined,
+ currentUser: {},
+ currentOpenedDoc: {},
+ ShowIsActive: 0,
+};
+
+const reducer = (state = initialState, action) => {
+ switch (action.type) {
+ case 'INIT':
+ let docs = DocumentsModel.getAll(DirectoriesModel.getAll(
+ state.currentUser.role,
+ state.currentUser.authorizedFolders,
+ false,
+ state.locale
+ ));
+ return {
+ ...state,
+ users: UsersModel.getAll(),
+ directories: DirectoriesModel.getAll(
+ state.currentUser.role,
+ state.currentUser.authorizedFolders,
+ true,
+ state.locale
+ ),
+ documents: docs.filter(item => item.lang === state.locale),
+ contacts: ContactsModel.getByUser(state.currentUser.id),
+ ShowIsActive: CommonModel.get('ShowIsActive')['value'],
+ };
+ case 'INIT_USERS':
+ return {
+ ...state,
+ users: UsersModel.getAll(),
+ };
+ case 'SET_CURRENT_USER':
+ return {
+ ...state,
+ currentUser: JSON.parse(action.data),
+ };
+ case 'SET_LOGGED':
+ if (action.data === false) {
+ CommonModel.delete('isLogged');
+ }
+ return {
+ ...state,
+ logged: action.data,
+ };
+ case 'UPDATE_LOCALE':
+ let nxt;
+ if (action.data === undefined) {
+ const availableLocales = ['fr', 'en', 'de'];
+ if (availableLocales.indexOf(i18n.locale) === availableLocales.length - 1) {
+ nxt = availableLocales[0];
+ } else {
+ nxt = availableLocales[availableLocales.indexOf(i18n.locale) + 1];
+ }
+ } else {
+ nxt = action.data;
+ }
+ i18n.locale = nxt;
+ CommonModel.update({ key: 'locale', value: nxt });
+ let docsL = DocumentsModel.getAll(DirectoriesModel.getAll(
+ state.currentUser.role,
+ state.currentUser.authorizedFolders,
+ false,
+ nxt
+ ));
+ return {
+ ...state,
+ locale: nxt,
+ directories: DirectoriesModel.getAll(
+ state.currentUser.role,
+ state.currentUser.authorizedFolders,
+ true,
+ nxt
+ ),
+ documents: docsL.filter(item => item.lang === nxt),
+ };
+ case 'SET_CURRENT_OPENED_DOC':
+ return {
+ ...state,
+ currentOpenedDoc: action.data
+ };
+ case 'UPDATE_VERSION':
+ return {
+ ...state,
+ syncVersion: action.data,
+ };
+ case 'UPDATE_SHOW_IS_ACTIVE':
+ Sync.updateShowIsActive(action.data);
+ return {
+ ...state,
+ ShowIsActive: action.data,
+ };
+ case 'UPDATE_CONTACT':
+ ContactsModel.update(action.data);
+ return {
+ ...state,
+ contacts: ContactsModel.getByUser(state.currentUser.id),
+ };
+ case 'ADD_CONTACT':
+ ContactsModel.add(action.data);
+ return {
+ ...state,
+ contacts: ContactsModel.getByUser(state.currentUser.id),
+ };
+ case 'DELETE_CONTACT':
+ ContactsModel.delete(action.data);
+ return {
+ ...state,
+ contacts: ContactsModel.getByUser(state.currentUser.id),
+ };
+ case 'SEND_BROCHURE':
+ SendBrochureModel.add(action.data);
+ return state;
+ default:
+ return state;
+ }
+}
+
+export default reducer;
\ No newline at end of file
diff --git a/ComApp/src/Navigation.js b/ComApp/src/Navigation.js
new file mode 100644
index 0000000..442d293
--- /dev/null
+++ b/ComApp/src/Navigation.js
@@ -0,0 +1,19 @@
+import { View, Text, Image } from 'react-native';
+// FileSytem
+import * as FileSystem from 'expo-file-system';
+
+class CustomNavigation {
+ LogoTitle(title) {
+ return (
+
+
+ {title}
+
+ );
+ }
+}
+
+export default new CustomNavigation();
\ No newline at end of file
diff --git a/ComApp/src/Resources/Styles/NavigationStyle.js b/ComApp/src/Resources/Styles/NavigationStyle.js
new file mode 100644
index 0000000..8ea5d0f
--- /dev/null
+++ b/ComApp/src/Resources/Styles/NavigationStyle.js
@@ -0,0 +1,19 @@
+import { StyleSheet } from 'react-native';
+
+const styles = StyleSheet.create({
+ searchInput: {
+ borderWidth: 1,
+ borderColor: '#ce3029',
+ width: 200,
+ paddingLeft: 20,
+ },
+ btnSearch: {
+ width: 50,
+ height: 50,
+ alignItems: 'center',
+ justifyContent: 'center',
+ backgroundColor: '#ce3029'
+ }
+});
+
+export default styles;
\ No newline at end of file
diff --git a/ComApp/yarn.lock b/ComApp/yarn.lock
index 80e3579..5ac493a 100644
--- a/ComApp/yarn.lock
+++ b/ComApp/yarn.lock
@@ -1041,7 +1041,7 @@
"pirates" "^4.0.5"
"source-map-support" "^0.5.16"
-"@babel/runtime@^7.0.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.14.0", "@babel/runtime@^7.8.4":
+"@babel/runtime@^7.0.0", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.14.0", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2":
"integrity" "sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA=="
"resolved" "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.0.tgz"
"version" "7.19.0"
@@ -2075,6 +2075,48 @@
"resolved" "https://registry.npmjs.org/@react-native/polyfills/-/polyfills-2.0.0.tgz"
"version" "2.0.0"
+"@react-navigation/core@^6.4.0":
+ "integrity" "sha512-tpc0Ak/DiHfU3LlYaRmIY7vI4sM/Ru0xCet6runLUh9aABf4wiLgxyFJ5BtoWq6xFF8ymYEA/KWtDhetQ24YiA=="
+ "resolved" "https://registry.npmjs.org/@react-navigation/core/-/core-6.4.0.tgz"
+ "version" "6.4.0"
+ dependencies:
+ "@react-navigation/routers" "^6.1.3"
+ "escape-string-regexp" "^4.0.0"
+ "nanoid" "^3.1.23"
+ "query-string" "^7.0.0"
+ "react-is" "^16.13.0"
+ "use-latest-callback" "^0.1.5"
+
+"@react-navigation/elements@^1.3.6":
+ "integrity" "sha512-pNJ8R9JMga6SXOw6wGVN0tjmE6vegwPmJBL45SEMX2fqTfAk2ykDnlJHodRpHpAgsv0DaI8qX76z3A+aqKSU0w=="
+ "resolved" "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.3.6.tgz"
+ "version" "1.3.6"
+
+"@react-navigation/native-stack@^6.9.0":
+ "integrity" "sha512-cwqm/2GO0hf94OFRuH6R0beZPVKY4vMFxrdAPaDwwoukN5a0UgcsMYxrN8s2huwssTCuGScABFME9GnqG5hC5w=="
+ "resolved" "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-6.9.0.tgz"
+ "version" "6.9.0"
+ dependencies:
+ "@react-navigation/elements" "^1.3.6"
+ "warn-once" "^0.1.0"
+
+"@react-navigation/native@^6.0.0", "@react-navigation/native@^6.0.13":
+ "integrity" "sha512-CwaJcAGbhv3p3ECablxBkw8QBCGDWXqVRwQ4QbelajNW623m3sNTC9dOF6kjp8au6Rg9B5e0KmeuY0xWbPk79A=="
+ "resolved" "https://registry.npmjs.org/@react-navigation/native/-/native-6.0.13.tgz"
+ "version" "6.0.13"
+ dependencies:
+ "@react-navigation/core" "^6.4.0"
+ "escape-string-regexp" "^4.0.0"
+ "fast-deep-equal" "^3.1.3"
+ "nanoid" "^3.1.23"
+
+"@react-navigation/routers@^6.1.3":
+ "integrity" "sha512-idJotMEzHc3haWsCh7EvnnZMKxvaS4YF/x2UyFBkNFiEFUaEo/1ioQU6qqmVLspdEv4bI/dLm97hQo7qD8Yl7Q=="
+ "resolved" "https://registry.npmjs.org/@react-navigation/routers/-/routers-6.1.3.tgz"
+ "version" "6.1.3"
+ dependencies:
+ "nanoid" "^3.1.23"
+
"@realm.io/common@^0.1.4":
"integrity" "sha512-Y+UnICLvsPFpe2WOXWIdJUaV3G2qDocN8al/Yz13mYMkjODXHL4VhyfEKR2hvcAubv+7isdegEyYNdo3zQzbFA=="
"resolved" "https://registry.npmjs.org/@realm.io/common/-/common-0.1.5.tgz"
@@ -2172,6 +2214,14 @@
dependencies:
"@types/node" "*"
+"@types/hoist-non-react-statics@^3.3.1":
+ "integrity" "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA=="
+ "resolved" "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz"
+ "version" "3.3.1"
+ dependencies:
+ "@types/react" "*"
+ "hoist-non-react-statics" "^3.3.0"
+
"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1":
"integrity" "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g=="
"resolved" "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz"
@@ -2211,11 +2261,35 @@
"resolved" "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.1.tgz"
"version" "2.7.1"
+"@types/prop-types@*":
+ "integrity" "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w=="
+ "resolved" "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz"
+ "version" "15.7.5"
+
+"@types/react@*", "@types/react@^16.8 || ^17.0 || ^18.0":
+ "integrity" "sha512-7QUCOxvFgnD5Jk8ZKlUAhVcRj7GuJRjnjjiY/IUBWKgOlnvDvTMLD4RTF7NPyVmbRhNrbomZiOepg7M/2Kj1mA=="
+ "resolved" "https://registry.npmjs.org/@types/react/-/react-18.0.21.tgz"
+ "version" "18.0.21"
+ dependencies:
+ "@types/prop-types" "*"
+ "@types/scheduler" "*"
+ "csstype" "^3.0.2"
+
+"@types/scheduler@*":
+ "integrity" "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew=="
+ "resolved" "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz"
+ "version" "0.16.2"
+
"@types/stack-utils@^2.0.0":
"integrity" "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw=="
"resolved" "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz"
"version" "2.0.1"
+"@types/use-sync-external-store@^0.0.3":
+ "integrity" "sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA=="
+ "resolved" "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz"
+ "version" "0.0.3"
+
"@types/yargs-parser@*":
"integrity" "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA=="
"resolved" "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz"
@@ -3652,6 +3726,11 @@
dependencies:
"cssom" "~0.3.6"
+"csstype@^3.0.2":
+ "integrity" "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw=="
+ "resolved" "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz"
+ "version" "3.1.1"
+
"dag-map@~1.0.0":
"integrity" "sha512-+LSAiGFwQ9dRnRdOeaj7g47ZFJcOUPukAP8J3A3fuZ1g9Y44BG+P1sgApjLXTQPOzC4+7S9Wr8kXsfpINM4jpw=="
"resolved" "https://registry.npmjs.org/dag-map/-/dag-map-1.0.2.tgz"
@@ -4622,6 +4701,11 @@
dependencies:
"to-regex-range" "^5.0.1"
+"filter-obj@^1.1.0":
+ "integrity" "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ=="
+ "resolved" "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz"
+ "version" "1.1.0"
+
"finalhandler@1.1.2":
"integrity" "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA=="
"resolved" "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz"
@@ -5191,6 +5275,13 @@
dependencies:
"source-map" "^0.7.3"
+"hoist-non-react-statics@^3.3.0", "hoist-non-react-statics@^3.3.2":
+ "integrity" "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw=="
+ "resolved" "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz"
+ "version" "3.3.2"
+ dependencies:
+ "react-is" "^16.7.0"
+
"hosted-git-info@^2.1.4":
"integrity" "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw=="
"resolved" "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz"
@@ -7541,6 +7632,11 @@
"object-assign" "^4.0.1"
"thenify-all" "^1.0.0"
+"nanoid@^3.1.23":
+ "integrity" "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw=="
+ "resolved" "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz"
+ "version" "3.3.4"
+
"nanomatch@^1.2.9":
"integrity" "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA=="
"resolved" "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz"
@@ -8575,6 +8671,16 @@
"resolved" "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz"
"version" "6.7.0"
+"query-string@^7.0.0":
+ "integrity" "sha512-MplouLRDHBZSG9z7fpuAAcI7aAYjDLhtsiVZsevsfaHWDS2IDdORKbSd1kWUA+V4zyva/HZoSfpwnYMMQDhb0w=="
+ "resolved" "https://registry.npmjs.org/query-string/-/query-string-7.1.1.tgz"
+ "version" "7.1.1"
+ dependencies:
+ "decode-uri-component" "^0.2.0"
+ "filter-obj" "^1.1.0"
+ "split-on-first" "^1.0.0"
+ "strict-uri-encode" "^2.0.0"
+
"querystringify@^2.1.1":
"integrity" "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ=="
"resolved" "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz"
@@ -8618,16 +8724,31 @@
"shell-quote" "^1.6.1"
"ws" "^7"
-"react-is@^16.12.0 || ^17.0.0 || ^18.0.0", "react-is@^18.1.0":
+"react-freeze@^1.0.0":
+ "integrity" "sha512-ZnXwLQnGzrDpHBHiC56TXFXvmolPeMjTn1UOm610M4EXGzbEDR7oOIyS2ZiItgbs6eZc4oU/a0hpk8PrcKvv5g=="
+ "resolved" "https://registry.npmjs.org/react-freeze/-/react-freeze-1.0.3.tgz"
+ "version" "1.0.3"
+
+"react-is@^16.12.0 || ^17.0.0 || ^18.0.0", "react-is@^18.0.0", "react-is@^18.1.0":
"integrity" "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
"resolved" "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz"
"version" "18.2.0"
+"react-is@^16.13.0":
+ "integrity" "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
+ "resolved" "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz"
+ "version" "16.13.1"
+
"react-is@^16.13.1":
"integrity" "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
"resolved" "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz"
"version" "16.13.1"
+"react-is@^16.7.0":
+ "integrity" "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
+ "resolved" "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz"
+ "version" "16.13.1"
+
"react-is@^17.0.1":
"integrity" "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w=="
"resolved" "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz"
@@ -8648,7 +8769,20 @@
"resolved" "https://registry.npmjs.org/react-native-gradle-plugin/-/react-native-gradle-plugin-0.70.3.tgz"
"version" "0.70.3"
-"react-native@>=0.59", "react-native@>=0.70.0", "react-native@0.70.1":
+"react-native-safe-area-context@^4.4.1", "react-native-safe-area-context@>= 3.0.0":
+ "integrity" "sha512-N9XTjiuD73ZpVlejHrUWIFZc+6Z14co1K/p1IFMkImU7+avD69F3y+lhkqA2hN/+vljdZrBSiOwXPkuo43nFQA=="
+ "resolved" "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-4.4.1.tgz"
+ "version" "4.4.1"
+
+"react-native-screens@^3.18.0", "react-native-screens@>= 3.0.0":
+ "integrity" "sha512-ndnz5JPLMLq/ThCYQzAOT65x6B4bdKFH1GKckUdbxKrwINGItPRSUiAoVI7YYyOQOa4VYL4hF37rrx+AjgjtRg=="
+ "resolved" "https://registry.npmjs.org/react-native-screens/-/react-native-screens-3.18.0.tgz"
+ "version" "3.18.0"
+ dependencies:
+ "react-freeze" "^1.0.0"
+ "warn-once" "^0.1.0"
+
+"react-native@*", "react-native@>=0.59", "react-native@>=0.70.0", "react-native@0.70.1":
"integrity" "sha512-AUh4NZLFdvyjSiYWCtTROCrC7loxeeZ/TzBnkZwp3kb9XmMu7/kzvWn2c5sEMnzW7X/0JSul8jXexGVdpnCoSA=="
"resolved" "https://registry.npmjs.org/react-native/-/react-native-0.70.1.tgz"
"version" "0.70.1"
@@ -8686,6 +8820,18 @@
"whatwg-fetch" "^3.0.0"
"ws" "^6.1.4"
+"react-redux@^8.0.4":
+ "integrity" "sha512-yMfQ7mX6bWuicz2fids6cR1YT59VTuT8MKyyE310wJQlINKENCeT1UcPdEiX6znI5tF8zXyJ/VYvDgeGuaaNwQ=="
+ "resolved" "https://registry.npmjs.org/react-redux/-/react-redux-8.0.4.tgz"
+ "version" "8.0.4"
+ 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"
+
"react-refresh@^0.4.0":
"integrity" "sha512-Hwln1VNuGl/6bVwnd0Xdn1e84gT/8T9aYNL+HAKDArLCS7LWjwr7StE30IEYbIkx0Vi3vs+coQxe+SQDbGbbpA=="
"resolved" "https://registry.npmjs.org/react-refresh/-/react-refresh-0.4.3.tgz"
@@ -8708,7 +8854,7 @@
"react-shallow-renderer" "^16.15.0"
"scheduler" "^0.22.0"
-"react@^16.0.0 || ^17.0.0 || ^18.0.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0", "react@^18.1.0", "react@18.1.0":
+"react@*", "react@^16.0.0 || ^17.0.0 || ^18.0.0", "react@^16.8 || ^17.0 || ^18.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0", "react@^18.1.0", "react@>=17.0.0", "react@18.1.0":
"integrity" "sha512-4oL8ivCz5ZEPyclFQXaNksK3adutVS8l2xzZU0cqEFrE9Sb7fC0EFK5uEk74wIreL1DERyjvsU915j1pcT2uEQ=="
"resolved" "https://registry.npmjs.org/react/-/react-18.1.0.tgz"
"version" "18.1.0"
@@ -8850,6 +8996,13 @@
"source-map" "~0.6.1"
"tslib" "^2.0.1"
+"redux@^4", "redux@^4.2.0":
+ "integrity" "sha512-oSBmcKKIuIR4ME29/AeNUnl5L+hvBq7OaJWzaptTQJAntaPvxIJqfnjbaEiCzzaIz+XmVILfqAM3Ob0aXLPfjA=="
+ "resolved" "https://registry.npmjs.org/redux/-/redux-4.2.0.tgz"
+ "version" "4.2.0"
+ dependencies:
+ "@babel/runtime" "^7.9.2"
+
"regenerate-unicode-properties@^10.1.0":
"integrity" "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ=="
"resolved" "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz"
@@ -9541,6 +9694,11 @@
"resolved" "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz"
"version" "3.0.12"
+"split-on-first@^1.0.0":
+ "integrity" "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw=="
+ "resolved" "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz"
+ "version" "1.1.0"
+
"split-string@^3.0.1", "split-string@^3.0.2":
"integrity" "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw=="
"resolved" "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz"
@@ -9639,6 +9797,11 @@
"resolved" "https://registry.npmjs.org/stream-counter/-/stream-counter-1.0.0.tgz"
"version" "1.0.0"
+"strict-uri-encode@^2.0.0":
+ "integrity" "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ=="
+ "resolved" "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz"
+ "version" "2.0.0"
+
"string_decoder@^1.1.1", "string_decoder@~1.1.1":
"integrity" "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="
"resolved" "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz"
@@ -10384,6 +10547,11 @@
"querystringify" "^2.1.1"
"requires-port" "^1.0.0"
+"use-latest-callback@^0.1.5":
+ "integrity" "sha512-HtHatS2U4/h32NlkhupDsPlrbiD27gSH5swBdtXbCAlc6pfOFzaj0FehW/FO12rx8j2Vy4/lJScCiJyM01E+bQ=="
+ "resolved" "https://registry.npmjs.org/use-latest-callback/-/use-latest-callback-0.1.5.tgz"
+ "version" "0.1.5"
+
"use-sync-external-store@^1.0.0":
"integrity" "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA=="
"resolved" "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz"
@@ -10512,6 +10680,11 @@
dependencies:
"makeerror" "1.0.12"
+"warn-once@^0.1.0":
+ "integrity" "sha512-VkQZJbO8zVImzYFteBXvBOZEl1qL175WH8VmZcxF2fZAoudNhNDvHi+doCaAEdU2l2vtcIwa2zn0QK5+I1HQ3Q=="
+ "resolved" "https://registry.npmjs.org/warn-once/-/warn-once-0.1.1.tgz"
+ "version" "0.1.1"
+
"wcwidth@^1.0.0":
"version" "1.0.1"
dependencies: