From 784d606672bac3ec31ce5efc5f5bf653a817179c Mon Sep 17 00:00:00 2001 From: Miguel Benjamin Zubieta Rios Date: Fri, 29 Mar 2024 21:00:08 -0400 Subject: [PATCH 1/6] add tabBarNavigation, add icons to tabBar and add screens history and others. --- assets/tabs/file-list-3-fill.svg | 1 + assets/tabs/file-list-3-line.svg | 1 + assets/tabs/home-6-fill.svg | 1 + assets/tabs/home-6-line.svg | 1 + assets/tabs/stack-fill.svg | 1 + assets/tabs/stack-line.svg | 1 + package-lock.json | 263 ++++++++++++++++++++++++++++++- package.json | 8 +- src/firebase/config.js | 21 +++ src/navigation/AppNavigator.js | 83 +++++++--- src/screens/HistoryScreen.js | 24 +++ src/screens/OthersScreen.js | 24 +++ 12 files changed, 402 insertions(+), 27 deletions(-) create mode 100644 assets/tabs/file-list-3-fill.svg create mode 100644 assets/tabs/file-list-3-line.svg create mode 100644 assets/tabs/home-6-fill.svg create mode 100644 assets/tabs/home-6-line.svg create mode 100644 assets/tabs/stack-fill.svg create mode 100644 assets/tabs/stack-line.svg create mode 100644 src/firebase/config.js create mode 100644 src/screens/HistoryScreen.js create mode 100644 src/screens/OthersScreen.js diff --git a/assets/tabs/file-list-3-fill.svg b/assets/tabs/file-list-3-fill.svg new file mode 100644 index 0000000..fb4f8ce --- /dev/null +++ b/assets/tabs/file-list-3-fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/tabs/file-list-3-line.svg b/assets/tabs/file-list-3-line.svg new file mode 100644 index 0000000..240f2d9 --- /dev/null +++ b/assets/tabs/file-list-3-line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/tabs/home-6-fill.svg b/assets/tabs/home-6-fill.svg new file mode 100644 index 0000000..bc7b60a --- /dev/null +++ b/assets/tabs/home-6-fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/tabs/home-6-line.svg b/assets/tabs/home-6-line.svg new file mode 100644 index 0000000..400c069 --- /dev/null +++ b/assets/tabs/home-6-line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/tabs/stack-fill.svg b/assets/tabs/stack-fill.svg new file mode 100644 index 0000000..3fad3c9 --- /dev/null +++ b/assets/tabs/stack-fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/tabs/stack-line.svg b/assets/tabs/stack-line.svg new file mode 100644 index 0000000..fe8d5fd --- /dev/null +++ b/assets/tabs/stack-line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 5335740..f6d853b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,6 +15,7 @@ "@react-native-firebase/app": "^19.0.0", "@react-native-firebase/auth": "^19.0.0", "@react-native-firebase/firestore": "^19.0.0", + "@react-navigation/bottom-tabs": "^6.5.20", "@react-navigation/native": "^6.1.14", "@react-navigation/native-stack": "^6.9.22", "date-fns": "^3.3.1", @@ -33,7 +34,10 @@ "react-native-popup-menu": "^0.16.1", "react-native-safe-area-context": "^4.9.0", "react-native-screens": "^3.29.0", + "react-native-svg": "^15.1.0", + "react-native-vector-icons": "^10.0.3", "react-native-view-shot": "^3.8.0", + "remixicon": "^4.2.0", "zustand": "^4.5.2" }, "devDependencies": { @@ -6078,6 +6082,23 @@ "react-native": "*" } }, + "node_modules/@react-navigation/bottom-tabs": { + "version": "6.5.20", + "resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-6.5.20.tgz", + "integrity": "sha512-ow6Z06iS4VqBO8d7FP+HsGjJLWt2xTWIvuWjpoCvsM/uQXzCRDIjBv9HaKcXbF0yTW7IMir0oDAbU5PFzEDdgA==", + "dependencies": { + "@react-navigation/elements": "^1.3.30", + "color": "^4.2.3", + "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/core": { "version": "6.4.13", "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-6.4.13.tgz", @@ -6111,9 +6132,9 @@ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, "node_modules/@react-navigation/elements": { - "version": "1.3.26", - "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.3.26.tgz", - "integrity": "sha512-9rSY7MD6etU3M3j/OYUvtg4eBqABlkS39iJwwQheE89pSa9QyvXbJSsz/bUBEjFWwsOYxTVzj27bc7ulrDVWgw==", + "version": "1.3.30", + "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.3.30.tgz", + "integrity": "sha512-plhc8UvCZs0UkV+sI+3bisIyn78wz9O/BiWZXpounu72k/R/Sj5PuZYFJ1fi6psvriUveMCGh4LeZckAZu2qiQ==", "peerDependencies": { "@react-navigation/native": "^6.0.0", "react": "*", @@ -6713,6 +6734,11 @@ "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.19.0.tgz", "integrity": "sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==" }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, "node_modules/bplist-creator": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.1.0.tgz", @@ -7175,6 +7201,18 @@ "node": ">=6" } }, + "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/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -7197,6 +7235,22 @@ "simple-swizzle": "^0.2.2" } }, + "node_modules/color/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, "node_modules/colorette": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", @@ -7414,6 +7468,52 @@ "utrie": "^1.0.2" } }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-tree/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, "node_modules/dag-map": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/dag-map/-/dag-map-1.0.2.tgz", @@ -7620,6 +7720,57 @@ "node": ">=8" } }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, "node_modules/dotenv": { "version": "16.4.5", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", @@ -7670,6 +7821,17 @@ "once": "^1.4.0" } }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/env-editor": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/env-editor/-/env-editor-0.4.2.tgz", @@ -10558,6 +10720,11 @@ "resolved": "https://registry.npmjs.org/md5hex/-/md5hex-1.0.0.tgz", "integrity": "sha512-c2YOUbp33+6thdCUi34xIyOU/a7bvGKj/3DB1iaPMTuPHf/Q2d5s4sn1FaCOO43XkXggnb08y5W2PU8UNYNLKQ==" }, + "node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, "node_modules/memoize-one": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", @@ -11424,6 +11591,17 @@ "node": ">=4" } }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, "node_modules/nullthrows": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", @@ -12329,6 +12507,80 @@ "react-native": "*" } }, + "node_modules/react-native-svg": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/react-native-svg/-/react-native-svg-15.1.0.tgz", + "integrity": "sha512-p0Sx0EpQNk1nu6UcMEiB8K9P04n3J7s+pNYUwf1d/Yz+v4hk961VjuVqjyndgiEbHZyWiKWLZRVNuvLpwjPY2A==", + "dependencies": { + "css-select": "^5.1.0", + "css-tree": "^1.1.3" + }, + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, + "node_modules/react-native-vector-icons": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/react-native-vector-icons/-/react-native-vector-icons-10.0.3.tgz", + "integrity": "sha512-ZgVlV5AdQgnPHHvBEihGf2xwyziT1acpXV1U+WfCgCv3lcEeCRsmwAsBU+kUSNsU+8TcWVsX04kdI6qUaS8D7w==", + "dependencies": { + "prop-types": "^15.7.2", + "yargs": "^16.1.1" + }, + "bin": { + "fa-upgrade.sh": "bin/fa-upgrade.sh", + "fa5-upgrade": "bin/fa5-upgrade.sh", + "fa6-upgrade": "bin/fa6-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/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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-view-shot": { "version": "3.8.0", "resolved": "https://registry.npmjs.org/react-native-view-shot/-/react-native-view-shot-3.8.0.tgz", @@ -12551,6 +12803,11 @@ "jsesc": "bin/jsesc" } }, + "node_modules/remixicon": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/remixicon/-/remixicon-4.2.0.tgz", + "integrity": "sha512-MF5wApNveRh3n0iMVM+lr2nSWrj/rBbSD2eWapuD9ReYRGs5naAUR1BqVBCHGqm286FIS6zwwmUf96QjHQ9l4w==" + }, "node_modules/remove-trailing-slash": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/remove-trailing-slash/-/remove-trailing-slash-0.1.1.tgz", diff --git a/package.json b/package.json index 762e40a..e1680fb 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "@react-native-firebase/app": "^19.0.0", "@react-native-firebase/auth": "^19.0.0", "@react-native-firebase/firestore": "^19.0.0", + "@react-navigation/bottom-tabs": "^6.5.20", "@react-navigation/native": "^6.1.14", "@react-navigation/native-stack": "^6.9.22", "date-fns": "^3.3.1", @@ -25,6 +26,7 @@ "expo-config": "^1.0.0", "expo-dev-client": "~3.3.9", "expo-font": "^11.10.3", + "expo-sharing": "~11.10.0", "expo-status-bar": "~1.11.1", "react": "18.2.0", "react-hook-form": "^7.51.0", @@ -33,9 +35,11 @@ "react-native-popup-menu": "^0.16.1", "react-native-safe-area-context": "^4.9.0", "react-native-screens": "^3.29.0", + "react-native-svg": "^15.1.0", + "react-native-vector-icons": "^10.0.3", "react-native-view-shot": "^3.8.0", - "zustand": "^4.5.2", - "expo-sharing": "~11.10.0" + "remixicon": "^4.2.0", + "zustand": "^4.5.2" }, "devDependencies": { "@babel/core": "^7.20.0" diff --git a/src/firebase/config.js b/src/firebase/config.js new file mode 100644 index 0000000..bf49fc7 --- /dev/null +++ b/src/firebase/config.js @@ -0,0 +1,21 @@ +// Import the functions you need from the SDKs you need +import { initializeApp } from "firebase/app"; +import { getAnalytics } from "firebase/analytics"; +// TODO: Add SDKs for Firebase products that you want to use +// https://firebase.google.com/docs/web/setup#available-libraries + +// Your web app's Firebase configuration +// For Firebase JS SDK v7.20.0 and later, measurementId is optional +const firebaseConfig = { + apiKey: "AIzaSyBiWzVuJjqL3N6zkzB2UbBaFPDWeZ1aMc0", + authDomain: "avi-pro-mobile.firebaseapp.com", + projectId: "avi-pro-mobile", + storageBucket: "avi-pro-mobile.appspot.com", + messagingSenderId: "714379198452", + appId: "1:714379198452:web:6fa537e74641a61f6403a1", + measurementId: "G-B3QX0N2YZG" +}; + +// Initialize Firebase +const app = initializeApp(firebaseConfig); +const analytics = getAnalytics(app); \ No newline at end of file diff --git a/src/navigation/AppNavigator.js b/src/navigation/AppNavigator.js index 05791ca..d6cb0de 100644 --- a/src/navigation/AppNavigator.js +++ b/src/navigation/AppNavigator.js @@ -1,5 +1,6 @@ import React from 'react'; import { createNativeStackNavigator } from '@react-navigation/native-stack'; +import { createBottomTabNavigator } from '@react-navigation/bottom-tabs'; import { NavigationContainer } from '@react-navigation/native'; import NewScreen from '../screens/HomeScreen'; import ClientSearchScreen from '../screens/ClientSearchScreen'; @@ -9,67 +10,105 @@ import PayScreen from '../screens/PayScreen'; import AutomaticPayScreen from '../screens/AutomaticPayScreen'; import FacturaScreen from '../screens/FacturaScreen'; import ProfileScreen from '../screens/ProfileScreen'; +import HistoryScreen from '../screens/HistoryScreen'; +import OthersScreen from '../screens/OthersScreen'; +import Icon from 'react-native-vector-icons/Ionicons'; +import { theme } from '../../constants'; const Stack = createNativeStackNavigator(); +const Tab = createBottomTabNavigator(); + +const TabIcon = ({ name, color, size }) => { + return ; +}; + + function AppNavigator() { return ( - + + + ({ + tabBarIcon: ({ focused, color, size }) => ( + + + ), + })} + /> + ({ + tabBarIcon: ({ focused, color, size }) => ( + + ), + tabBarBadge: 3, //borrar + })} + /> + ({ + tabBarIcon: ({ focused, color, size }) => ( + + ), + })} + /> + + + ); +} + +function StackNavigator() { + return ( - ); } diff --git a/src/screens/HistoryScreen.js b/src/screens/HistoryScreen.js new file mode 100644 index 0000000..a69a6fd --- /dev/null +++ b/src/screens/HistoryScreen.js @@ -0,0 +1,24 @@ +import React from 'react'; +import { StyleSheet, Text, View } from 'react-native'; +import { StatusBar } from 'expo-status-bar'; +import { theme } from '../../constants'; + +const OthersScreen = () => { + return ( + + Sigan Viendo Historial... + + + ); +}; + +const styles = StyleSheet.create({ + container: { + flex: 1, + backgroundColor: theme.colors.primary, + alignItems: 'center', + justifyContent: 'center', + }, +}); + +export default OthersScreen; \ No newline at end of file diff --git a/src/screens/OthersScreen.js b/src/screens/OthersScreen.js new file mode 100644 index 0000000..1ef0892 --- /dev/null +++ b/src/screens/OthersScreen.js @@ -0,0 +1,24 @@ +import React from 'react'; +import { StyleSheet, Text, View } from 'react-native'; +import { StatusBar } from 'expo-status-bar'; +import { theme } from '../../constants'; + +const OthersScreen = () => { + return ( + + Sigan Viendo... + + + ); +}; + +const styles = StyleSheet.create({ + container: { + flex: 1, + backgroundColor: theme.colors.primary, + alignItems: 'center', + justifyContent: 'center', + }, +}); + +export default OthersScreen; \ No newline at end of file From 280b39e629f728315bcc6aa3b911b43db98c79ae Mon Sep 17 00:00:00 2001 From: Miguel Benjamin Zubieta Rios Date: Sat, 30 Mar 2024 12:26:27 -0400 Subject: [PATCH 2/6] add firebase config --- app.config.js | 15 +++++++------ google-services.json | 29 +++++++++++++++++++++++++ src/screens/OthersScreen.js | 42 +++++++++++++++++++++++++++++++++++-- 3 files changed, 76 insertions(+), 10 deletions(-) create mode 100644 google-services.json diff --git a/app.config.js b/app.config.js index c38d4f2..182a142 100644 --- a/app.config.js +++ b/app.config.js @@ -35,8 +35,14 @@ export default{ foregroundImage: "./assets/adaptive-icon.png", backgroundColor: "#ffffff" }, - package: "com.endurancesoft.avipromobile" + package: "com.endurancesoft.avipromobile", + googleServicesFile: "./google-services.json", }, + plugins: [ + "@react-native-firebase/app", + "@react-native-firebase/auth", + "@react-native-firebase/analytics", + ], web: { favicon: "./assets/favicon.png" }, @@ -45,13 +51,6 @@ export default{ projectId: "68722059-896d-4f90-9039-57984284a8d6", owner: "endurancesoft", }, - apiKey: process.env.API_KEY, - authDomain: process.env.AUTH_DOMAIN, - projectId: process.env.PROJECT_ID, - storageBucket: process.env.STORAGE_BUCKET, - messagingSenderId: process.env.MESSAGING_SENDER_ID, - appId: process.env.APP_ID, - measurementId: process.env.MEASUREMENT_ID, } }, }; diff --git a/google-services.json b/google-services.json new file mode 100644 index 0000000..0e3963d --- /dev/null +++ b/google-services.json @@ -0,0 +1,29 @@ +{ + "project_info": { + "project_number": "714379198452", + "project_id": "avi-pro-mobile", + "storage_bucket": "avi-pro-mobile.appspot.com" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:714379198452:android:fb8d46745102402e6403a1", + "android_client_info": { + "package_name": "com.endurancesoft.avipromobile" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyA86gikXHOAuuN1LpS6snEjqFqz5Q6cuUE" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/src/screens/OthersScreen.js b/src/screens/OthersScreen.js index 1ef0892..d460fbe 100644 --- a/src/screens/OthersScreen.js +++ b/src/screens/OthersScreen.js @@ -1,12 +1,50 @@ import React from 'react'; -import { StyleSheet, Text, View } from 'react-native'; +import { StyleSheet, Text, View, Touchable } from 'react-native'; import { StatusBar } from 'expo-status-bar'; import { theme } from '../../constants'; +import { firebase } from '@react-native-firebase/firestore'; +import { clientes } from '../store' + +const db = firebase.firestore(); const OthersScreen = () => { + const handlePress = async () => { + try { + // Verificar si hay datos de clientes en el store + if (clientes.length > 0) { + // Iterar sobre los datos de clientes y subirlos a Firestore + await Promise.all(clientes.map(async (client) => { + // Crear un documento en la colección 'clientes' con los datos del cliente + await db.collection('clientes').add({ + cliente_id: client.cliente_ID.trim(), // Eliminar espacios en blanco alrededor del ID + cobrador_id: client.cobrador_ID.trim(), + cuenta: client.Cuenta.trim(), + direccion: client.Direccion.trim(), + empresa_id: client.Empresa_ID.trim(), + nombre: client.Nombre.trim(), + sucursal_id: client.sucursal_ID.trim(), + telefono: client.Telefono.trim(), + }); + })); + + // Notificar al usuario que los datos se han subido correctamente + alert('Datos de clientes subidos correctamente a la colección "clientes".'); + } else { + // Notificar al usuario si no hay datos de clientes en el store + alert('No hay datos de clientes para subir.'); + } + + } catch (error) { + console.error('Error al subir datos de clientes:', error.message); + alert('Error al subir datos de clientes. Por favor, inténtalo de nuevo.'); + } + }; + return ( - Sigan Viendo... + + Sigan Viendo... + ); From ade12d1798869c21b02e600af74255b3e4646656 Mon Sep 17 00:00:00 2001 From: Miguel Benjamin Zubieta Rios Date: Sat, 30 Mar 2024 12:27:24 -0400 Subject: [PATCH 3/6] add firebase config-s --- app.config.js | 1 - 1 file changed, 1 deletion(-) diff --git a/app.config.js b/app.config.js index 182a142..81a287a 100644 --- a/app.config.js +++ b/app.config.js @@ -41,7 +41,6 @@ export default{ plugins: [ "@react-native-firebase/app", "@react-native-firebase/auth", - "@react-native-firebase/analytics", ], web: { favicon: "./assets/favicon.png" From ec4c5935c4f98424667522c46d31b93dc959c0fc Mon Sep 17 00:00:00 2001 From: Miguel Benjamin Zubieta Rios Date: Sat, 30 Mar 2024 18:11:26 -0400 Subject: [PATCH 4/6] solucionando problemas con firebase --- .env | 14 +- app.config.js | 2 - config/firebase.js | 25 +- package-lock.json | 734 ++++++++++++++++++++++++++++++++++-- package.json | 4 +- src/firebase/config.js | 15 +- src/screens/OthersScreen.js | 44 +-- src/store.js | 4 +- 8 files changed, 742 insertions(+), 100 deletions(-) diff --git a/.env b/.env index 7932940..9d298f7 100644 --- a/.env +++ b/.env @@ -1,7 +1,7 @@ -API_KEY=AIzaSyBiWzVuJjqL3N6zkzB2UbBaFPDWeZ1aMc0 -AUTH_DOMAIN=avi-pro-mobile.firebaseapp.com -PROJECT_ID=avi-pro-mobile -STORAGE_BUCKET=avi-pro-mobile.appspot.com -MESSAGING_SENDER_ID=714379198452 -APP_ID=1:714379198452:web:53e907ba46c524e06403a1 -MEASUREMENT_ID=G-XVHVGNEVGE \ No newline at end of file +API_KEY="AIzaSyCscvgW17XsqgoTSwvBO9ZPetnhPZHuH58" +AUTH_DOMAIN="avi-pro-mobile.firebaseapp.com" +PROJECT_ID="avi-pro-mobile" +STORAGE_BUCKET="avi-pro-mobile.appspot.com" +MESSAGING_SENDER_ID="714379198452", +APP_ID="1:714379198452:web:6fa537e74641a61f6403a1", +MEASUREMENT_ID="G-B3QX0N2YZG" \ No newline at end of file diff --git a/app.config.js b/app.config.js index 81a287a..d7909f5 100644 --- a/app.config.js +++ b/app.config.js @@ -1,5 +1,3 @@ -import "dotenv/config"; - export default{ expo: { name: "avi-pro-mobile", diff --git a/config/firebase.js b/config/firebase.js index 7f860a4..adbcc66 100644 --- a/config/firebase.js +++ b/config/firebase.js @@ -1,21 +1,20 @@ import { initializeApp } from "firebase/app"; import { getAuth } from "firebase/auth"; import { getFirestore } from "firebase/firestore"; -import Constants from "expo-constants"; import { getAnalytics } from "firebase/analytics"; -import 'dotenv/config'; const firebaseConfig = { - apiKey: process.env.API_KEY, - authDomain: process.env.AUTH_DOMAIN, - projectId: process.env.PROJECT_ID, - storageBucket: process.env.STORAGE_BUCKET, - messagingSenderId: process.env.MESSAGING_SENDER_ID, - appId: process.env.APP_ID, - measurementId: process.env.MEASUREMENT_ID, - }; + apiKey: "AIzaSyCscvgW17XsqgoTSwvBO9ZPetnhPZHuH58", + authDomain: "avi-pro-mobile.firebaseapp.com", + projectId: "avi-pro-mobile", + storageBucket: "avi-pro-mobile.appspot.com", + messagingSenderId: "714379198452", + appId: "1:714379198452:web:6fa537e74641a61f6403a1", + measurementId: "G-B3QX0N2YZG" +}; const app = initializeApp(firebaseConfig); -export const auth = getAuth(); -export const database = getFirestore(); -export const analytics = getAnalytics(app); \ No newline at end of file +const db = getFirestore(app); +const auth = getAuth(app); + +export { db, app, auth }; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index f6d853b..65f9c9a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,14 +19,14 @@ "@react-navigation/native": "^6.1.14", "@react-navigation/native-stack": "^6.9.22", "date-fns": "^3.3.1", - "dotenv": "^16.4.5", "expo": "~50.0.7", "expo-app-loading": "^2.1.1", "expo-config": "^1.0.0", - "expo-dev-client": "~3.3.9", + "expo-dev-client": "~3.3.11", "expo-font": "^11.10.3", "expo-sharing": "~11.10.0", "expo-status-bar": "~1.11.1", + "firebase": "^10.10.0", "react": "18.2.0", "react-hook-form": "^7.51.0", "react-native": "0.73.4", @@ -3452,6 +3452,499 @@ "node": ">=8" } }, + "node_modules/@fastify/busboy": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz", + "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==", + "engines": { + "node": ">=14" + } + }, + "node_modules/@firebase/analytics": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.10.2.tgz", + "integrity": "sha512-6Gv/Fndih+dOEEfsBJEeKlwxw9EvCO9D/y+yJMasblvCmj78wUVtn+T96zguSrbhfZ2yBhLS1vukYiPg6hI49w==", + "dependencies": { + "@firebase/component": "0.6.6", + "@firebase/installations": "0.6.6", + "@firebase/logger": "0.4.1", + "@firebase/util": "1.9.5", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/analytics-compat": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@firebase/analytics-compat/-/analytics-compat-0.2.8.tgz", + "integrity": "sha512-scvzDPIsP9HcLWM77YQD7F3yLQksGvPUzyfqUrPo9XxIx26txJvGMJAS8O8BHa6jIvsjUenaTZ5oXEtKqNZQ9Q==", + "dependencies": { + "@firebase/analytics": "0.10.2", + "@firebase/analytics-types": "0.8.1", + "@firebase/component": "0.6.6", + "@firebase/util": "1.9.5", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/analytics-types": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@firebase/analytics-types/-/analytics-types-0.8.1.tgz", + "integrity": "sha512-niv/67/EOkTlGUxyiOYfIkysSMGYxkIUHJzT9pNkeIGt6zOz759oCUXOAwwjJzckh11dMBFjIYBmtWrdSgbmJw==" + }, + "node_modules/@firebase/app": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.10.0.tgz", + "integrity": "sha512-bemcsqQD4teEnCM/+FiK8LFjlfoIFewMY3LOIgxa59ISlkk4zlw4ezz1iLY45yQ6ip6WDwky7cx9UruFBAn6iw==", + "dependencies": { + "@firebase/component": "0.6.6", + "@firebase/logger": "0.4.1", + "@firebase/util": "1.9.5", + "idb": "7.1.1", + "tslib": "^2.1.0" + } + }, + "node_modules/@firebase/app-check": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/@firebase/app-check/-/app-check-0.8.3.tgz", + "integrity": "sha512-nvlsj5oZBtYDjFTygQJ6xpyiYj8Jao2bFFyNJkUUPdg/QB8uhqDeG74P+gUH6iY9qzd1g5ZokmmGsoIhv9tdSQ==", + "dependencies": { + "@firebase/component": "0.6.6", + "@firebase/logger": "0.4.1", + "@firebase/util": "1.9.5", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/app-check-compat": { + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/@firebase/app-check-compat/-/app-check-compat-0.3.10.tgz", + "integrity": "sha512-v+jiLG3rQ1fhpIuNIm3WqrL4dkPUIkgOWoic7QABVsZKSAv2YhOFvAenp7IhSP/pz/aiPniJ8G7el/MWieECTg==", + "dependencies": { + "@firebase/app-check": "0.8.3", + "@firebase/app-check-types": "0.5.1", + "@firebase/component": "0.6.6", + "@firebase/logger": "0.4.1", + "@firebase/util": "1.9.5", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/app-check-interop-types": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@firebase/app-check-interop-types/-/app-check-interop-types-0.3.1.tgz", + "integrity": "sha512-NILZbe6RH3X1pZmJnfOfY2gLIrlKmrkUMMrrK6VSXHcSE0eQv28xFEcw16D198i9JYZpy5Kwq394My62qCMaIw==" + }, + "node_modules/@firebase/app-check-types": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@firebase/app-check-types/-/app-check-types-0.5.1.tgz", + "integrity": "sha512-NqeIcuGzZjl+khpXV0qsyOoaTqLeiG/K0kIDrebol+gb7xpmfOvXXqPEls+1WFBgHcPGdu+XRLhBA7xLzrVdpA==" + }, + "node_modules/@firebase/app-compat": { + "version": "0.2.30", + "resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.2.30.tgz", + "integrity": "sha512-S3FI3yx36xq5NYWXv/rqZiEnkQ89QwfGdl26iWZ9skuOGM96DYQUxs/zs7NkfAQcfpXC8f5DuUrE0Rz/0XdTEg==", + "dependencies": { + "@firebase/app": "0.10.0", + "@firebase/component": "0.6.6", + "@firebase/logger": "0.4.1", + "@firebase/util": "1.9.5", + "tslib": "^2.1.0" + } + }, + "node_modules/@firebase/app-types": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.1.tgz", + "integrity": "sha512-nFGqTYsnDFn1oXf1tCwPAc+hQPxyvBT/QB7qDjwK+IDYThOn63nGhzdUTXxVD9Ca8gUY/e5PQMngeo0ZW/E3uQ==" + }, + "node_modules/@firebase/auth": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-1.7.0.tgz", + "integrity": "sha512-xvyCR3Ivan74AwT/rQOqrYkyu4Ccz6GOFaohi1Pw3gLOpG2WIdC/phc4zdQkLJjmbGFcYNisHyqII2P/H9ZJow==", + "dependencies": { + "@firebase/component": "0.6.6", + "@firebase/logger": "0.4.1", + "@firebase/util": "1.9.5", + "tslib": "^2.1.0", + "undici": "5.28.3" + }, + "peerDependencies": { + "@firebase/app": "0.x", + "@react-native-async-storage/async-storage": "^1.18.1" + }, + "peerDependenciesMeta": { + "@react-native-async-storage/async-storage": { + "optional": true + } + } + }, + "node_modules/@firebase/auth-compat": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/@firebase/auth-compat/-/auth-compat-0.5.5.tgz", + "integrity": "sha512-iAq/wCCEX4TPhZeCOmLxscHh6oZtvJ4g/FcRLynFntW3WOtrWF9/91jq+FsDSSJo9Av8MpnayCbbx+jpGSv4DQ==", + "dependencies": { + "@firebase/auth": "1.7.0", + "@firebase/auth-types": "0.12.1", + "@firebase/component": "0.6.6", + "@firebase/util": "1.9.5", + "tslib": "^2.1.0", + "undici": "5.28.3" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/auth-interop-types": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.2.2.tgz", + "integrity": "sha512-k3NA28Jfoo0+o391bFjoV9X5QLnUL1WbLhZZRbTQhZdmdGYJfX8ixtNNlHsYQ94bwG0QRbsmvkzDnzuhHrV11w==" + }, + "node_modules/@firebase/auth-types": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@firebase/auth-types/-/auth-types-0.12.1.tgz", + "integrity": "sha512-B3dhiWRWf/njWosx4zdhSEoD4WHJmr4zbnBw6t20mRG/IZ4u0rWUBlMP1vFjhMstKIow1XmoGhTwD65X5ZXLjw==", + "peerDependencies": { + "@firebase/app-types": "0.x", + "@firebase/util": "1.x" + } + }, + "node_modules/@firebase/component": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.6.6.tgz", + "integrity": "sha512-pp7sWqHmAAlA3os6ERgoM3k5Cxff510M9RLXZ9Mc8KFKMBc2ct3RkZTWUF7ixJNvMiK/iNgRLPDrLR2gtRJ9iQ==", + "dependencies": { + "@firebase/util": "1.9.5", + "tslib": "^2.1.0" + } + }, + "node_modules/@firebase/database": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@firebase/database/-/database-1.0.4.tgz", + "integrity": "sha512-k84cXh+dtpzvY6yOhfyr1B+I1vjvSMtmlqotE0lTNVylc8m5nmOohjzpTLEQDrBWvwACX/VP5fEyajAdmnOKqA==", + "dependencies": { + "@firebase/app-check-interop-types": "0.3.1", + "@firebase/auth-interop-types": "0.2.2", + "@firebase/component": "0.6.6", + "@firebase/logger": "0.4.1", + "@firebase/util": "1.9.5", + "faye-websocket": "0.11.4", + "tslib": "^2.1.0" + } + }, + "node_modules/@firebase/database-compat": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-1.0.4.tgz", + "integrity": "sha512-GEEDAvsSMAkqy0BIFSVtFzoOIIcKHFfDM4aXHtWL/JCaNn4OOjH7td73jDfN3ALvpIN4hQki0FcxQ89XjqaTjQ==", + "dependencies": { + "@firebase/component": "0.6.6", + "@firebase/database": "1.0.4", + "@firebase/database-types": "1.0.2", + "@firebase/logger": "0.4.1", + "@firebase/util": "1.9.5", + "tslib": "^2.1.0" + } + }, + "node_modules/@firebase/database-types": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-1.0.2.tgz", + "integrity": "sha512-JRigr5JNLEHqOkI99tAGHDZF47469/cJz1tRAgGs8Feh+3ZmQy/vVChSqwMp2DuVUGp9PlmGsNSlpINJ/hDuIA==", + "dependencies": { + "@firebase/app-types": "0.9.1", + "@firebase/util": "1.9.5" + } + }, + "node_modules/@firebase/firestore": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-4.5.1.tgz", + "integrity": "sha512-VQsMKJGuqlx8I+n+NhNrdFRBJU/B1O8mpGIAYABBmVxPyJax/ynuBMJkREmqzRWpbBj5IAtHe+vm4EvJlb6RLg==", + "dependencies": { + "@firebase/component": "0.6.6", + "@firebase/logger": "0.4.1", + "@firebase/util": "1.9.5", + "@firebase/webchannel-wrapper": "0.10.6", + "@grpc/grpc-js": "~1.9.0", + "@grpc/proto-loader": "^0.7.8", + "tslib": "^2.1.0", + "undici": "5.28.3" + }, + "engines": { + "node": ">=10.10.0" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/firestore-compat": { + "version": "0.3.28", + "resolved": "https://registry.npmjs.org/@firebase/firestore-compat/-/firestore-compat-0.3.28.tgz", + "integrity": "sha512-qaE9QYrWV0K+nh/HWf2EL/V2fPsuTZJ8K4S4e+xUOIxVulmXXwlKg4vgJgRF6r5AlABcSphKNbz/77fChgNwiQ==", + "dependencies": { + "@firebase/component": "0.6.6", + "@firebase/firestore": "4.5.1", + "@firebase/firestore-types": "3.0.1", + "@firebase/util": "1.9.5", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/firestore-types": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@firebase/firestore-types/-/firestore-types-3.0.1.tgz", + "integrity": "sha512-mVhPcHr5FICjF67m6JHgj+XRvAz/gZ62xifeGfcm00RFl6tNKfCzCfKeyB2BDIEc9dUnEstkmIXlmLIelOWoaA==", + "peerDependencies": { + "@firebase/app-types": "0.x", + "@firebase/util": "1.x" + } + }, + "node_modules/@firebase/functions": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.11.3.tgz", + "integrity": "sha512-fpjc3VwxsgFBcR0wmof6kIng7NNvhjqetwWUTMs/ZeOI0QiZoUvSDaudFZvPfvXujSK/sr3tk9G1YzjbwCQkgQ==", + "dependencies": { + "@firebase/app-check-interop-types": "0.3.1", + "@firebase/auth-interop-types": "0.2.2", + "@firebase/component": "0.6.6", + "@firebase/messaging-interop-types": "0.2.1", + "@firebase/util": "1.9.5", + "tslib": "^2.1.0", + "undici": "5.28.3" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/functions-compat": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@firebase/functions-compat/-/functions-compat-0.3.9.tgz", + "integrity": "sha512-yVcNBUljBFD6VPeTJcnWBEFZlVICKWuJzJmPuvgKEH++8z/CdgUKw0YslceaPQIWnstdviZDEF1cjJnR/bLvzQ==", + "dependencies": { + "@firebase/component": "0.6.6", + "@firebase/functions": "0.11.3", + "@firebase/functions-types": "0.6.1", + "@firebase/util": "1.9.5", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/functions-types": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@firebase/functions-types/-/functions-types-0.6.1.tgz", + "integrity": "sha512-DirqgTXSBzyKsQwcKnx/YdGMaRdJhywnThrINP+Iog8QfQnrL7aprTXHDFHlpZEMwykS54YRk53xzz7j396QXQ==" + }, + "node_modules/@firebase/installations": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.6.6.tgz", + "integrity": "sha512-dNGRGoHmstgEJqh9Kzk22fR2ZrVBH1JWliaL6binQ6pIzlWscreHNczzJDgOKoVT0PjWTrAmh/azztiX/e2uTw==", + "dependencies": { + "@firebase/component": "0.6.6", + "@firebase/util": "1.9.5", + "idb": "7.1.1", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/installations-compat": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/@firebase/installations-compat/-/installations-compat-0.2.6.tgz", + "integrity": "sha512-uxBAt2WsuEMT5dalA/1O+Uyi9DS25zKHgIPdrQ7KO1ZUdBURiGScIyjdhIM/7NMSvHGYugK4PUVdK9NFIffeiw==", + "dependencies": { + "@firebase/component": "0.6.6", + "@firebase/installations": "0.6.6", + "@firebase/installations-types": "0.5.1", + "@firebase/util": "1.9.5", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/installations-types": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@firebase/installations-types/-/installations-types-0.5.1.tgz", + "integrity": "sha512-OyREnRTfe2wIWTrzCz65ajyo4lFm6VgbeVqMMP+3GJLfCtNvY9VXkmqs3WFEsyYezzdcRqOt39FynZoLlkO+cQ==", + "peerDependencies": { + "@firebase/app-types": "0.x" + } + }, + "node_modules/@firebase/logger": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.4.1.tgz", + "integrity": "sha512-tTIixB5UJbG9ZHSGZSZdX7THr3KWOLrejZ9B7jYsm6fpwgRNngKznQKA2wgYVyvBc1ta7dGFh9NtJ8n7qfiYIw==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@firebase/messaging": { + "version": "0.12.7", + "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.12.7.tgz", + "integrity": "sha512-FNZiGMZWjU2D13U/XpoGDSfqCx2kqJ171P3VjquBJfd8SkYNyJMkKM82QvTjQaDd4nuWzgvTDR81DGJFUO6AOg==", + "dependencies": { + "@firebase/component": "0.6.6", + "@firebase/installations": "0.6.6", + "@firebase/messaging-interop-types": "0.2.1", + "@firebase/util": "1.9.5", + "idb": "7.1.1", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/messaging-compat": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/@firebase/messaging-compat/-/messaging-compat-0.2.7.tgz", + "integrity": "sha512-29eeNzkjJPNc1RAVmxocaA8PzkbtuNvabX8jKw3N8VdAmyugx7+dYB+jCnereiWqIwivIZ2xSbCUQ24vC7+HaQ==", + "dependencies": { + "@firebase/component": "0.6.6", + "@firebase/messaging": "0.12.7", + "@firebase/util": "1.9.5", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/messaging-interop-types": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@firebase/messaging-interop-types/-/messaging-interop-types-0.2.1.tgz", + "integrity": "sha512-jfGJ7Jc32BDHXvXHyXi34mVLzZY8X0t929DTMwz7Tj2Hc40Zuzx8VRCIPLRrRUyvBrJCd5EpIcQgCygXhtaN1A==" + }, + "node_modules/@firebase/performance": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.6.6.tgz", + "integrity": "sha512-UOUHhvj2GJcjyJewdX1ShnON0/eqTswHvYzzQPC4nrIuMFvHwMGk8NpCaqh7JZmpaxh9AMr6kM+M/p37DrKWXA==", + "dependencies": { + "@firebase/component": "0.6.6", + "@firebase/installations": "0.6.6", + "@firebase/logger": "0.4.1", + "@firebase/util": "1.9.5", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/performance-compat": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/@firebase/performance-compat/-/performance-compat-0.2.6.tgz", + "integrity": "sha512-JSGdNNHBAMRTocGpN+m+7tk+9rulBcwuG+Ejw/ooDj45FGcON1Eymxh/qbe5M6Dlj5P1ClbkHLj4yf7MiCHOag==", + "dependencies": { + "@firebase/component": "0.6.6", + "@firebase/logger": "0.4.1", + "@firebase/performance": "0.6.6", + "@firebase/performance-types": "0.2.1", + "@firebase/util": "1.9.5", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/performance-types": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@firebase/performance-types/-/performance-types-0.2.1.tgz", + "integrity": "sha512-kQ8pEr4d6ArhPoYrngcFlEJMNWMdEZTpvMAttWH0C2vegBgj47cm6xXFy9+0j27OBhOIiPn48Z+2WE2XNu33CQ==" + }, + "node_modules/@firebase/remote-config": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.4.6.tgz", + "integrity": "sha512-qtanFS+AX5k/7e/+Azf27Hq4reX28QsUvRcYWyS5cOaRMS9jtll4MK4winWmzX8MdJY637nFzIx43PlMKVnaKw==", + "dependencies": { + "@firebase/component": "0.6.6", + "@firebase/installations": "0.6.6", + "@firebase/logger": "0.4.1", + "@firebase/util": "1.9.5", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/remote-config-compat": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/@firebase/remote-config-compat/-/remote-config-compat-0.2.6.tgz", + "integrity": "sha512-cFdpmN/rzDhm4pbk0WpOzK9JQ9I1ZhXzhtYbKRBwUag3pG1odEfIORygMDCGQniPpcae/QGXho4srJHfoijKuw==", + "dependencies": { + "@firebase/component": "0.6.6", + "@firebase/logger": "0.4.1", + "@firebase/remote-config": "0.4.6", + "@firebase/remote-config-types": "0.3.1", + "@firebase/util": "1.9.5", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/remote-config-types": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@firebase/remote-config-types/-/remote-config-types-0.3.1.tgz", + "integrity": "sha512-PgmfUugcJAinPLsJlYcBbNZe7KE2omdQw1WCT/z46nKkNVGkuHdVFSq54s3wiFa9BoHmLZ01u4hGXIhm6MdLOw==" + }, + "node_modules/@firebase/storage": { + "version": "0.12.3", + "resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.12.3.tgz", + "integrity": "sha512-JP/rN8fb4CgCo7k/I8OLVgRx5cgExsWOIUQ2O2VQwR6YKItuL375c9v7PDaOfEcFZea/fXtfJJ3Z2NaI9445CQ==", + "dependencies": { + "@firebase/component": "0.6.6", + "@firebase/util": "1.9.5", + "tslib": "^2.1.0", + "undici": "5.28.3" + }, + "peerDependencies": { + "@firebase/app": "0.x" + } + }, + "node_modules/@firebase/storage-compat": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@firebase/storage-compat/-/storage-compat-0.3.6.tgz", + "integrity": "sha512-AKv0vwktqdW4SDDDcHSN2ahi1Hpjs8rTM6sE7+yrWpm8cRght/PkqylsFnIe+a/toCNd8WeWaXq/oaXHPvRw1w==", + "dependencies": { + "@firebase/component": "0.6.6", + "@firebase/storage": "0.12.3", + "@firebase/storage-types": "0.8.1", + "@firebase/util": "1.9.5", + "tslib": "^2.1.0" + }, + "peerDependencies": { + "@firebase/app-compat": "0.x" + } + }, + "node_modules/@firebase/storage-types": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@firebase/storage-types/-/storage-types-0.8.1.tgz", + "integrity": "sha512-yj0vypPT9UbbfYYwzpXPYchnjWqCADcTbGNawAIebww8rnQYPGbESYTKQdFRPXiLspYPB7xCHTXThmMJuvDcsQ==", + "peerDependencies": { + "@firebase/app-types": "0.x", + "@firebase/util": "1.x" + } + }, + "node_modules/@firebase/util": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.9.5.tgz", + "integrity": "sha512-PP4pAFISDxsf70l3pEy34Mf3GkkUcVQ3MdKp6aSVb7tcpfUQxnsdV7twDd8EkfB6zZylH6wpUAoangQDmCUMqw==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@firebase/webchannel-wrapper": { + "version": "0.10.6", + "resolved": "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-0.10.6.tgz", + "integrity": "sha512-EnfRJvrnzkHwN3BPMCayCFT5lCqInzg3RdlRsDjDvB1EJli6Usj26T6lJ67BU2UcYXBS5xcp1Wj4+zRzj2NaZg==" + }, "node_modules/@gar/promisify": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", @@ -3465,6 +3958,35 @@ "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, + "node_modules/@grpc/grpc-js": { + "version": "1.9.14", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.9.14.tgz", + "integrity": "sha512-nOpuzZ2G3IuMFN+UPPpKrC6NsLmWsTqSsm66IRfnBt1D4pwTqE27lmbpcPM+l2Ua4gE7PfjRHI6uedAy7hoXUw==", + "dependencies": { + "@grpc/proto-loader": "^0.7.8", + "@types/node": ">=12.12.47" + }, + "engines": { + "node": "^8.13.0 || >=10.10.0" + } + }, + "node_modules/@grpc/proto-loader": { + "version": "0.7.12", + "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.12.tgz", + "integrity": "sha512-DCVwMxqYzpUCiDMl7hQ384FqP4T3DbNpXU8pt681l3UWCip1WUiD5JrkImUwCB9a7f2cq4CUTmi5r/xIMRPY1Q==", + "dependencies": { + "lodash.camelcase": "^4.3.0", + "long": "^5.0.0", + "protobufjs": "^7.2.4", + "yargs": "^17.7.2" + }, + "bin": { + "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/@hapi/hoek": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", @@ -3779,6 +4301,60 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + }, "node_modules/@react-native-community/cli": { "version": "12.3.2", "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-12.3.2.tgz", @@ -7771,17 +8347,6 @@ "url": "https://github.com/fb55/domutils?sponsor=1" } }, - "node_modules/dotenv": { - "version": "16.4.5", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", - "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://dotenvx.com" - } - }, "node_modules/dotenv-expand": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-10.0.0.tgz", @@ -8032,12 +8597,12 @@ } }, "node_modules/expo-dev-client": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/expo-dev-client/-/expo-dev-client-3.3.9.tgz", - "integrity": "sha512-qODvuyXe8FgVJhBbwDEk/snZa5wSTNHx+poNXwA/PS4gGvOxCuG+qpeQF6K4Yf6r2+sV0OtigxPJiAyhu9I4ug==", + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/expo-dev-client/-/expo-dev-client-3.3.11.tgz", + "integrity": "sha512-9nhhbfbskfmjp/tlRS5KvDpCoW0BREJBxpu2GyjKu7nDB33W8fJLL0wXgNhP+QEb93r37o3uezKmUm2kibOvTw==", "dependencies": { - "expo-dev-launcher": "3.6.7", - "expo-dev-menu": "4.5.6", + "expo-dev-launcher": "3.6.9", + "expo-dev-menu": "4.5.8", "expo-dev-menu-interface": "1.7.2", "expo-manifests": "~0.13.0", "expo-updates-interface": "~0.15.1" @@ -8047,12 +8612,12 @@ } }, "node_modules/expo-dev-launcher": { - "version": "3.6.7", - "resolved": "https://registry.npmjs.org/expo-dev-launcher/-/expo-dev-launcher-3.6.7.tgz", - "integrity": "sha512-xn0cq2LMXv5t3n4jiAPFd9rwP22GM3zsQqAOJuWXH4b7fRzO8bayxOAt1n4RrDgkVsRzgRnxHm7kkO+Eta3Kzg==", + "version": "3.6.9", + "resolved": "https://registry.npmjs.org/expo-dev-launcher/-/expo-dev-launcher-3.6.9.tgz", + "integrity": "sha512-MBDMAqjCMVYt1Zv47u2dJTp4d8gCZMfM4GWAFhfQy3G6XzkUlFtewaQefAqy93FcYOv6BYdC9yZOLOb06tqTfA==", "dependencies": { "ajv": "8.11.0", - "expo-dev-menu": "4.5.6", + "expo-dev-menu": "4.5.8", "expo-manifests": "~0.13.0", "resolve-from": "^5.0.0", "semver": "^7.5.3" @@ -8092,9 +8657,9 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/expo-dev-menu": { - "version": "4.5.6", - "resolved": "https://registry.npmjs.org/expo-dev-menu/-/expo-dev-menu-4.5.6.tgz", - "integrity": "sha512-V8gOFrv8JBTy50n9mTWVPKVHMcjvrpI/w5ooZGFzjoerBlPXSauIfRmHsqmgmOr3r5oWptnC2PS3LxuSo4QZ5g==", + "version": "4.5.8", + "resolved": "https://registry.npmjs.org/expo-dev-menu/-/expo-dev-menu-4.5.8.tgz", + "integrity": "sha512-GXfI0CmYlqjOqyFjtplXO9PSoJQoy89+50lbUSNZykDsGyvzCPzl4txdQcdHHSglKYr7lWV7aeMVeehuSct60w==", "dependencies": { "expo-dev-menu-interface": "1.7.2", "semver": "^7.5.3" @@ -8757,6 +9322,17 @@ "reusify": "^1.0.4" } }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/fb-watchman": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", @@ -8882,6 +9458,39 @@ "micromatch": "^4.0.2" } }, + "node_modules/firebase": { + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/firebase/-/firebase-10.10.0.tgz", + "integrity": "sha512-iJxnCKsBTYa4BSv8cscNbwciX42BvwoePTHg7iwWevb+GyVcZFmKi9eSkg/L7Jpu9mvAFv1jdDGbIaG3xRrE+w==", + "dependencies": { + "@firebase/analytics": "0.10.2", + "@firebase/analytics-compat": "0.2.8", + "@firebase/app": "0.10.0", + "@firebase/app-check": "0.8.3", + "@firebase/app-check-compat": "0.3.10", + "@firebase/app-compat": "0.2.30", + "@firebase/app-types": "0.9.1", + "@firebase/auth": "1.7.0", + "@firebase/auth-compat": "0.5.5", + "@firebase/database": "1.0.4", + "@firebase/database-compat": "1.0.4", + "@firebase/firestore": "4.5.1", + "@firebase/firestore-compat": "0.3.28", + "@firebase/functions": "0.11.3", + "@firebase/functions-compat": "0.3.9", + "@firebase/installations": "0.6.6", + "@firebase/installations-compat": "0.2.6", + "@firebase/messaging": "0.12.7", + "@firebase/messaging-compat": "0.2.7", + "@firebase/performance": "0.6.6", + "@firebase/performance-compat": "0.2.6", + "@firebase/remote-config": "0.4.6", + "@firebase/remote-config-compat": "0.2.6", + "@firebase/storage": "0.12.3", + "@firebase/storage-compat": "0.3.6", + "@firebase/util": "1.9.5" + } + }, "node_modules/flow-enums-runtime": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/flow-enums-runtime/-/flow-enums-runtime-0.0.6.tgz", @@ -9230,6 +9839,11 @@ "node": ">= 0.8" } }, + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==" + }, "node_modules/https-proxy-agent": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", @@ -9250,6 +9864,11 @@ "node": ">=10.17.0" } }, + "node_modules/idb": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", + "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==" + }, "node_modules/ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", @@ -10447,6 +11066,11 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" + }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", @@ -10639,6 +11263,11 @@ "node": ">=6" } }, + "node_modules/long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -12243,6 +12872,29 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, + "node_modules/protobufjs": { + "version": "7.2.6", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.6.tgz", + "integrity": "sha512-dgJaEDDL6x8ASUZ1YqWciTRrdOuYNzoOf27oHNfdyvKqHr5i0FV7FSLU+aIeFjyFgVxrpTOtQUi0BLLBymZaBw==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -13878,6 +14530,17 @@ "node": "*" } }, + "node_modules/undici": { + "version": "5.28.3", + "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.3.tgz", + "integrity": "sha512-3ItfzbrhDlINjaP0duwnNsKpDQk3acHI3gVJ1z4fmwMK31k5G9OVIAMLSIaP6w4FaGkaAkN6zaQO9LUvZ1t7VA==", + "dependencies": { + "@fastify/busboy": "^2.0.0" + }, + "engines": { + "node": ">=14.0" + } + }, "node_modules/undici-types": { "version": "5.26.5", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", @@ -14101,6 +14764,27 @@ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/whatwg-fetch": { "version": "3.6.20", "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", diff --git a/package.json b/package.json index e1680fb..50fb0dd 100644 --- a/package.json +++ b/package.json @@ -20,14 +20,14 @@ "@react-navigation/native": "^6.1.14", "@react-navigation/native-stack": "^6.9.22", "date-fns": "^3.3.1", - "dotenv": "^16.4.5", "expo": "~50.0.7", "expo-app-loading": "^2.1.1", "expo-config": "^1.0.0", - "expo-dev-client": "~3.3.9", + "expo-dev-client": "~3.3.11", "expo-font": "^11.10.3", "expo-sharing": "~11.10.0", "expo-status-bar": "~1.11.1", + "firebase": "^10.10.0", "react": "18.2.0", "react-hook-form": "^7.51.0", "react-native": "0.73.4", diff --git a/src/firebase/config.js b/src/firebase/config.js index bf49fc7..adbcc66 100644 --- a/src/firebase/config.js +++ b/src/firebase/config.js @@ -1,13 +1,10 @@ -// Import the functions you need from the SDKs you need import { initializeApp } from "firebase/app"; +import { getAuth } from "firebase/auth"; +import { getFirestore } from "firebase/firestore"; import { getAnalytics } from "firebase/analytics"; -// TODO: Add SDKs for Firebase products that you want to use -// https://firebase.google.com/docs/web/setup#available-libraries -// Your web app's Firebase configuration -// For Firebase JS SDK v7.20.0 and later, measurementId is optional const firebaseConfig = { - apiKey: "AIzaSyBiWzVuJjqL3N6zkzB2UbBaFPDWeZ1aMc0", + apiKey: "AIzaSyCscvgW17XsqgoTSwvBO9ZPetnhPZHuH58", authDomain: "avi-pro-mobile.firebaseapp.com", projectId: "avi-pro-mobile", storageBucket: "avi-pro-mobile.appspot.com", @@ -16,6 +13,8 @@ const firebaseConfig = { measurementId: "G-B3QX0N2YZG" }; -// Initialize Firebase const app = initializeApp(firebaseConfig); -const analytics = getAnalytics(app); \ No newline at end of file +const db = getFirestore(app); +const auth = getAuth(app); + +export { db, app, auth }; \ No newline at end of file diff --git a/src/screens/OthersScreen.js b/src/screens/OthersScreen.js index d460fbe..3a2ca63 100644 --- a/src/screens/OthersScreen.js +++ b/src/screens/OthersScreen.js @@ -1,51 +1,13 @@ import React from 'react'; -import { StyleSheet, Text, View, Touchable } from 'react-native'; +import { StyleSheet, Text, View, TouchableOpacity } from 'react-native'; import { StatusBar } from 'expo-status-bar'; import { theme } from '../../constants'; -import { firebase } from '@react-native-firebase/firestore'; -import { clientes } from '../store' - -const db = firebase.firestore(); const OthersScreen = () => { - const handlePress = async () => { - try { - // Verificar si hay datos de clientes en el store - if (clientes.length > 0) { - // Iterar sobre los datos de clientes y subirlos a Firestore - await Promise.all(clientes.map(async (client) => { - // Crear un documento en la colección 'clientes' con los datos del cliente - await db.collection('clientes').add({ - cliente_id: client.cliente_ID.trim(), // Eliminar espacios en blanco alrededor del ID - cobrador_id: client.cobrador_ID.trim(), - cuenta: client.Cuenta.trim(), - direccion: client.Direccion.trim(), - empresa_id: client.Empresa_ID.trim(), - nombre: client.Nombre.trim(), - sucursal_id: client.sucursal_ID.trim(), - telefono: client.Telefono.trim(), - }); - })); - - // Notificar al usuario que los datos se han subido correctamente - alert('Datos de clientes subidos correctamente a la colección "clientes".'); - } else { - // Notificar al usuario si no hay datos de clientes en el store - alert('No hay datos de clientes para subir.'); - } - - } catch (error) { - console.error('Error al subir datos de clientes:', error.message); - alert('Error al subir datos de clientes. Por favor, inténtalo de nuevo.'); - } - }; - return ( - Sigan Viendo... - - + ); }; @@ -59,4 +21,4 @@ const styles = StyleSheet.create({ }, }); -export default OthersScreen; \ No newline at end of file +export default OthersScreen; diff --git a/src/store.js b/src/store.js index 61cfec1..f8dcd45 100644 --- a/src/store.js +++ b/src/store.js @@ -1,6 +1,6 @@ // store.js import {create} from 'zustand'; -const clientes = [ +export const clientes = [ { "Empresa_ID": 2, "sucursal_ID": 1, @@ -3962,7 +3962,7 @@ const clientes = [ "cobrador_ID": "0O" } ]; -const notas_pendientes = [ +export const notas_pendientes = [ { "Empresa_ID": 2, "sucursal_ID": 1, From 91aa29fe2806460943651f38bcfc804f47a467f8 Mon Sep 17 00:00:00 2001 From: Miguel Benjamin Zubieta Rios Date: Thu, 11 Apr 2024 21:48:46 -0400 Subject: [PATCH 5/6] =?UTF-8?q?A=C3=B1adir=20URL=20de=20GitHub=20y=20varia?= =?UTF-8?q?bles=20de=20entorno=20en=20app.json=20y=20app.config.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/DateInputField.js | 4 +- src/components/DropdownSelector2.js | 16 +- src/components/InputField.js | 4 +- src/screens/PayScreen.js | 55 +++--- src/unused/payscreenold.txt | 263 ++++++++++++++++++++++++++++ 5 files changed, 302 insertions(+), 40 deletions(-) create mode 100644 src/unused/payscreenold.txt diff --git a/src/components/DateInputField.js b/src/components/DateInputField.js index 23b8427..6f8b0f3 100644 --- a/src/components/DateInputField.js +++ b/src/components/DateInputField.js @@ -51,8 +51,8 @@ const DateInputField = ({ control, name, title, type = 'default' }) => { const styles = StyleSheet.create({ container: { - marginHorizontal: 20, - marginBottom: 10, + marginHorizontal: 10, + marginBottom: 20, width: 145, }, label: { diff --git a/src/components/DropdownSelector2.js b/src/components/DropdownSelector2.js index 0bcb0e3..424ba8f 100644 --- a/src/components/DropdownSelector2.js +++ b/src/components/DropdownSelector2.js @@ -1,4 +1,4 @@ -// DropdownSelector.js +// DropdownSelector2.js import React, { useState, useCallback } from "react"; import { View, Text } from "react-native"; import { FontAwesome5 } from "@expo/vector-icons"; @@ -7,7 +7,7 @@ import { theme } from '../../constants'; import { StyleSheet, Dimensions } from 'react-native'; const screenWidth = Dimensions.get('window').width; -const DropdownSelector = ({ title, options, selectedOption, onOptionChange, size=200 }) => { +const DropdownSelector2 = ({ title, options, selectedOption, onOptionChange, size=200 }) => { const [menuVisible, setMenuVisible] = useState(false); const toggleMenu = () => { @@ -15,7 +15,7 @@ const DropdownSelector = ({ title, options, selectedOption, onOptionChange, size }; return ( - + {title} setMenuVisible(false)}> @@ -53,12 +53,7 @@ const styles = StyleSheet.create({ paddingLeft: 10 }, container: { - marginHorizontal: 20, - borderRadius: 20, - backgroundColor: theme.colors.skyBlue, - padding: 7, - flexDirection: "row", - justifyContent: 'flex-end', + marginHorizontal: 10, }, label: { flexDirection: "row", @@ -102,7 +97,6 @@ const styles = StyleSheet.create({ optionsContainer: { paddingVertical: 15, marginTop: 55, - marginLeft: 0, borderRadius: 20, backgroundColor: theme.colors.tertiary, }, @@ -110,4 +104,4 @@ const styles = StyleSheet.create({ marginLeft: 20, }, }); -export default DropdownSelector; \ No newline at end of file +export default DropdownSelector2; \ No newline at end of file diff --git a/src/components/InputField.js b/src/components/InputField.js index fd5e839..9b8be60 100644 --- a/src/components/InputField.js +++ b/src/components/InputField.js @@ -37,8 +37,8 @@ const InputField = ({ control, name, title, type = 'default', rules = {}, errors const styles = StyleSheet.create({ container: { - marginHorizontal: 20, - marginBottom: 10, + marginHorizontal: 10, + marginBottom: 20, }, label: { color: 'gray', diff --git a/src/screens/PayScreen.js b/src/screens/PayScreen.js index 57686be..d9cca22 100644 --- a/src/screens/PayScreen.js +++ b/src/screens/PayScreen.js @@ -28,8 +28,14 @@ const PayScreen = ({ route }) => { setSelectedCurrency(option); }; + const [selectedPayMode, setSelectedPayMode] = useState('Al Contado'); + const payModes = ['Al Contado', 'Cheque', 'Banco']; + + const [selectedCash, setSelectedCash] = useState('CTA 1239123234'); + const cash_accounts = ['CTA 1239123234', 'CTA 1239123235', 'CTA 1239123236']; + const [selectedBank, setSelectedBank] = useState('BNB 1213434789'); - const banks = ['BNB 1213434789', 'BCP 4432765343', 'CTA 1239123234']; + const banks = ['BNB 1213434789', 'BCP 4432765343']; const { control, @@ -39,11 +45,11 @@ const PayScreen = ({ route }) => { defaultValues: { amount: "", currency: "", - deposit: "", + payMode: "", advancePaymentNumber: "", checkBankNumber: "", checkBankDate: "", - bankAccount: "", + account: "", reference: "", observations: "", }, @@ -75,15 +81,15 @@ const PayScreen = ({ route }) => { - Nº 150 - 130. Bs + {note.nro_nota} + {note.importe_nota} Bs. - - + + { onOptionChange={handleCurrencyChange} /> - + { }} errors={errors} /> + { {/* El input de abajo necesita usar un datetime picker para la fecha */} - + { Registrar Pago - + ) }; @@ -238,8 +239,7 @@ const styles = StyleSheet.create({ justifyContent: "center", alignItems: "center", elevation: 5, - paddingVertical: 15, - paddingHorizontal: 15, + paddingVertical: 12, backgroundColor: theme.colors.tertiary, borderRadius: 22, flex: 1, @@ -249,9 +249,14 @@ const styles = StyleSheet.create({ fontSize: 16, fontWeight: "bold", }, - firstLineForm: { + lineForm: { flexDirection: "row", }, + formContainer: { + flex: 1, + marginHorizontal: 10, + marginVertical: 10, + }, }); export default PayScreen; diff --git a/src/unused/payscreenold.txt b/src/unused/payscreenold.txt new file mode 100644 index 0000000..b7b9767 --- /dev/null +++ b/src/unused/payscreenold.txt @@ -0,0 +1,263 @@ +import React, { useState, useCallback } from "react"; +import { SafeAreaView, StyleSheet, Text, TextInput, TouchableOpacity, View, Dimensions, ScrollView } from 'react-native'; +import { useForm } from "react-hook-form"; +import Icon from "react-native-vector-icons/AntDesign"; +import { useNavigation, useFocusEffect } from '@react-navigation/native'; +import { StatusBar } from 'expo-status-bar'; +import Cascading from "../animation/CascadingFadeInView"; +import { theme } from "../../constants.js"; +import InputField from "../components/InputField.js"; +import DateInputField from "../components/DateInputField.js"; +import DropdownSelector2 from "../components/DropdownSelector2.js"; +import PaymentStore from "../PaymentStore.js"; +const screenWidth = Dimensions.get("window").width; +const screenHeight = Dimensions.get("window").height; + +const PayScreen = ({ route }) => { + const { note } = route.params; + const navigation = useNavigation(); + const [animationKey, setAnimationKey] = useState(Date.now()); + useFocusEffect( + useCallback(() => { + setAnimationKey(Date.now()); + }, []) + ); + + const [selectedCurrency, setSelectedCurrency] = useState('Bs'); + const handleCurrencyChange = (option) => { + setSelectedCurrency(option); + }; + + const [selectedPayMode, setSelectedPayMode] = useState('Al Contado'); + const payModes = ['Al Contado', 'Cheque', 'Banco']; + + const [selectedCash, setSelectedCash] = useState('CTA 1239123234'); + const cash_accounts = ['CTA 1239123234', 'CTA 1239123235', 'CTA 1239123236']; + + const [selectedBank, setSelectedBank] = useState('BNB 1213434789'); + const banks = ['BNB 1213434789', 'BCP 4432765343']; + + const { + control, + handleSubmit, + formState: { errors }, + } = useForm({ + defaultValues: { + amount: "", + currency: "", + payMode: "", + advancePaymentNumber: "", + checkBankNumber: "", + checkBankDate: "", + account: "", + reference: "", + observations: "", + }, + }); + + const onSubmit = (data) => { + console.log(data); + PaymentStore.getState().agregarPago({ + numeroNota: note.nro_nota, + fechaNota: note.Fecha, + total: note.importe_nota, + pagado: data.amount, + }); + console.log("Pagos realizados:", PaymentStore.getState().pagosRealizados); + navigation.goBack(); + }; + + return ( + + + + + + + navigation.goBack()} + > + + + + {note.nro_nota} + {note.importe_nota} Bs. + + + + + + + + + + + + + + + {/* El input de abajo necesita usar un datetime picker para la fecha */} + + + + + + + + + + + Registrar Pago + + + + + ) +}; + +const styles = StyleSheet.create({ + cover: { + backgroundColor: theme.colors.primary, + zIndex: 1, + }, + up: { + backgroundColor: theme.colors.primary, + }, + container: { + flex: 1, + paddingTop: 15, + backgroundColor: theme.colors.primary, + }, + header: { + flexDirection: "row", + paddingHorizontal: 20, + paddingVertical: 20, + alignItems: "center", + }, + back: { + justifyContent: "center", + alignItems: "center", + backgroundColor: theme.colors.otherWhite, + borderRadius: 20, + width: 60, + height: 60, + }, + aviContainer: { + flex: 1, + justifyContent: "center", + alignItems: "center", + }, + avi: { + fontWeight: "bold", + fontSize: 22, + marginRight: 60, + }, + buttonContainer: { + marginTop: 20, + flexDirection: "row", + justifyContent: "center", + alignSelf: "center", + width: screenWidth - 240, + }, + button: { + justifyContent: "center", + alignItems: "center", + elevation: 5, + paddingVertical: 15, + paddingHorizontal: 15, + backgroundColor: theme.colors.tertiary, + borderRadius: 22, + flex: 1, + }, + buttonText: { + color: theme.colors.primary, + fontSize: 16, + fontWeight: "bold", + }, + firstLineForm: { + flexDirection: "row", + }, +}); + +export default PayScreen; From dbf66073ed37a0a33659e90a8a15ef164820c05b Mon Sep 17 00:00:00 2001 From: Miguel Benjamin Zubieta Rios Date: Thu, 11 Apr 2024 22:30:24 -0400 Subject: [PATCH 6/6] solucionando problemas con las barra de navegacion --- src/assets/Theme.js | 2 +- src/navigation/AppNavigator.js | 103 ++++++++++++++++----------------- src/screens/HistoryScreen.js | 2 +- src/screens/OthersScreen.js | 2 +- src/utils/StyledText.js | 2 +- 5 files changed, 55 insertions(+), 56 deletions(-) diff --git a/src/assets/Theme.js b/src/assets/Theme.js index 7320237..4ca8fe8 100644 --- a/src/assets/Theme.js +++ b/src/assets/Theme.js @@ -3,7 +3,7 @@ export const theme = { primaryText: "#161819", secondaryText: "#787878", primary: "#fffefd", - primary: "#E5EAEE", + primary: "#ffffff", secondary: "#bbe6ec", secondary: "#9DBBE2", tertiary: "#152432", diff --git a/src/navigation/AppNavigator.js b/src/navigation/AppNavigator.js index d6cb0de..4fd450d 100644 --- a/src/navigation/AppNavigator.js +++ b/src/navigation/AppNavigator.js @@ -13,7 +13,7 @@ import ProfileScreen from '../screens/ProfileScreen'; import HistoryScreen from '../screens/HistoryScreen'; import OthersScreen from '../screens/OthersScreen'; import Icon from 'react-native-vector-icons/Ionicons'; -import { theme } from '../../constants'; +import { theme } from '../assets/Theme'; const Stack = createNativeStackNavigator(); @@ -26,59 +26,15 @@ const TabIcon = ({ name, color, size }) => { function AppNavigator() { return ( - - - ({ - tabBarIcon: ({ focused, color, size }) => ( - - - ), - })} - /> - ({ - tabBarIcon: ({ focused, color, size }) => ( - - ), - tabBarBadge: 3, //borrar - })} - /> - ({ - tabBarIcon: ({ focused, color, size }) => ( - - ), - })} - /> - - - ); -} - -function StackNavigator() { - return ( + + screenOptions={{ + animationEnabled: false, + headerShown: false, + }}> - + + + ); +} + +function TabNavigator() { + return ( + + ({ + tabBarIcon: ({ focused, color, size }) => ( + + + ), + })} + /> + ({ + tabBarIcon: ({ focused, color, size }) => ( + + ), + tabBarBadge: 3, //borrar + })} + /> + ({ + tabBarIcon: ({ focused, color, size }) => ( + + ), + })} + /> + ); } diff --git a/src/screens/HistoryScreen.js b/src/screens/HistoryScreen.js index a69a6fd..ffa5cf1 100644 --- a/src/screens/HistoryScreen.js +++ b/src/screens/HistoryScreen.js @@ -1,7 +1,7 @@ import React from 'react'; import { StyleSheet, Text, View } from 'react-native'; import { StatusBar } from 'expo-status-bar'; -import { theme } from '../../constants'; +import { theme } from '../assets/Theme'; const OthersScreen = () => { return ( diff --git a/src/screens/OthersScreen.js b/src/screens/OthersScreen.js index 3a2ca63..bde9b75 100644 --- a/src/screens/OthersScreen.js +++ b/src/screens/OthersScreen.js @@ -1,7 +1,7 @@ import React from 'react'; import { StyleSheet, Text, View, TouchableOpacity } from 'react-native'; import { StatusBar } from 'expo-status-bar'; -import { theme } from '../../constants'; +import { theme } from '../assets/Theme'; const OthersScreen = () => { return ( diff --git a/src/utils/StyledText.js b/src/utils/StyledText.js index 8192d72..c76b044 100644 --- a/src/utils/StyledText.js +++ b/src/utils/StyledText.js @@ -3,7 +3,7 @@ import { Text, StyleSheet, Dimensions } from 'react-native'; import { theme } from "../assets/Theme"; const { height } = Dimensions.get('window'); -const regularTextSize = height * 0.025 +const regularTextSize = height * 0.024 const bigTextSize = height * 0.025 const grandbigText = height * 0.04