- App.tsx: replaced dev console with AuthProvider + AppNavigator
- Auth: Login, Register, ResetPassword screens via demo-service
- Conversations: reactive WatermelonDB subscription with user profile enrichment
- Chat: SingleChat + GroupChat with full media (image/video/audio/file), revoke, pull-up load more
- Contacts: local contacts list + UserSearch with debounced fuzzy search
- Groups: GroupList, CreateGroup (fuzzy member picker), GroupMembers, GroupSettings
- Profile: view + EditProfile (nickname, gender)
- MessageSearch: local DB full-text search across conversations
- ChatInput: text, 20-emoji picker, image/video/audio/file send, tap-to-record audio
- DisconnectBanner: connection status with reconnect
- AuthContext: uses await XuqmSDK.initialize({ appId, serverUrl }) for remote config
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
54 行
1.7 KiB
JSON
54 行
1.7 KiB
JSON
{
|
|
"name": "com.xuqm.rnchatdemo",
|
|
"version": "0.0.1",
|
|
"private": true,
|
|
"scripts": {
|
|
"android": "react-native run-android",
|
|
"ios": "react-native run-ios",
|
|
"lint": "eslint .",
|
|
"start": "react-native start",
|
|
"test": "jest"
|
|
},
|
|
"dependencies": {
|
|
"@nozbe/watermelondb": "^0.28.0",
|
|
"@react-native-async-storage/async-storage": "^2.2.0",
|
|
"@react-native/new-app-screen": "0.85.2",
|
|
"@react-navigation/bottom-tabs": "^7.15.10",
|
|
"@react-navigation/native": "^7.2.2",
|
|
"@react-navigation/native-stack": "^7.14.12",
|
|
"@xuqm/rn-sdk": "file:../XuqmGroup-RNSDK",
|
|
"react": "19.2.3",
|
|
"react-native": "0.85.2",
|
|
"react-native-audio-recorder-player": "^4.5.0",
|
|
"react-native-document-picker": "^9.3.1",
|
|
"react-native-image-picker": "^8.2.1",
|
|
"react-native-safe-area-context": "^5.5.2",
|
|
"react-native-screens": "^4.24.0"
|
|
},
|
|
"devDependencies": {
|
|
"@babel/core": "^7.25.2",
|
|
"@babel/plugin-proposal-decorators": "^7.29.0",
|
|
"@babel/preset-env": "^7.25.3",
|
|
"@babel/runtime": "^7.25.0",
|
|
"@react-native-community/cli": "20.1.0",
|
|
"@react-native-community/cli-platform-android": "20.1.0",
|
|
"@react-native-community/cli-platform-ios": "20.1.0",
|
|
"@react-native/babel-preset": "0.85.2",
|
|
"@react-native/eslint-config": "0.85.2",
|
|
"@react-native/jest-preset": "0.85.2",
|
|
"@react-native/metro-config": "0.85.2",
|
|
"@react-native/typescript-config": "0.85.2",
|
|
"@types/jest": "^29.5.13",
|
|
"@types/react": "^19.2.0",
|
|
"@types/react-test-renderer": "^19.1.0",
|
|
"eslint": "^8.19.0",
|
|
"jest": "^29.6.3",
|
|
"prettier": "2.8.8",
|
|
"react-test-renderer": "19.2.3",
|
|
"typescript": "^5.8.3"
|
|
},
|
|
"engines": {
|
|
"node": ">= 22.11.0"
|
|
}
|
|
}
|