diff --git a/package-lock.json b/package-lock.json index a54f669..b59d56f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,21 +11,21 @@ "@react-navigation/bottom-tabs": "^6.6.0", "@react-navigation/native": "^6.1.17", "@tanstack/react-query": "^5.49.2", - "expo": "~51.0.17", + "expo": "^51.0.21", "expo-constants": "~16.0.2", "expo-linear-gradient": "~13.0.2", "expo-linking": "~6.3.1", - "expo-router": "~3.5.17", + "expo-router": "^3.5.18", "expo-status-bar": "~1.12.1", "graphql": "^15.9.0", "graphql-request": "^6.1.0", "install": "^0.13.0", "react": "18.2.0", "react-dom": "18.2.0", - "react-native": "0.74.2", - "react-native-gesture-handler": "^2.17.1", - "react-native-reanimated": "^3.14.0", - "react-native-safe-area-context": "4.10.1", + "react-native": "^0.74.3", + "react-native-gesture-handler": "^2.16.1", + "react-native-reanimated": "^3.10.1", + "react-native-safe-area-context": "^4.10.5", "react-native-screens": "3.31.1", "react-native-web": "~0.19.10" }, @@ -2269,15 +2269,15 @@ } }, "node_modules/@expo/cli": { - "version": "0.18.21", - "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-0.18.21.tgz", - "integrity": "sha512-t8sFUGXRM/vafILp98H/MvIgJ5c7OG+d780Zastpzn0zfakaVDvXyw9tXskwAYi9YHJpG8/cfvght1c5fBDBoA==", + "version": "0.18.25", + "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-0.18.25.tgz", + "integrity": "sha512-Kh0uZGCxwu58Pu7Jto9T/ABlBR7nkx8QC0Wv8pI3YtISyQZIKtbtNNeTPWYbVK1ddswKwtBUj+MNhKoDL49TLg==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.20.0", "@expo/code-signing-certificates": "0.0.5", "@expo/config": "~9.0.0-beta.0", - "@expo/config-plugins": "~8.0.0-beta.0", + "@expo/config-plugins": "~8.0.8", "@expo/devcert": "^1.0.0", "@expo/env": "~0.3.0", "@expo/image-utils": "^0.5.0", @@ -2286,11 +2286,11 @@ "@expo/osascript": "^2.0.31", "@expo/package-manager": "^1.5.0", "@expo/plist": "^0.1.0", - "@expo/prebuild-config": "7.0.6", + "@expo/prebuild-config": "7.0.8", "@expo/rudder-sdk-node": "1.1.1", "@expo/spawn-async": "^1.7.2", "@expo/xcpretty": "^4.3.0", - "@react-native/dev-middleware": "0.74.84", + "@react-native/dev-middleware": "0.74.85", "@urql/core": "2.3.6", "@urql/exchange-retry": "0.3.0", "accepts": "^1.3.8", @@ -2356,6 +2356,49 @@ "expo-internal": "build/bin/cli" } }, + "node_modules/@expo/cli/node_modules/@expo/prebuild-config": { + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-7.0.8.tgz", + "integrity": "sha512-wH9NVg6HiwF5y9x0TxiMEeBF+ITPGDXy5/i6OUheSrKpPgb0lF1Mwzl/f2fLPXBEpl+ZXOQ8LlLW32b7K9lrNg==", + "license": "MIT", + "dependencies": { + "@expo/config": "~9.0.0-beta.0", + "@expo/config-plugins": "~8.0.8", + "@expo/config-types": "^51.0.0-unreleased", + "@expo/image-utils": "^0.5.0", + "@expo/json-file": "^8.3.0", + "@react-native/normalize-colors": "0.74.85", + "debug": "^4.3.1", + "fs-extra": "^9.0.0", + "resolve-from": "^5.0.0", + "semver": "^7.6.0", + "xml2js": "0.6.0" + }, + "peerDependencies": { + "expo-modules-autolinking": ">=0.8.1" + } + }, + "node_modules/@expo/cli/node_modules/@expo/prebuild-config/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@expo/cli/node_modules/@react-native/normalize-colors": { + "version": "0.74.85", + "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.74.85.tgz", + "integrity": "sha512-pcE4i0X7y3hsAE0SpIl7t6dUc0B0NZLd1yv7ssm4FrLhWG+CGyIq4eFDXpmPU1XHmL5PPySxTAjEMiwv6tAmOw==", + "license": "MIT" + }, "node_modules/@expo/cli/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -2409,6 +2452,7 @@ "version": "15.8.0", "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==", + "license": "MIT", "engines": { "node": ">= 10.x" } @@ -2422,10 +2466,22 @@ "node": ">=8" } }, + "node_modules/@expo/cli/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, "node_modules/@expo/cli/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -2446,6 +2502,15 @@ "node": ">=8" } }, + "node_modules/@expo/cli/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/@expo/code-signing-certificates": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/@expo/code-signing-certificates/-/code-signing-certificates-0.0.5.tgz", @@ -2457,13 +2522,13 @@ } }, "node_modules/@expo/config": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@expo/config/-/config-9.0.1.tgz", - "integrity": "sha512-0tjaXBstTbXmD4z+UMFBkh2SZFwilizSQhW6DlaTMnPG5ezuw93zSFEWAuEC3YzkpVtNQTmYzxAYjxwh6seOGg==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/@expo/config/-/config-9.0.3.tgz", + "integrity": "sha512-eOTNM8eOC8gZNHgenySRlc/lwmYY1NOgvjwA8LHuvPT7/eUwD93zrxu3lPD1Cc/P6C/2BcVdfH4hf0tLmDxnsg==", "license": "MIT", "dependencies": { "@babel/code-frame": "~7.10.4", - "@expo/config-plugins": "~8.0.0-beta.0", + "@expo/config-plugins": "~8.0.8", "@expo/config-types": "^51.0.0-unreleased", "@expo/json-file": "^8.3.0", "getenv": "^1.0.0", @@ -2476,9 +2541,9 @@ } }, "node_modules/@expo/config-plugins": { - "version": "8.0.6", - "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-8.0.6.tgz", - "integrity": "sha512-Vmn/BSg/hBmliU/Bl+G4sExDoWd4iHXQG7ITUNR5Uar7uLko1A5vdVV+EOEUFA0f8jEZMHG3uZJUoXmr4LPaxA==", + "version": "8.0.8", + "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-8.0.8.tgz", + "integrity": "sha512-Fvu6IO13EUw0R9WeqxUO37FkM62YJBNcZb9DyJAOgMz7Ez/vaKQGEjKt9cwT+Q6uirtCATMgaq6VWAW7YW8xXw==", "license": "MIT", "dependencies": { "@expo/config-types": "^51.0.0-unreleased", @@ -4100,9 +4165,9 @@ } }, "node_modules/@npmcli/fs/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -4147,19 +4212,19 @@ } }, "node_modules/@react-native-community/cli": { - "version": "13.6.8", - "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-13.6.8.tgz", - "integrity": "sha512-0lRdgLNaXixWY4BfFRl1J6Ao9Lapo2z+++iE7TD4GAbuxOWJSyFi+KUA8XNfSDyML4jFO02MZgyBPxAWdaminQ==", - "license": "MIT", - "dependencies": { - "@react-native-community/cli-clean": "13.6.8", - "@react-native-community/cli-config": "13.6.8", - "@react-native-community/cli-debugger-ui": "13.6.8", - "@react-native-community/cli-doctor": "13.6.8", - "@react-native-community/cli-hermes": "13.6.8", - "@react-native-community/cli-server-api": "13.6.8", - "@react-native-community/cli-tools": "13.6.8", - "@react-native-community/cli-types": "13.6.8", + "version": "13.6.9", + "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-13.6.9.tgz", + "integrity": "sha512-hFJL4cgLPxncJJd/epQ4dHnMg5Jy/7Q56jFvA3MHViuKpzzfTCJCB+pGY54maZbtym53UJON9WTGpM3S81UfjQ==", + "license": "MIT", + "dependencies": { + "@react-native-community/cli-clean": "13.6.9", + "@react-native-community/cli-config": "13.6.9", + "@react-native-community/cli-debugger-ui": "13.6.9", + "@react-native-community/cli-doctor": "13.6.9", + "@react-native-community/cli-hermes": "13.6.9", + "@react-native-community/cli-server-api": "13.6.9", + "@react-native-community/cli-tools": "13.6.9", + "@react-native-community/cli-types": "13.6.9", "chalk": "^4.1.2", "commander": "^9.4.1", "deepmerge": "^4.3.0", @@ -4178,12 +4243,12 @@ } }, "node_modules/@react-native-community/cli-clean": { - "version": "13.6.8", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-13.6.8.tgz", - "integrity": "sha512-B1uxlm1N4BQuWFvBL3yRl3LVvydjswsdbTi7tMrHMtSxfRio1p9HjcmDzlzKco09Y+8qBGgakm3jcMZGLbhXQQ==", + "version": "13.6.9", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-13.6.9.tgz", + "integrity": "sha512-7Dj5+4p9JggxuVNOjPbduZBAP1SUgNhLKVw5noBUzT/3ZpUZkDM+RCSwyoyg8xKWoE4OrdUAXwAFlMcFDPKykA==", "license": "MIT", "dependencies": { - "@react-native-community/cli-tools": "13.6.8", + "@react-native-community/cli-tools": "13.6.9", "chalk": "^4.1.2", "execa": "^5.0.0", "fast-glob": "^3.3.2" @@ -4343,12 +4408,12 @@ } }, "node_modules/@react-native-community/cli-config": { - "version": "13.6.8", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-13.6.8.tgz", - "integrity": "sha512-RabCkIsWdP4Ex/sf1uSP9qxc30utm+0uIJAjrZkNQynm7T4Lyqn/kT3LKm4yM6M0Qk61YxGguiaXF4601vAduw==", + "version": "13.6.9", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-13.6.9.tgz", + "integrity": "sha512-rFfVBcNojcMm+KKHE/xqpqXg8HoKl4EC7bFHUrahMJ+y/tZll55+oX/PGG37rzB8QzP2UbMQ19DYQKC1G7kXeg==", "license": "MIT", "dependencies": { - "@react-native-community/cli-tools": "13.6.8", + "@react-native-community/cli-tools": "13.6.9", "chalk": "^4.1.2", "cosmiconfig": "^5.1.0", "deepmerge": "^4.3.0", @@ -4427,25 +4492,25 @@ } }, "node_modules/@react-native-community/cli-debugger-ui": { - "version": "13.6.8", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-13.6.8.tgz", - "integrity": "sha512-2cS+MX/Su6sVSjqpDftFOXbK7EuPg98xzsPkdPhkQnkZwvXqodK9CAMuDMbx3lBHHtrPrpMbBCpFmPN8iVOnlA==", + "version": "13.6.9", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-13.6.9.tgz", + "integrity": "sha512-TkN7IdFmGPPvTpAo3nCAH9uwGCPxWBEAwpqEZDrq0NWllI7Tdie8vDpGdrcuCcKalmhq6OYnkXzeBah7O1Ztpw==", "license": "MIT", "dependencies": { "serve-static": "^1.13.1" } }, "node_modules/@react-native-community/cli-doctor": { - "version": "13.6.8", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-13.6.8.tgz", - "integrity": "sha512-/3Vdy9J3hyiu0y3nd/CU3kBqPlTRxnLXg7V6jrA1jbTOlZAMyV9imEkrqEaGK0SMOyMhh9Pipf98Ozhk0Nl4QA==", + "version": "13.6.9", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-13.6.9.tgz", + "integrity": "sha512-5quFaLdWFQB+677GXh5dGU9I5eg2z6Vg4jOX9vKnc9IffwyIFAyJfCZHrxLSRPDGNXD7biDQUdoezXYGwb6P/A==", "license": "MIT", "dependencies": { - "@react-native-community/cli-config": "13.6.8", - "@react-native-community/cli-platform-android": "13.6.8", - "@react-native-community/cli-platform-apple": "13.6.8", - "@react-native-community/cli-platform-ios": "13.6.8", - "@react-native-community/cli-tools": "13.6.8", + "@react-native-community/cli-config": "13.6.9", + "@react-native-community/cli-platform-android": "13.6.9", + "@react-native-community/cli-platform-apple": "13.6.9", + "@react-native-community/cli-platform-ios": "13.6.9", + "@react-native-community/cli-tools": "13.6.9", "chalk": "^4.1.2", "command-exists": "^1.2.8", "deepmerge": "^4.3.0", @@ -4678,9 +4743,9 @@ } }, "node_modules/@react-native-community/cli-doctor/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -4702,13 +4767,13 @@ } }, "node_modules/@react-native-community/cli-hermes": { - "version": "13.6.8", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-13.6.8.tgz", - "integrity": "sha512-lZi/OBFuZUj5cLK94oEgtrtmxGoqeYVRcnHXl/R5c4put9PDl+qH2bEMlGZkFiw57ae3UZKr3TMk+1s4jh3FYQ==", + "version": "13.6.9", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-13.6.9.tgz", + "integrity": "sha512-GvwiwgvFw4Ws+krg2+gYj8sR3g05evmNjAHkKIKMkDTJjZ8EdyxbkifRUs1ZCq3TMZy2oeblZBXCJVOH4W7ZbA==", "license": "MIT", "dependencies": { - "@react-native-community/cli-platform-android": "13.6.8", - "@react-native-community/cli-tools": "13.6.8", + "@react-native-community/cli-platform-android": "13.6.9", + "@react-native-community/cli-tools": "13.6.9", "chalk": "^4.1.2", "hermes-profile-transformer": "^0.0.6" } @@ -4784,12 +4849,12 @@ } }, "node_modules/@react-native-community/cli-platform-android": { - "version": "13.6.8", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-13.6.8.tgz", - "integrity": "sha512-vWrqeLRRTwp2kO33nbrAgbYn8HR2c2CpIfyVJY9Ckk7HGUSwDyxdcSu7YBvt2ShdfLZH0HctWFNXsgGrfg6BDw==", + "version": "13.6.9", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-13.6.9.tgz", + "integrity": "sha512-9KsYGdr08QhdvT3Ht7e8phQB3gDX9Fs427NJe0xnoBh+PDPTI2BD5ks5ttsH8CzEw8/P6H8tJCHq6hf2nxd9cw==", "license": "MIT", "dependencies": { - "@react-native-community/cli-tools": "13.6.8", + "@react-native-community/cli-tools": "13.6.9", "chalk": "^4.1.2", "execa": "^5.0.0", "fast-glob": "^3.3.2", @@ -4951,12 +5016,12 @@ } }, "node_modules/@react-native-community/cli-platform-apple": { - "version": "13.6.8", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-apple/-/cli-platform-apple-13.6.8.tgz", - "integrity": "sha512-1JPohnlXPqU44zns3ALEzIbH2cKRw6JtEDJERgLuEUbs2r2NeJgqDbKyZ7fTTO8o+pegDnn6+Rr7qGVVOuUzzg==", + "version": "13.6.9", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-apple/-/cli-platform-apple-13.6.9.tgz", + "integrity": "sha512-KoeIHfhxMhKXZPXmhQdl6EE+jGKWwoO9jUVWgBvibpVmsNjo7woaG/tfJMEWfWF3najX1EkQAoJWpCDBMYWtlA==", "license": "MIT", "dependencies": { - "@react-native-community/cli-tools": "13.6.8", + "@react-native-community/cli-tools": "13.6.9", "chalk": "^4.1.2", "execa": "^5.0.0", "fast-glob": "^3.3.2", @@ -5194,22 +5259,22 @@ } }, "node_modules/@react-native-community/cli-platform-ios": { - "version": "13.6.8", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-13.6.8.tgz", - "integrity": "sha512-/IIcIRM8qaoD7iZqsvtf6Qq1AwtChWYfB9sTn3mTiolZ5Zd5bXH37g+6liPfAICRkj2Ptq3iXmjrDVUQAxrOXw==", + "version": "13.6.9", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-13.6.9.tgz", + "integrity": "sha512-CiUcHlGs8vE0CAB4oi1f+dzniqfGuhWPNrDvae2nm8dewlahTBwIcK5CawyGezjcJoeQhjBflh9vloska+nlnw==", "license": "MIT", "dependencies": { - "@react-native-community/cli-platform-apple": "13.6.8" + "@react-native-community/cli-platform-apple": "13.6.9" } }, "node_modules/@react-native-community/cli-server-api": { - "version": "13.6.8", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-13.6.8.tgz", - "integrity": "sha512-Lx664oWTzpVfbKUTy+3GIX7e+Mt5Zn+zdkM4ehllNdik/lbB3tM9Nrg8PSvOfI+tTXs2w55+nIydLfH+0FqJVg==", + "version": "13.6.9", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-13.6.9.tgz", + "integrity": "sha512-W8FSlCPWymO+tlQfM3E0JmM8Oei5HZsIk5S0COOl0MRi8h0NmHI4WSTF2GCfbFZkcr2VI/fRsocoN8Au4EZAug==", "license": "MIT", "dependencies": { - "@react-native-community/cli-debugger-ui": "13.6.8", - "@react-native-community/cli-tools": "13.6.8", + "@react-native-community/cli-debugger-ui": "13.6.9", + "@react-native-community/cli-tools": "13.6.9", "compression": "^1.7.1", "connect": "^3.6.5", "errorhandler": "^1.5.1", @@ -5354,9 +5419,9 @@ } }, "node_modules/@react-native-community/cli-tools": { - "version": "13.6.8", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-13.6.8.tgz", - "integrity": "sha512-1MYlae9EkbjC7DBYOGMH5xF9yDoeNYUKgEdDjL6WAUBoF2gtwiZPM6igLKi/+dhb5sCtC7fiLrLi0Oevdf+RmQ==", + "version": "13.6.9", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-13.6.9.tgz", + "integrity": "sha512-OXaSjoN0mZVw3nrAwcY1PC0uMfyTd9fz7Cy06dh+EJc+h0wikABsVRzV8cIOPrVV+PPEEXE0DBrH20T2puZzgQ==", "license": "MIT", "dependencies": { "appdirsjs": "^1.2.4", @@ -5599,9 +5664,9 @@ } }, "node_modules/@react-native-community/cli-tools/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -5641,9 +5706,9 @@ } }, "node_modules/@react-native-community/cli-types": { - "version": "13.6.8", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-13.6.8.tgz", - "integrity": "sha512-C4mVByy0i+/NPuPhdMLBR7ubEVkjVS1VwoQu/BoG1crJFNE+167QXAzH01eFbXndsjZaMWmD4Gerx7TYc6lHfA==", + "version": "13.6.9", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-13.6.9.tgz", + "integrity": "sha512-RLxDppvRxXfs3hxceW/mShi+6o5yS+kFPnPqZTaMKKR5aSg7LwDpLQW4K2D22irEG8e6RKDkZUeH9aL3vO2O0w==", "license": "MIT", "dependencies": { "joi": "^17.2.1" @@ -5852,9 +5917,9 @@ } }, "node_modules/@react-native-community/cli/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -5876,30 +5941,30 @@ } }, "node_modules/@react-native/assets-registry": { - "version": "0.74.84", - "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.74.84.tgz", - "integrity": "sha512-dzUhwyaX04QosWZ8zyaaNB/WYZIdeDN1lcpfQbqiOhZJShRH+FLTDVONE/dqlMQrP+EO7lDqF0RrlIt9lnOCQQ==", + "version": "0.74.85", + "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.74.85.tgz", + "integrity": "sha512-59YmIQxfGDw4aP9S/nAM+sjSFdW8fUP6fsqczCcXgL2YVEjyER9XCaUT0J1K+PdHep8pi05KUgIKUds8P3jbmA==", "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/@react-native/babel-plugin-codegen": { - "version": "0.74.84", - "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.74.84.tgz", - "integrity": "sha512-UR4uiii5szIJA84mSC6GJOfYKDq7/ThyetOQT62+BBcyGeHVtHlNLNRzgaMeLqIQaT8Fq4pccMI+7QqLOMXzdw==", + "version": "0.74.85", + "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.74.85.tgz", + "integrity": "sha512-48TSDclRB5OMXiImiJkLxyCfRyLsqkCgI8buugCZzvXcYslfV7gCvcyFyQldtcOmerV+CK4RAj7QS4hmB5Mr8Q==", "license": "MIT", "dependencies": { - "@react-native/codegen": "0.74.84" + "@react-native/codegen": "0.74.85" }, "engines": { "node": ">=18" } }, "node_modules/@react-native/babel-preset": { - "version": "0.74.84", - "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.74.84.tgz", - "integrity": "sha512-WUfu6Y4aGuVdocQZvx33BJiQWFH6kRCHYbZfBn2psgFrSRLgQWEQrDCxqPFObNAVSayM0rNhp2FvI5K/Eyeqlg==", + "version": "0.74.85", + "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.74.85.tgz", + "integrity": "sha512-yMHUlN8INbK5BBwiBuQMftdWkpm1IgCsoJTKcGD2OpSgZhwwm8RUSvGhdRMzB2w7bsqqBmaEMleGtW6aCR7B9w==", "license": "MIT", "dependencies": { "@babel/core": "^7.20.0", @@ -5942,7 +6007,7 @@ "@babel/plugin-transform-typescript": "^7.5.0", "@babel/plugin-transform-unicode-regex": "^7.0.0", "@babel/template": "^7.0.0", - "@react-native/babel-plugin-codegen": "0.74.84", + "@react-native/babel-plugin-codegen": "0.74.85", "babel-plugin-transform-flow-enums": "^0.0.2", "react-refresh": "^0.14.0" }, @@ -5954,9 +6019,9 @@ } }, "node_modules/@react-native/codegen": { - "version": "0.74.84", - "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.74.84.tgz", - "integrity": "sha512-0hXlnu9i0o8v+gXKQi+x6T471L85kCDwW4WrJiYAeOheWrQdNNW6rC3g8+LL7HXAf7QcHGU/8/d57iYfdVK2BQ==", + "version": "0.74.85", + "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.74.85.tgz", + "integrity": "sha512-N7QwoS4Hq/uQmoH83Ewedy6D0M7xbQsOU3OMcQf0eY3ltQ7S2hd9/R4UTalQWRn1OUJfXR6OG12QJ4FStKgV6Q==", "license": "MIT", "dependencies": { "@babel/parser": "^7.20.0", @@ -5975,15 +6040,15 @@ } }, "node_modules/@react-native/community-cli-plugin": { - "version": "0.74.84", - "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.74.84.tgz", - "integrity": "sha512-GBKE+1sUh86fS2XXV46gMCNHMc1KetshMbYJ0AhDhldpaILZHqRBX50mdVsiYVvkzp4QjM0nmYqefuJ9NVwicQ==", + "version": "0.74.85", + "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.74.85.tgz", + "integrity": "sha512-ODzND33eA2owAY3g9jgCdqB+BjAh8qJ7dvmSotXgrgDYr3MJMpd8gvHTIPe2fg4Kab+wk8uipRhrE0i0RYMwtQ==", "license": "MIT", "dependencies": { - "@react-native-community/cli-server-api": "13.6.8", - "@react-native-community/cli-tools": "13.6.8", - "@react-native/dev-middleware": "0.74.84", - "@react-native/metro-babel-transformer": "0.74.84", + "@react-native-community/cli-server-api": "13.6.9", + "@react-native-community/cli-tools": "13.6.9", + "@react-native/dev-middleware": "0.74.85", + "@react-native/metro-babel-transformer": "0.74.85", "chalk": "^4.0.0", "execa": "^5.1.1", "metro": "^0.80.3", @@ -6151,22 +6216,22 @@ } }, "node_modules/@react-native/debugger-frontend": { - "version": "0.74.84", - "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.74.84.tgz", - "integrity": "sha512-YUEA03UNFbiYzHpYxlcS2D9+3eNT5YLGkl5yRg3nOSN6KbCc/OttGnNZme+tuSOJwjMN/vcvtDKYkTqjJw8U0A==", + "version": "0.74.85", + "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.74.85.tgz", + "integrity": "sha512-gUIhhpsYLUTYWlWw4vGztyHaX/kNlgVspSvKe2XaPA7o3jYKUoNLc3Ov7u70u/MBWfKdcEffWq44eSe3j3s5JQ==", "license": "BSD-3-Clause", "engines": { "node": ">=18" } }, "node_modules/@react-native/dev-middleware": { - "version": "0.74.84", - "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.74.84.tgz", - "integrity": "sha512-veYw/WmyrAOQHUiIeULzn2duJQnXDPiKq2jZ/lcmDo6jsLirpp+Q73lx09TYgy/oVoPRuV0nfmU3x9B6EV/7qQ==", + "version": "0.74.85", + "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.74.85.tgz", + "integrity": "sha512-BRmgCK5vnMmHaKRO+h8PKJmHHH3E6JFuerrcfE3wG2eZ1bcSr+QTu8DAlpxsDWvJvHpCi8tRJGauxd+Ssj/c7w==", "license": "MIT", "dependencies": { "@isaacs/ttlcache": "^1.4.1", - "@react-native/debugger-frontend": "0.74.84", + "@react-native/debugger-frontend": "0.74.85", "@rnx-kit/chromium-edge-launcher": "^1.0.0", "chrome-launcher": "^0.15.2", "connect": "^3.6.5", @@ -6224,31 +6289,31 @@ } }, "node_modules/@react-native/gradle-plugin": { - "version": "0.74.84", - "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.74.84.tgz", - "integrity": "sha512-wYWC5WWXqzCCe4PDogz9pNc4xH5ZamahW5XGSbrrYJ5V3walZ+7z43V6iEBJkZbLjj9YBcSttkXYGr1Xh4veAg==", + "version": "0.74.85", + "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.74.85.tgz", + "integrity": "sha512-1VQSLukJzaVMn1MYcs8Weo1nUW8xCas2XU1KuoV7OJPk6xPnEBFJmapmEGP5mWeEy7kcTXJmddEgy1wwW0tcig==", "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/@react-native/js-polyfills": { - "version": "0.74.84", - "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.74.84.tgz", - "integrity": "sha512-+PgxuUjBw9JVlz6m4ECsIJMLbDopnr4rpLmsG32hQaJrg0wMuvHtsgAY/J/aVCSG2GNUXexfjrnhc+O9yGOZXQ==", + "version": "0.74.85", + "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.74.85.tgz", + "integrity": "sha512-gp4Rg9le3lVZeW7Cie6qLfekvRKZuhJ3LKgi1SFB4N154z1wIclypAJXVXgWBsy8JKJfTwRI+sffC4qZDlvzrg==", "license": "MIT", "engines": { "node": ">=18" } }, "node_modules/@react-native/metro-babel-transformer": { - "version": "0.74.84", - "resolved": "https://registry.npmjs.org/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.74.84.tgz", - "integrity": "sha512-YtVGq7jkgyUECv5yt4BOFbOXyW4ddUn8+dnwGGpJKdfhXYL5o5++AxNdE+2x+SZdkj3JUVekGKPwRabFECABaw==", + "version": "0.74.85", + "resolved": "https://registry.npmjs.org/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.74.85.tgz", + "integrity": "sha512-JIrXqEwhTvWPtGArgMptIPGstMdXQIkwSjKVYt+7VC4a9Pw1GurIWanIJheEW6ZuCVvTc0VZkwglFz9JVjzDjA==", "license": "MIT", "dependencies": { "@babel/core": "^7.20.0", - "@react-native/babel-preset": "0.74.84", + "@react-native/babel-preset": "0.74.85", "hermes-parser": "0.19.1", "nullthrows": "^1.1.1" }, @@ -6266,9 +6331,9 @@ "license": "MIT" }, "node_modules/@react-native/virtualized-lists": { - "version": "0.74.84", - "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.74.84.tgz", - "integrity": "sha512-XcV+qdqt2WihaY4iRm/M1FdSy+18lecU9mRXNmy9YK8g9Th/8XbNtmmKI0qWBx3KxyuXMH/zd0ps05YTrX16kw==", + "version": "0.74.85", + "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.74.85.tgz", + "integrity": "sha512-jx2Zw0qlZteoQ+0KxRc7s4drsljLBEP534FaNZ950e9+CN9nVkLsV6rigcTjDR8wjKMSBWhKf0C0C3egYz7Ehg==", "license": "MIT", "dependencies": { "invariant": "^2.2.4", @@ -6749,6 +6814,7 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/@urql/exchange-retry/-/exchange-retry-0.3.0.tgz", "integrity": "sha512-hHqer2mcdVC0eYnVNbWyi28AlGOPb2vjH3lP3/Bc8Lc8BjhMsDwFMm7WhoP5C1+cfbr/QJ6Er3H/L08wznXxfg==", + "license": "MIT", "dependencies": { "@urql/core": ">=2.3.1", "wonka": "^4.0.14" @@ -6805,9 +6871,9 @@ } }, "node_modules/acorn": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz", - "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==", + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", "license": "MIT", "bin": { "acorn": "bin/acorn" @@ -7278,9 +7344,9 @@ } }, "node_modules/babel-preset-expo": { - "version": "11.0.11", - "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-11.0.11.tgz", - "integrity": "sha512-5AM8FE6mH4IKda08brCzZs9uJU+1K2L/F+7dxWZCprxIlpvNOexqb9TeO/l8m8z1511jmuiAfML6at+46ls+tg==", + "version": "11.0.12", + "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-11.0.12.tgz", + "integrity": "sha512-hUuKdzSo8+H1oXQvKvlHRMHTxl+nN6YhFGlKiIxPa0E+gYfMEp8FnnStc/2Hwmip5rgJzQs6KF63KKRUc75xAg==", "license": "MIT", "dependencies": { "@babel/plugin-proposal-decorators": "^7.12.9", @@ -7289,7 +7355,7 @@ "@babel/plugin-transform-parameters": "^7.22.15", "@babel/preset-react": "^7.22.15", "@babel/preset-typescript": "^7.23.0", - "@react-native/babel-preset": "0.74.84", + "@react-native/babel-preset": "0.74.85", "babel-plugin-react-compiler": "^0.0.0-experimental-592953e-20240517", "babel-plugin-react-native-web": "~0.19.10", "react-refresh": "^0.14.2" @@ -7519,9 +7585,9 @@ } }, "node_modules/cacache": { - "version": "18.0.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.3.tgz", - "integrity": "sha512-qXCd4rh6I07cnDqh8V48/94Tc/WSfj+o3Gn6NZ0aZovS255bUx8O13uKxRFd2eWG0xgsco7+YItQNPaa5E85hg==", + "version": "18.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.4.tgz", + "integrity": "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==", "license": "ISC", "dependencies": { "@npmcli/fs": "^3.1.0", @@ -7551,9 +7617,9 @@ } }, "node_modules/cacache/node_modules/glob": { - "version": "10.4.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.2.tgz", - "integrity": "sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", @@ -7566,21 +7632,15 @@ "bin": { "glob": "dist/esm/bin.mjs" }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/cacache/node_modules/lru-cache": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.3.0.tgz", - "integrity": "sha512-CQl19J/g+Hbjbv4Y3mFNNXFEL/5t/KCg8POCuUqd4rMKjGG+j1ybER83hxV58zL+dFI1PTkt3GNFSHRt+d8qEQ==", - "license": "ISC", - "engines": { - "node": "14 || >=16.14" - } + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" }, "node_modules/cacache/node_modules/minimatch": { "version": "9.0.5", @@ -8200,9 +8260,9 @@ } }, "node_modules/dayjs": { - "version": "1.11.11", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.11.tgz", - "integrity": "sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==", + "version": "1.11.12", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.12.tgz", + "integrity": "sha512-Rt2g+nTbLlDWZTwwrIXjy9MeiZmSDI375FvZs72ngxx8PDC6YXOeR3q5LAuPzjZQxhiWdRKac7RKV+YyQYfYIg==", "license": "MIT" }, "node_modules/debug": { @@ -8839,24 +8899,24 @@ } }, "node_modules/expo": { - "version": "51.0.17", - "resolved": "https://registry.npmjs.org/expo/-/expo-51.0.17.tgz", - "integrity": "sha512-VqLrdVMLdjCUhNuWWGdexqkiscnudY7OACafBrfqIFOejAeKceEaBU5YQIlNlOsKuB7PBMqDkhdZ+dG93Ul4ig==", + "version": "51.0.21", + "resolved": "https://registry.npmjs.org/expo/-/expo-51.0.21.tgz", + "integrity": "sha512-tCKJUw4U4F15FecFPwJTFnAwHZMmUD1Wm7FX0Z/Oj3Jr14MOkom8Lnt2OkBK6BtM91lz33EF9OhgqReX6kchLA==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.20.0", - "@expo/cli": "0.18.21", - "@expo/config": "9.0.1", - "@expo/config-plugins": "8.0.6", + "@expo/cli": "0.18.25", + "@expo/config": "9.0.3", + "@expo/config-plugins": "8.0.8", "@expo/metro-config": "0.18.8", "@expo/vector-icons": "^14.0.0", - "babel-preset-expo": "~11.0.11", + "babel-preset-expo": "~11.0.12", "expo-asset": "~10.0.10", "expo-file-system": "~17.0.1", - "expo-font": "~12.0.7", + "expo-font": "~12.0.9", "expo-keep-awake": "~13.0.2", "expo-modules-autolinking": "1.11.1", - "expo-modules-core": "1.12.18", + "expo-modules-core": "1.12.19", "fbemitter": "^3.0.0", "whatwg-url-without-unicode": "8.0.0-3" }, @@ -8901,9 +8961,9 @@ } }, "node_modules/expo-font": { - "version": "12.0.7", - "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-12.0.7.tgz", - "integrity": "sha512-rbSdpjtT/A3M+u9xchR9tdD+5VGSxptUis7ngX5zfAVp3O5atOcPNSA82Jeo15HkrQE+w/upfFBOvi56lsGdsQ==", + "version": "12.0.9", + "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-12.0.9.tgz", + "integrity": "sha512-seTCyf0tbgkAnp3ZI9ZfK9QVtURQUgFnuj+GuJ5TSnN0XsOtVe1s2RxTvmMgkfuvfkzcjJ69gyRpsZS1cC8hjw==", "license": "MIT", "dependencies": { "fontfaceobserver": "^2.1.0" @@ -9062,18 +9122,18 @@ } }, "node_modules/expo-modules-core": { - "version": "1.12.18", - "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-1.12.18.tgz", - "integrity": "sha512-YhIOJsMNjPvP0tmTbC1MRlxl5q7l21uQQDr1rlXEWHNmI2AEMW0gfr2wXrlB2Tz/oOIx8YqREsj3i0VsYXEaCA==", + "version": "1.12.19", + "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-1.12.19.tgz", + "integrity": "sha512-fFsErN4oMsOdStUVYvyLpl6MX/wbD9yJSqy/Lu7ZRLIPzeKDfGS2jNl8RzryPznRpWmy49X8l40R4osRJLizhg==", "license": "MIT", "dependencies": { "invariant": "^2.2.4" } }, "node_modules/expo-router": { - "version": "3.5.17", - "resolved": "https://registry.npmjs.org/expo-router/-/expo-router-3.5.17.tgz", - "integrity": "sha512-UGSx5vSZISgnhNYsbhbpFuYivS/tFQVoYqsWsFNdU1Cob+KdR2N1C68nDk9S9T6N66JdeCI7fDiEpvR2H1+Amw==", + "version": "3.5.18", + "resolved": "https://registry.npmjs.org/expo-router/-/expo-router-3.5.18.tgz", + "integrity": "sha512-Pd76q9c5wcHU/dbsX2xhBaiJP0LRpB044RLLX3t3DR0MB3gjk+N9Fi7aC+ffyTiJ5uDDgpXdPe8ALL14/GgxbA==", "license": "MIT", "dependencies": { "@expo/metro-runtime": "3.2.1", @@ -10566,16 +10626,13 @@ } }, "node_modules/jackspeak": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz", - "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, - "engines": { - "node": ">=14" - }, "funding": { "url": "https://github.com/sponsors/isaacs" }, @@ -13433,13 +13490,10 @@ } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.3.0.tgz", - "integrity": "sha512-CQl19J/g+Hbjbv4Y3mFNNXFEL/5t/KCg8POCuUqd4rMKjGG+j1ybER83hxV58zL+dFI1PTkt3GNFSHRt+d8qEQ==", - "license": "ISC", - "engines": { - "node": "14 || >=16.14" - } + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" }, "node_modules/path-type": { "version": "4.0.0", @@ -13925,22 +13979,22 @@ "license": "MIT" }, "node_modules/react-native": { - "version": "0.74.2", - "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.74.2.tgz", - "integrity": "sha512-EBMBjPPL4/GjHMP4NqsZabT3gI5WU9cSmduABGAGrd8uIcmTZ5F2Ng9k6gFmRm7n8e8CULxDNu98ZpQfBjl7Bw==", + "version": "0.74.3", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.74.3.tgz", + "integrity": "sha512-UFutCC6WEw6HkxlcpQ2BemKqi0JkwrgDchYB5Svi8Sp4Xwt4HA6LGEjNQgZ+3KM44bjyFRpofQym0uh0jACGng==", "license": "MIT", "dependencies": { "@jest/create-cache-key-function": "^29.6.3", - "@react-native-community/cli": "13.6.8", - "@react-native-community/cli-platform-android": "13.6.8", - "@react-native-community/cli-platform-ios": "13.6.8", - "@react-native/assets-registry": "0.74.84", - "@react-native/codegen": "0.74.84", - "@react-native/community-cli-plugin": "0.74.84", - "@react-native/gradle-plugin": "0.74.84", - "@react-native/js-polyfills": "0.74.84", - "@react-native/normalize-colors": "0.74.84", - "@react-native/virtualized-lists": "0.74.84", + "@react-native-community/cli": "13.6.9", + "@react-native-community/cli-platform-android": "13.6.9", + "@react-native-community/cli-platform-ios": "13.6.9", + "@react-native/assets-registry": "0.74.85", + "@react-native/codegen": "0.74.85", + "@react-native/community-cli-plugin": "0.74.85", + "@react-native/gradle-plugin": "0.74.85", + "@react-native/js-polyfills": "0.74.85", + "@react-native/normalize-colors": "0.74.85", + "@react-native/virtualized-lists": "0.74.85", "abort-controller": "^3.0.0", "anser": "^1.4.9", "ansi-regex": "^5.0.0", @@ -13985,13 +14039,15 @@ } }, "node_modules/react-native-gesture-handler": { - "version": "2.17.1", - "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.17.1.tgz", - "integrity": "sha512-pWfniN6NuVKUq40KACuD3NCMe+bWNQCpD3cmxL6aLSCTwPKYmf7l4Lp0/E/almpjvxhybJZtFLU0w4tmxnIKaA==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.16.1.tgz", + "integrity": "sha512-7AlZS2IWDPQylAYOQle2mI0Xs0omAd/Kr+gAy58hjS14LUhxZAwYMVxcSFMlN9PfzXomoNVhmJBapDWIWUw/NA==", + "license": "MIT", "dependencies": { "@egjs/hammerjs": "^2.0.17", "hoist-non-react-statics": "^3.3.0", "invariant": "^2.2.4", + "lodash": "^4.17.21", "prop-types": "^15.7.2" }, "peerDependencies": { @@ -14014,9 +14070,10 @@ } }, "node_modules/react-native-reanimated": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-3.14.0.tgz", - "integrity": "sha512-TAxLtCfRyC/nOLeWoX/8MhdIF+Fi1e1NbLhIgEm5Kv9/gioAwSNaqLUYxjIClU1RaLwSTE8iaiHNVhTU4TS9DA==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-3.10.1.tgz", + "integrity": "sha512-sfxg6vYphrDc/g4jf/7iJ7NRi+26z2+BszPmvmk0Vnrz6FL7HYljJqTf531F1x6tFmsf+FEAmuCtTUIXFLVo9w==", + "license": "MIT", "dependencies": { "@babel/plugin-transform-arrow-functions": "^7.0.0-0", "@babel/plugin-transform-nullish-coalescing-operator": "^7.0.0-0", @@ -14034,9 +14091,9 @@ } }, "node_modules/react-native-safe-area-context": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-4.10.1.tgz", - "integrity": "sha512-w8tCuowDorUkPoWPXmhqosovBr33YsukkwYCDERZFHAxIkx6qBadYxfeoaJ91nCQKjkNzGrK5qhoNOeSIcYSpA==", + "version": "4.10.5", + "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-4.10.5.tgz", + "integrity": "sha512-Wyb0Nqw2XJ6oZxW/cK8k5q7/UAhg/wbEG6UVf89rQqecDZTDA5ic//P9J6VvJRVZerzGmxWQpVuM7f+PRYUM4g==", "license": "MIT", "peerDependencies": { "react": "*", @@ -14099,6 +14156,12 @@ "node": ">= 10.14.2" } }, + "node_modules/react-native/node_modules/@react-native/normalize-colors": { + "version": "0.74.85", + "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.74.85.tgz", + "integrity": "sha512-pcE4i0X7y3hsAE0SpIl7t6dUc0B0NZLd1yv7ssm4FrLhWG+CGyIq4eFDXpmPU1XHmL5PPySxTAjEMiwv6tAmOw==", + "license": "MIT" + }, "node_modules/react-native/node_modules/@types/istanbul-reports": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", @@ -15602,9 +15665,9 @@ } }, "node_modules/terser": { - "version": "5.31.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.1.tgz", - "integrity": "sha512-37upzU1+viGvuFtBo9NPufCb9dwM0+l9hMxYyWfBA+fbwrPqNJAhbZ6W47bBFnZHKHTUBnMvi87434qq+qnxOg==", + "version": "5.31.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.3.tgz", + "integrity": "sha512-pAfYn3NIZLyZpa83ZKigvj6Rn9c/vd5KfYGX7cN1mnzqgDcxWvrU5ZtAfIKhEXz9nRecw4z3LXkjaq96/qZqAA==", "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -16448,9 +16511,9 @@ } }, "node_modules/ws": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", - "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "license": "MIT", "engines": { "node": ">=10.0.0" diff --git a/package.json b/package.json index 07d09b2..f5509ba 100644 --- a/package.json +++ b/package.json @@ -12,21 +12,21 @@ "@react-navigation/bottom-tabs": "^6.6.0", "@react-navigation/native": "^6.1.17", "@tanstack/react-query": "^5.49.2", - "expo": "~51.0.17", + "expo": "^51.0.21", "expo-constants": "~16.0.2", "expo-linear-gradient": "~13.0.2", "expo-linking": "~6.3.1", - "expo-router": "~3.5.17", + "expo-router": "^3.5.18", "expo-status-bar": "~1.12.1", "graphql": "^15.9.0", "graphql-request": "^6.1.0", "install": "^0.13.0", "react": "18.2.0", "react-dom": "18.2.0", - "react-native": "0.74.2", - "react-native-gesture-handler": "^2.17.1", - "react-native-reanimated": "^3.14.0", - "react-native-safe-area-context": "4.10.1", + "react-native": "^0.74.3", + "react-native-gesture-handler": "^2.16.1", + "react-native-reanimated": "^3.10.1", + "react-native-safe-area-context": "^4.10.5", "react-native-screens": "3.31.1", "react-native-web": "~0.19.10" }, diff --git a/src/app/(tabs)/_layout.jsx b/src/app/(tabs)/_layout.jsx index db17fe9..c7569af 100644 --- a/src/app/(tabs)/_layout.jsx +++ b/src/app/(tabs)/_layout.jsx @@ -36,7 +36,7 @@ export default function TabLayout() { ( ), diff --git a/src/app/(tabs)/workouts.jsx b/src/app/(tabs)/workouts.jsx deleted file mode 100644 index ff4789b..0000000 --- a/src/app/(tabs)/workouts.jsx +++ /dev/null @@ -1,222 +0,0 @@ -import React from 'react'; -import { View, Text, StyleSheet, SafeAreaView, TouchableOpacity, ScrollView, Dimensions } from 'react-native'; -import { MaterialCommunityIcons } from '@expo/vector-icons'; -import { Ionicons } from '@expo/vector-icons'; - -const { height, width } = Dimensions.get('window'); - -const workouts = () => { - return ( - - - - Fitness Dashboard - - - - - - - - - 25 - Workouts - - - - 70 kg - Current Weight - - - - - Previous Workout - - - 22 - May - - - Quads & Deltoids - 7 exercises completed - - - - View Details - - - - - - Next Workout - Upper Body - Tomorrow, 9:00 AM - - Start Workout - - - - - - Add New Workout - - - - - - ); -}; - -const styles = StyleSheet.create({ - container: { - flex: 1, - backgroundColor: '#1E1E1E', - }, - scrollContent: { - minHeight: height - 80, - paddingBottom: 20, - }, - header: { - flexDirection: 'row', - justifyContent: 'space-between', - alignItems: 'center', - paddingHorizontal: 20, - paddingTop: 20, - paddingBottom: 10, - }, - headerTitle: { - fontSize: 24, - fontWeight: 'bold', - color: '#FFFFFF', - }, - notificationIcon: { - padding: 5, - }, - statsContainer: { - flexDirection: 'row', - justifyContent: 'space-between', - marginVertical: 20, - paddingHorizontal: 20, - }, - statCard: { - backgroundColor: '#2A2A2A', - borderRadius: 15, - padding: 15, - alignItems: 'center', - width: '48%', - }, - statValue: { - fontSize: 24, - fontWeight: 'bold', - color: '#FFFFFF', - marginTop: 10, - }, - statLabel: { - fontSize: 14, - color: '#CCCCCC', - marginTop: 5, - }, - previousWorkoutCard: { - backgroundColor: '#2A2A2A', - borderRadius: 15, - padding: 20, - marginHorizontal: 20, - marginBottom: 20, - }, - cardTitle: { - fontSize: 18, - fontWeight: 'bold', - color: '#FFFFFF', - marginBottom: 15, - }, - previousWorkoutContent: { - flexDirection: 'row', - alignItems: 'center', - }, - dateBox: { - backgroundColor: '#FFD700', - borderRadius: 10, - padding: 10, - alignItems: 'center', - marginRight: 15, - }, - dateNumber: { - color: '#1E1E1E', - fontSize: 18, - fontWeight: 'bold', - }, - dateMonth: { - color: '#1E1E1E', - fontSize: 14, - }, - workoutInfo: { - flex: 1, - }, - workoutInfoTitle: { - fontSize: 16, - fontWeight: 'bold', - color: '#FFFFFF', - }, - workoutInfoDetails: { - fontSize: 14, - color: '#CCCCCC', - marginTop: 5, - }, - detailsButton: { - flexDirection: 'row', - alignItems: 'center', - justifyContent: 'flex-end', - marginTop: 15, - }, - detailsButtonText: { - color: '#FFD700', - marginRight: 5, - }, - upcomingWorkoutCard: { - backgroundColor: '#2A2A2A', - borderRadius: 15, - padding: 20, - marginHorizontal: 20, - marginBottom: 20, - }, - upcomingWorkoutTitle: { - fontSize: 20, - fontWeight: 'bold', - color: '#FFFFFF', - marginBottom: 5, - }, - upcomingWorkoutDate: { - fontSize: 14, - color: '#CCCCCC', - marginBottom: 15, - }, - startButton: { - backgroundColor: '#FFD700', - borderRadius: 25, - paddingVertical: 12, - alignItems: 'center', - }, - startButtonText: { - color: '#1E1E1E', - fontSize: 16, - fontWeight: 'bold', - }, - addWorkoutButton: { - flexDirection: 'row', - alignItems: 'center', - justifyContent: 'center', - backgroundColor: '#FFD700', - borderRadius: 25, - paddingVertical: 12, - marginHorizontal: 20, - }, - addWorkoutButtonText: { - color: '#1E1E1E', - fontSize: 16, - fontWeight: 'bold', - marginLeft: 10, - }, - -}); - -export default workouts; diff --git a/src/app/test.jsx b/src/app/test.jsx deleted file mode 100644 index c2ae4dc..0000000 --- a/src/app/test.jsx +++ /dev/null @@ -1,12 +0,0 @@ -import { View, Text } from 'react-native' -import React from 'react' - -const test = () => { - return ( - - test - - ) -} - -export default test \ No newline at end of file diff --git a/src/app/user_workouts/WorkoutsList.jsx b/src/app/user_workouts/WorkoutsList.jsx index dc4ee6e..dd9f97f 100644 --- a/src/app/user_workouts/WorkoutsList.jsx +++ b/src/app/user_workouts/WorkoutsList.jsx @@ -5,13 +5,61 @@ import { Dimensions, SafeAreaView, ScrollView, + ActivityIndicator, + TouchableOpacity, } from "react-native"; -import React from "react"; +import { Link, useRouter } from "expo-router"; +import { gql } from 'graphql-tag'; +import { useQuery } from "@tanstack/react-query"; +import client from "../../graphqlClient"; import BackButton from "../../components/BackButton"; +import WorkoutCard from "../../components/WorkoutCard"; +import { useNavigation } from "@react-navigation/native"; + const { height, width } = Dimensions.get("window"); +const WorkoutsListQuery = gql` + query MyQuery { + workouts { + documents { + times_completed + workout_name + exercises + _id + tonnage + days + } + } + } +`; + const WorkoutsList = () => { + + const navigation = useNavigation(); + + const { data, isLoading, error } = useQuery({ + queryKey: ['workouts'], + queryFn: () => client.request(WorkoutsListQuery), + }); + + if (isLoading) { + return ; + } + + if (error) { + return Failed to fetch data.; + } + + const workouts = data.workouts.documents; + + const router = useRouter(); + + const handleWorkoutPress = (workout) => { + navigation.navigate('/user_workouts/[workout]', { id: workout._id, workoutData: workout }); + // return router.push('/user_workouts/[workout]', { id: workout._id, workoutData: workout }); + }; + return ( @@ -19,6 +67,18 @@ const WorkoutsList = () => { Workouts + + {workouts.map((workout) => ( + handleWorkoutPress(workout)} + > + + + ))} + + + ); @@ -49,6 +109,12 @@ const styles = StyleSheet.create({ fontSize: 40, fontWeight: "bold", color: "#FFFFFF", - marginHorizontal: 20, // Add margin to separate the title from the button + marginHorizontal: 20, + }, + errorText: { + color: "#FFFFFF", + fontSize: 16, + textAlign: 'center', + marginTop: 20, }, -}); +}); \ No newline at end of file diff --git a/src/app/user_workouts/[workout].jsx b/src/app/user_workouts/[workout].jsx new file mode 100644 index 0000000..1c62caf --- /dev/null +++ b/src/app/user_workouts/[workout].jsx @@ -0,0 +1,157 @@ + +import { useLocalSearchParams } from 'expo-router'; +import { View, Text } from 'react-native'; + +export default function WorkoutScreen() { + const { id, workoutData } = useLocalSearchParams(); + console.log(id, workoutData); + return ( + + Workout ID: {id} + Workout Name: {workoutData.workout_name} + {/* Display other workout details */} + + ); +} + + + +// // WorkoutDetailsModal.js +// import React from "react"; +// import { +// Modal, +// View, +// Text, +// StyleSheet, +// TouchableOpacity, +// ScrollView, +// TouchableWithoutFeedback, +// } from "react-native"; +// import { Ionicons } from "@expo/vector-icons"; +// import { SafeAreaView } from "react-native-safe-area-context"; + +// const WorkoutScreen = ({ visible, workout, onClose }) => { +// return ( +// +// +// +// +// +// {workout.workout_name} +// +// +// +// +// Completed {workout.times_completed} times +// +// +// +// +// +// Total Tonnage: {workout.tonnage} +// +// +// +// +// {workout.days.join(", ")} +// +// +// Exercises: +// {Object.entries(workout.exercises).map( +// ([exerciseName, details]) => ( +// +// +// {exerciseName} +// +// ) +// )} +// +// +// Close +// +// +// +// +// +// ); +// }; + +// const styles = StyleSheet.create({ +// modalOverlay: { +// flex: 1, +// backgroundColor: "#1E1E1E", +// justifyContent: "center", +// alignItems: "center", +// }, +// modalContent: { +// backgroundColor: "#1E1E1E", +// borderRadius: 20, +// padding: 20, +// width: "90%", +// maxHeight: "80%", +// borderWidth: 2, +// borderColor: "#FFD700", +// }, +// modalTitle: { +// fontSize: 28, +// fontWeight: "bold", +// color: "#FFD700", +// marginBottom: 20, +// textAlign: "center", +// }, +// infoContainer: { +// marginBottom: 20, +// }, +// infoItem: { +// flexDirection: "row", +// alignItems: "center", +// marginBottom: 10, +// }, +// infoText: { +// fontSize: 16, +// color: "#FFD700", +// marginLeft: 10, +// }, +// modalSubtitle: { +// fontSize: 22, +// fontWeight: "bold", +// color: "#FFD700", +// marginTop: 10, +// marginBottom: 15, +// }, +// exerciseItem: { +// flexDirection: "row", +// alignItems: "center", +// marginBottom: 10, +// }, +// modalExercise: { +// fontSize: 18, +// color: "#FFD700", +// marginLeft: 10, +// }, +// closeButton: { +// backgroundColor: "#FFD700", +// padding: 12, +// borderRadius: 10, +// alignSelf: "center", +// marginTop: 20, +// width: "100%", +// }, +// closeButtonText: { +// color: "#1E1E1E", +// fontWeight: "bold", +// fontSize: 16, +// textAlign: "center", +// }, +// }); + +// export default WorkoutScreen; diff --git a/src/app/user_workouts/_layout.jsx b/src/app/user_workouts/_layout.jsx index dede6fc..106bb24 100644 --- a/src/app/user_workouts/_layout.jsx +++ b/src/app/user_workouts/_layout.jsx @@ -4,6 +4,8 @@ export default function homeLayout() { return ( + + ); } diff --git a/src/app/user_workouts/test.jsx b/src/app/user_workouts/test.jsx new file mode 100644 index 0000000..911eb59 --- /dev/null +++ b/src/app/user_workouts/test.jsx @@ -0,0 +1,18 @@ +import { View, Platform, Text } from 'react-native'; +import { Link, router } from 'expo-router'; +import { StatusBar } from 'expo-status-bar'; + +export default function Test() { + // If the page was reloaded or navigated to directly, then the modal should be presented as + // a full screen page. You may need to change the UI to account for this. + const isPresented = router.canGoBack(); + return ( + + {/* Use `../` as a simple way to navigate to the root. This is not analogous to "goBack". */} + {!isPresented && Dismiss} + {/* Native modals have dark backgrounds on iOS. Set the status bar to light content and add a fallback for other platforms with auto. */} + + Hello World!!! + + ); +} diff --git a/src/components/BackButton.jsx b/src/components/BackButton.jsx index 42808cd..a0490e5 100644 --- a/src/components/BackButton.jsx +++ b/src/components/BackButton.jsx @@ -4,20 +4,17 @@ import { useNavigation } from "@react-navigation/native"; import { Ionicons } from "@expo/vector-icons"; import { StyleSheet } from "react-native"; - const BackButton = () => { const navigation = useNavigation(); return ( - - navigation.goBack()} - style={styles.backButton} - > - - Back - - + navigation.goBack()} + style={styles.backButton} + > + + Back + ); }; @@ -31,9 +28,9 @@ const styles = StyleSheet.create({ borderRadius: 10, }, backButtonTitle: { - color: '#1E1E1E', + color: "#1E1E1E", fontSize: 20, - fontWeight: 'bold', + fontWeight: "bold", marginLeft: 10, }, }); diff --git a/src/components/DashboardInfo.jsx b/src/components/DashboardInfo.jsx deleted file mode 100644 index efb4492..0000000 --- a/src/components/DashboardInfo.jsx +++ /dev/null @@ -1,107 +0,0 @@ -import { View, Text } from "react-native"; -import React from "react"; -import { Pressable, StyleSheet } from "react-native"; -import { AntDesign } from "@expo/vector-icons"; -import { gql } from "graphql-request"; - -// const dashboardQuery = gql - -const DashboardInfo = () => { - return ( - - - - - 25 - workouts - completed - - - - - - {" "} - 103k kg - - tonnage - lifted - - - - - - {" "} - 70 kg - - current - weight - - - - - {/* Previous Workout */} - - - - - 22 - - May - - - Previous Workout - - Quads & Deltoids - - 7 exercises completed - - - - - - - - ); -}; - -export default DashboardInfo; - -const styles = StyleSheet.create({ - row: { - flexDirection: "row", - borderColor: "gainsboro", - }, - cell: { - flex: 1, - flexDirection: "column", - borderColor: "gainsboro", - borderWidth: 1, - textAlign: "center", - }, - info: { - margin: 10, - }, - bigNumber: { - fontSize: 30, - }, - text: { - fontSize: 15, - color: "#676968", - fontWeight: "500", - }, - prevWorkoutDate: { - backgroundColor: "royalblue", - marginHorizontal: 15, - padding: 10, - borderRadius: 2, - }, -}); - diff --git a/src/components/WorkoutCard.jsx b/src/components/WorkoutCard.jsx new file mode 100644 index 0000000..db4e7af --- /dev/null +++ b/src/components/WorkoutCard.jsx @@ -0,0 +1,83 @@ +// WorkoutCard.js +import React, { useState } from "react"; +import { TouchableOpacity, View, Text, StyleSheet } from "react-native"; +import { Ionicons } from "@expo/vector-icons"; // Make sure to install expo vector icons +import { useRouter } from "expo-router"; + +const WorkoutCard = ({ workout }) => { + + const router = useRouter(); + + const handlePress = () => { + // setModalVisible(true); + return router.push('/user_workouts/[workout]]'); + }; + + const exerciseCount = Object.keys(workout.exercises).length; + + return ( + <> + + + {workout.workout_name} + + + + + {exerciseCount} {exerciseCount === 1 ? "Exercise" : "Exercises"} + + + + + + {workout.times_completed}{" "} + {workout.times_completed === 1 ? "time" : "times"} + + + + + + + + ); +}; + +const styles = StyleSheet.create({ + card: { + backgroundColor: "#2A2A2A", + borderRadius: 15, + padding: 20, + marginVertical: 10, + marginHorizontal: 20, + shadowColor: "#000", + shadowOffset: { width: 0, height: 2 }, + shadowOpacity: 0.25, + shadowRadius: 3.84, + elevation: 5, + flexDirection: "row", + justifyContent: "space-between", + alignItems: "center", + }, + content: { + flex: 1, + }, + title: { + fontSize: 30, + fontWeight: "bold", + color: "#FFFFFF", + marginBottom: 10, + }, + infoContainer: {}, + infoItem: { + flexDirection: "row", + alignItems: "center", + marginBottom: 10, + }, + infoText: { + fontSize: 15, + color: "#FFD700", + marginLeft: 5, + }, +}); + +export default WorkoutCard; diff --git a/src/getDate.jsx b/src/getDate.jsx deleted file mode 100644 index e69de29..0000000