feat(profile): add help screen and fix upload field name
All checks were successful
Frontend CI / ota (ios) (push) Successful in 2m46s
Frontend CI / ota (android) (push) Successful in 2m50s
Frontend CI / build-and-push-web (push) Successful in 3m54s
Frontend CI / build-android-apk (push) Successful in 40m29s

Add dedicated Help screen to profile tab with navigation integration.
Refactor SettingsScreen to navigate to HelpScreen instead of showing placeholder alert.
Fix API upload method to use correct field names ("file" for documents, "image" for media)
based on endpoint path, resolving upload failures for file uploads.
This commit is contained in:
lafay
2026-06-22 07:56:06 +08:00
parent 761f315a60
commit 2bad59afbb
9 changed files with 516 additions and 99 deletions

172
package-lock.json generated
View File

@@ -8,7 +8,7 @@
"name": "with_you",
"version": "1.0.1",
"dependencies": {
"@expo/ui": "~56.0.17",
"@expo/ui": "~56.0.18",
"@expo/vector-icons": "^15.1.1",
"@livekit/react-native": "^2.11.0",
"@livekit/react-native-webrtc": "^144.1.0",
@@ -18,31 +18,31 @@
"@types/react": "~19.2.14",
"axios": "^1.16.1",
"date-fns": "^4.4.0",
"expo": "~56.0.11",
"expo-background-task": "~56.0.18",
"expo": "~56.0.12",
"expo-background-task": "~56.0.19",
"expo-callkit-telecom": "^0.3.9",
"expo-camera": "~56.0.8",
"expo-constants": "~56.0.18",
"expo-dev-client": "~56.0.20",
"expo-document-picker": "~56.0.4",
"expo-file-system": "~56.0.8",
"expo-font": "~56.0.6",
"expo-font": "~56.0.7",
"expo-haptics": "~56.0.3",
"expo-image": "~56.0.6",
"expo-image-picker": "~56.0.17",
"expo-image-picker": "~56.0.18",
"expo-intent-launcher": "~56.0.4",
"expo-linear-gradient": "~56.0.4",
"expo-linking": "~56.0.14",
"expo-media-library": "~56.0.7",
"expo-notifications": "~56.0.17",
"expo-router": "~56.2.10",
"expo-notifications": "~56.0.18",
"expo-router": "~56.2.11",
"expo-splash-screen": "~56.0.10",
"expo-sqlite": "~56.0.5",
"expo-status-bar": "~56.0.4",
"expo-system-ui": "~56.0.5",
"expo-task-manager": "~56.0.18",
"expo-task-manager": "~56.0.19",
"expo-updates": "~56.0.19",
"expo-video": "~56.1.3",
"expo-video": "~56.1.4",
"jcore-react-native": "^2.3.6",
"jpush-react-native": "^3.2.7",
"katex": "^0.17.0",
@@ -1427,12 +1427,12 @@
}
},
"node_modules/@expo/config-plugins": {
"version": "56.0.8",
"resolved": "https://registry.npmmirror.com/@expo/config-plugins/-/config-plugins-56.0.8.tgz",
"integrity": "sha512-phTuyBhgVLfqUHMjQkAfRtbyoY6yTxoKja1awtpVnEkoJDxPJuXx1KX5uvq1eZtt4bJQ08OBJ6P95INqRSHpRg==",
"version": "56.0.9",
"resolved": "https://registry.npmmirror.com/@expo/config-plugins/-/config-plugins-56.0.9.tgz",
"integrity": "sha512-/6a/S9USwx8OC9tGjHxbviLFiBHyueN3aoNWMLvWDEJoZ1CIVW800ZBzwXq/FYNK2qzcN1LxFmQtzD1zeFQKNA==",
"license": "MIT",
"dependencies": {
"@expo/config-types": "^56.0.5",
"@expo/config-types": "^56.0.6",
"@expo/json-file": "~10.2.0",
"@expo/plist": "^0.7.0",
"@expo/require-utils": "^56.1.3",
@@ -1460,9 +1460,9 @@
}
},
"node_modules/@expo/config-types": {
"version": "56.0.5",
"resolved": "https://registry.npmmirror.com/@expo/config-types/-/config-types-56.0.5.tgz",
"integrity": "sha512-GsAHO/MwW9ZRdgnmyfRXqVGLCP/zejD6rWnp5OROp8mBGRObKm4HfrjlUyT1skjMwCj1OrURx9ZfIc6yeBAkIA==",
"version": "56.0.6",
"resolved": "https://registry.npmmirror.com/@expo/config-types/-/config-types-56.0.6.tgz",
"integrity": "sha512-4Y6Aum5J4Re5NnxGVofRNe1aDwUBOmWhQYkynZsqzRtX/zEA1ADUeyHXuEckv9YD9djiyT7bKtLt5gKL3mA6VQ==",
"license": "MIT"
},
"node_modules/@expo/config/node_modules/semver": {
@@ -1610,12 +1610,12 @@
}
},
"node_modules/@expo/inline-modules": {
"version": "0.0.11",
"resolved": "https://registry.npmmirror.com/@expo/inline-modules/-/inline-modules-0.0.11.tgz",
"integrity": "sha512-ZlIfKL61DPnW8YUTdMEjMA31xrDDV6p7Xi8rWYyhd5qXBV8MwGwjuJ7vKeaVaMjRqxJk1N9lv7zlfyvQpRCNNw==",
"version": "0.0.12",
"resolved": "https://registry.npmmirror.com/@expo/inline-modules/-/inline-modules-0.0.12.tgz",
"integrity": "sha512-SNIZr/HWfIQPTZBwmukItxpc7ws1SgMUywYq1dnQvDknQDjJcuWAasIRFUjsK15yQ1xb4G5CP7VHtbN3V4lENg==",
"license": "MIT",
"dependencies": {
"@expo/config-plugins": "~56.0.8"
"@expo/config-plugins": "~56.0.9"
}
},
"node_modules/@expo/json-file": {
@@ -1953,27 +1953,27 @@
}
},
"node_modules/@expo/prebuild-config": {
"version": "56.0.15",
"resolved": "https://registry.npmmirror.com/@expo/prebuild-config/-/prebuild-config-56.0.15.tgz",
"integrity": "sha512-6GC+QjdCkzp/5wjsqgfu/B2+2yf5MyZMtzf9szIPrLt9uKhzV2PdyM0vU0kvbj1YT8weHCtO7bsrzimman0sjA==",
"version": "56.0.16",
"resolved": "https://registry.npmmirror.com/@expo/prebuild-config/-/prebuild-config-56.0.16.tgz",
"integrity": "sha512-ce9ENfPWO4WUWUVQz0OaqL3KYZ7YofP8O35ncnn7CHCaKwQ7BqxcCGJbh+qvP1UjlWeNB3CjHPrXXJ3bnZwlJw==",
"license": "MIT",
"dependencies": {
"@expo/config": "~56.0.9",
"@expo/config-plugins": "~56.0.8",
"@expo/config-types": "^56.0.5",
"@expo/config-plugins": "~56.0.9",
"@expo/config-types": "^56.0.6",
"@expo/image-utils": "^0.10.1",
"@expo/json-file": "^10.2.0",
"@react-native/normalize-colors": "0.85.3",
"debug": "^4.3.1",
"expo-modules-autolinking": "~56.0.15",
"expo-modules-autolinking": "~56.0.16",
"resolve-from": "^5.0.0",
"semver": "^7.6.0"
}
},
"node_modules/@expo/prebuild-config/node_modules/semver": {
"version": "7.8.4",
"resolved": "https://registry.npmmirror.com/semver/-/semver-7.8.4.tgz",
"integrity": "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==",
"version": "7.8.5",
"resolved": "https://registry.npmmirror.com/semver/-/semver-7.8.5.tgz",
"integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==",
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
@@ -2032,9 +2032,9 @@
"license": "MIT"
},
"node_modules/@expo/ui": {
"version": "56.0.17",
"resolved": "https://registry.npmmirror.com/@expo/ui/-/ui-56.0.17.tgz",
"integrity": "sha512-Jos9oGzurMDngrSWJesX3LSykPRvkUdANxtq2sPKBc6bAjadtZJCkthAYMaE3P9L5xrzbNRFo+2O76cRP0iYPw==",
"version": "56.0.18",
"resolved": "https://registry.npmmirror.com/@expo/ui/-/ui-56.0.18.tgz",
"integrity": "sha512-2XgH5obigGtXm8zlb/V3g87NSiIcBcJ1xoQOEQYPoExL1DCNsHzaIecTh1XG/f/45ardo4OZNJwpbfYJ9X3qrQ==",
"license": "MIT",
"dependencies": {
"sf-symbols-typescript": "^2.1.0",
@@ -6400,15 +6400,15 @@
}
},
"node_modules/expo": {
"version": "56.0.11",
"resolved": "https://registry.npmmirror.com/expo/-/expo-56.0.11.tgz",
"integrity": "sha512-YqF+q+JqfobDU5yFym3h1vQqzbl7rFiDB4wAJEyK6NK+KLeyf4pfzydQcNTyqLXQKcQBG1reBJExfDShoAYTzw==",
"version": "56.0.12",
"resolved": "https://registry.npmmirror.com/expo/-/expo-56.0.12.tgz",
"integrity": "sha512-FxgdI/Yqva6iJOThZIHfvxlKPxs4EC4uScUnEswwSArR/Fj9k430O13R590LcOQTsdNsjIs+GBHwjfoAY6vmAQ==",
"license": "MIT",
"dependencies": {
"@babel/runtime": "^7.20.0",
"@expo/cli": "^56.1.15",
"@expo/cli": "^56.1.16",
"@expo/config": "~56.0.9",
"@expo/config-plugins": "~56.0.8",
"@expo/config-plugins": "~56.0.9",
"@expo/devtools": "~56.0.2",
"@expo/dom-webview": "~56.0.5",
"@expo/fingerprint": "^0.19.4",
@@ -6421,10 +6421,10 @@
"expo-asset": "~56.0.17",
"expo-constants": "~56.0.18",
"expo-file-system": "~56.0.8",
"expo-font": "~56.0.6",
"expo-font": "~56.0.7",
"expo-keep-awake": "~56.0.3",
"expo-modules-autolinking": "~56.0.15",
"expo-modules-core": "~56.0.16",
"expo-modules-autolinking": "~56.0.16",
"expo-modules-core": "~56.0.17",
"pretty-format": "^29.7.0",
"react-refresh": "^0.14.2",
"whatwg-url-minimum": "^0.1.2"
@@ -6486,12 +6486,12 @@
}
},
"node_modules/expo-background-task": {
"version": "56.0.18",
"resolved": "https://registry.npmmirror.com/expo-background-task/-/expo-background-task-56.0.18.tgz",
"integrity": "sha512-jfEvLq/hZUWkef+lOt0sbe/Jd8wnK0fMgqsZhD1ulWk1IKB0AWsjmJ0iCTDMD9L9MDztpvKf2g/ygzljmo2eGA==",
"version": "56.0.19",
"resolved": "https://registry.npmmirror.com/expo-background-task/-/expo-background-task-56.0.19.tgz",
"integrity": "sha512-TuFqorlz4HXtWAwQGcg+/URXpBwjwNsAxdis/6m5mhtgBIVbX2gYYv/s6eIf8lh2cAI1zFkb+/bHHuC2aOAGGA==",
"license": "MIT",
"dependencies": {
"expo-task-manager": "~56.0.18"
"expo-task-manager": "~56.0.19"
},
"peerDependencies": {
"expo": "*"
@@ -6622,9 +6622,9 @@
}
},
"node_modules/expo-font": {
"version": "56.0.6",
"resolved": "https://registry.npmmirror.com/expo-font/-/expo-font-56.0.6.tgz",
"integrity": "sha512-D4s72Aei844C2s8Vy61qMr6wLEjv6BMrXA1oyRQ0x8LJBbpm5gyogUohc0lABUURVLCqsnBIDdztegl3hktmmg==",
"version": "56.0.7",
"resolved": "https://registry.npmmirror.com/expo-font/-/expo-font-56.0.7.tgz",
"integrity": "sha512-hpU/vRwPzsby9lPGkA4blDqLIIXYzoWnCZHr6PxvcWbY/uPObAiyhh6q+e0WYsB65SthK+PLH95jEnVag7fwEg==",
"license": "MIT",
"dependencies": {
"fontfaceobserver": "^2.1.0"
@@ -6685,9 +6685,9 @@
}
},
"node_modules/expo-image-picker": {
"version": "56.0.17",
"resolved": "https://registry.npmmirror.com/expo-image-picker/-/expo-image-picker-56.0.17.tgz",
"integrity": "sha512-/RojW1ptyQNV89hEeDdaoHCkn38+546MqakMyB0acFf0HLh5ZI7wxQCHkxr16qjuQMy11M+96GlX9Z6vgXF7Nw==",
"version": "56.0.18",
"resolved": "https://registry.npmmirror.com/expo-image-picker/-/expo-image-picker-56.0.18.tgz",
"integrity": "sha512-sCjQ8M27bhGUv2vUavIE+uWdYo79b2D7Q5h9B66BSDZ+Rd8YyLVSf7vYGfIzQ7nMVoENZ6c4xo/JiDkEeQ9iTg==",
"license": "MIT",
"dependencies": {
"expo-image-loader": "~56.0.3"
@@ -6769,9 +6769,9 @@
}
},
"node_modules/expo-modules-autolinking": {
"version": "56.0.15",
"resolved": "https://registry.npmmirror.com/expo-modules-autolinking/-/expo-modules-autolinking-56.0.15.tgz",
"integrity": "sha512-WqpBFwLzn7DsrUkWltIjVmAjwuI1VdQ2jRMlvk1nh2kVadwdJBkSjUBQWRifsEePNhiMT/rFOovBolUU/ARt5w==",
"version": "56.0.16",
"resolved": "https://registry.npmmirror.com/expo-modules-autolinking/-/expo-modules-autolinking-56.0.16.tgz",
"integrity": "sha512-9JnL4N46P8ubDpDIfWolDn7nxU2j1rY67xY/dNVuyH0m+HG+r/JI16VYtjIf4COpZtEuFo4D3h3MBeFzGucMnw==",
"license": "MIT",
"dependencies": {
"@expo/require-utils": "^56.1.3",
@@ -6793,13 +6793,13 @@
}
},
"node_modules/expo-modules-core": {
"version": "56.0.16",
"resolved": "https://registry.npmmirror.com/expo-modules-core/-/expo-modules-core-56.0.16.tgz",
"integrity": "sha512-IVdT0CnqOpQCPdemA5rb50CPbbhWeJePnvuH0yUmOmyMkNky8WVOdRQtVicoIv4CCG5hDrzPIxULD4YOHZ5CHg==",
"version": "56.0.17",
"resolved": "https://registry.npmmirror.com/expo-modules-core/-/expo-modules-core-56.0.17.tgz",
"integrity": "sha512-5J8whnT7Ccp+BrFClLmpF76omBqn95VZExroTm01Dgjm4vpty1Rb7U3we+ZUceNHtRd07Lw30u7FNfDgIhEbRQ==",
"license": "MIT",
"dependencies": {
"@expo/expo-modules-macros-plugin": "0.2.2",
"expo-modules-jsi": "~56.0.9",
"expo-modules-jsi": "~56.0.10",
"invariant": "^2.2.4"
},
"peerDependencies": {
@@ -6814,18 +6814,18 @@
}
},
"node_modules/expo-modules-jsi": {
"version": "56.0.9",
"resolved": "https://registry.npmmirror.com/expo-modules-jsi/-/expo-modules-jsi-56.0.9.tgz",
"integrity": "sha512-2lfDkRcsP/Qh2upS+nu0MS0tfGsghc6ehTivzbgM5nJz0MGYhAJxCJSeendWM+aOQutQAwzsoxrNT0nW8lRAwA==",
"version": "56.0.10",
"resolved": "https://registry.npmmirror.com/expo-modules-jsi/-/expo-modules-jsi-56.0.10.tgz",
"integrity": "sha512-fHZcFpYO/o62GYa6fJyAQJZcAShzhoN0iMMDzbr7vD3ewET6e1vAlTonbEakN9F0VHEgBFJ4NREy87uwVcpCuA==",
"license": "MIT",
"peerDependencies": {
"react-native": "*"
}
},
"node_modules/expo-notifications": {
"version": "56.0.17",
"resolved": "https://registry.npmmirror.com/expo-notifications/-/expo-notifications-56.0.17.tgz",
"integrity": "sha512-Yn6JUKmoBDkQeznbuUn4cHF2u44r1ErJTneW65MBFt7NLG8U8/VGQ4bBVwswm5nPH1/V92UoXPgvCssScPFRDg==",
"version": "56.0.18",
"resolved": "https://registry.npmmirror.com/expo-notifications/-/expo-notifications-56.0.18.tgz",
"integrity": "sha512-HHnrwyCLC5srFojcHYS2KskbNroy9o2fwPKdyhjrdjjrBu4sNRKm4LepcuZjDy98cZKEm89WIPW8O45vut8Rgw==",
"license": "MIT",
"dependencies": {
"@expo/image-utils": "^0.10.1",
@@ -6841,15 +6841,15 @@
}
},
"node_modules/expo-router": {
"version": "56.2.10",
"resolved": "https://registry.npmmirror.com/expo-router/-/expo-router-56.2.10.tgz",
"integrity": "sha512-u7WcdsFAjSrQS7Bdb1VbNPE3xNcd/BZ6qXSS31UAJKhaYIb+ik3jJSy/W5kY3qKipwbwlo3CSb1WnZ2XYs7F+Q==",
"version": "56.2.11",
"resolved": "https://registry.npmmirror.com/expo-router/-/expo-router-56.2.11.tgz",
"integrity": "sha512-08DBTrKv3QanOc9u1JNxSEChW9c/qNFbQ0dO28OLvufWWfdSRkSdHmh365D2FgoZg1qaOzZPCDuL3tM6nGSfkQ==",
"license": "MIT",
"dependencies": {
"@expo/log-box": "^56.0.13",
"@expo/metro-runtime": "^56.0.15",
"@expo/schema-utils": "^56.0.0",
"@expo/ui": "^56.0.17",
"@expo/ui": "^56.0.18",
"@radix-ui/react-slot": "^1.2.0",
"@radix-ui/react-tabs": "^1.1.12",
"@react-native-masked-view/masked-view": "^0.3.2",
@@ -7005,9 +7005,9 @@
}
},
"node_modules/expo-task-manager": {
"version": "56.0.18",
"resolved": "https://registry.npmmirror.com/expo-task-manager/-/expo-task-manager-56.0.18.tgz",
"integrity": "sha512-abTKDhlZ572wSwNuZ9HkDw6rl+kKLq0TkqheIEbGoRkMQVEGV3D5GYYY0gg84TO/HvAqiipdcBFQH8+9uHj70Q==",
"version": "56.0.19",
"resolved": "https://registry.npmmirror.com/expo-task-manager/-/expo-task-manager-56.0.19.tgz",
"integrity": "sha512-eDeBR8vXlOAXBck29AzPl+tv4QlJus+cgkQ0TGOBqAlgRPWPWd7ebhqrhb0KRieUZIvzlycfcxjHR/+AiEiMHA==",
"license": "MIT",
"dependencies": {
"unimodules-app-loader": "~56.0.0"
@@ -7070,9 +7070,9 @@
"license": "MIT"
},
"node_modules/expo-video": {
"version": "56.1.3",
"resolved": "https://registry.npmmirror.com/expo-video/-/expo-video-56.1.3.tgz",
"integrity": "sha512-Ht2BMdx11RnGKxILL/P4t/hl4kqWXq1vLaoOrLZlDed+IXgf8hdDI9jmtEEgsIHwf3jaHFXblJCRVuS9mIxKAw==",
"version": "56.1.4",
"resolved": "https://registry.npmmirror.com/expo-video/-/expo-video-56.1.4.tgz",
"integrity": "sha512-8mXZOnb7ZsWneDlcnRf0M2Ox9eb5dGnNiGiCkj9bwLPY+3jM2Pc1t5ymNUuhw8lSpT/rOnE0J0/81Y3+0k2Zcw==",
"license": "MIT",
"peerDependencies": {
"expo": "*",
@@ -7081,18 +7081,18 @@
}
},
"node_modules/expo/node_modules/@expo/cli": {
"version": "56.1.15",
"resolved": "https://registry.npmmirror.com/@expo/cli/-/cli-56.1.15.tgz",
"integrity": "sha512-ik6++YzURB2d/mSEfYwbuNa19uOWZwVHy9THCQ/pPr6mzplKl4w9I4nlYF9lx7oluNC3NvxsSZ8/rgpVKEOJTA==",
"version": "56.1.16",
"resolved": "https://registry.npmmirror.com/@expo/cli/-/cli-56.1.16.tgz",
"integrity": "sha512-VBQn0mqAwc67b9Cn0RVXyeodghomAx5xGRhA/bXaQzuxDjMQk0zIOb6pXMZX7yiIwJW66UZt/zQiJNSv6aWJYw==",
"license": "MIT",
"dependencies": {
"@expo/code-signing-certificates": "^0.0.6",
"@expo/config": "~56.0.9",
"@expo/config-plugins": "~56.0.8",
"@expo/config-plugins": "~56.0.9",
"@expo/devcert": "^1.2.1",
"@expo/env": "~2.3.0",
"@expo/image-utils": "^0.10.1",
"@expo/inline-modules": "^0.0.11",
"@expo/inline-modules": "^0.0.12",
"@expo/json-file": "^10.2.0",
"@expo/log-box": "^56.0.13",
"@expo/metro": "~56.0.0",
@@ -7101,9 +7101,9 @@
"@expo/osascript": "^2.6.0",
"@expo/package-manager": "^1.12.1",
"@expo/plist": "^0.7.0",
"@expo/prebuild-config": "^56.0.15",
"@expo/prebuild-config": "^56.0.16",
"@expo/require-utils": "^56.1.3",
"@expo/router-server": "^56.0.13",
"@expo/router-server": "^56.0.14",
"@expo/schema-utils": "^56.0.0",
"@expo/spawn-async": "^1.8.0",
"@expo/ws-tunnel": "^2.0.0",
@@ -7368,9 +7368,9 @@
}
},
"node_modules/expo/node_modules/semver": {
"version": "7.8.4",
"resolved": "https://registry.npmmirror.com/semver/-/semver-7.8.4.tgz",
"integrity": "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==",
"version": "7.8.5",
"resolved": "https://registry.npmmirror.com/semver/-/semver-7.8.5.tgz",
"integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==",
"license": "ISC",
"bin": {
"semver": "bin/semver.js"
@@ -11318,9 +11318,9 @@
}
},
"node_modules/npm-package-arg/node_modules/semver": {
"version": "7.8.4",
"resolved": "https://registry.npmmirror.com/semver/-/semver-7.8.4.tgz",
"integrity": "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==",
"version": "7.8.5",
"resolved": "https://registry.npmmirror.com/semver/-/semver-7.8.5.tgz",
"integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==",
"license": "ISC",
"bin": {
"semver": "bin/semver.js"