2d58a8b983
* Bump version to 1.16.0 (#1014) * [IMPROVEMENT] Share credentials with Rocket.Chat.iOS (#982) * ✨ Create user table * ✨ Introduce user table * 🔥 Remove unused table * ➕ Add userdefaults to storage data * 💚 Fix android build * ✨ Get credentials from iOS native client * 🔥 Remove unused code * ⏪ Revert sign xcode * 🐛 Fix first login-logout * 🎨 Use constants to UserDefaults Keys * 🐛 Fix clear server-user-info on logout * 🐛 Fix filter null value * 🚑 Remove user object in logout * ✨ Fix get servers from native-client * 🚑 Fix error on change server * [FIX] Don't run UserDefaults credentials on Android (#1015) * 🐛 Fix native credentials (android) * Fix migration loop * [IMPROVEMENT] Hide frequently used emoji tab when empty (#792) * [IMPROVEMENT] Bigger emoji in emoji only messages (#793) * issue #725: bigger emoji in emoji only message * issue-725/add storybook for Message/Emoji * issue-725: update storybook/Message jest snapshot * comment storybook import * allow spaces and line breaks in emoji only message * merge develop * revert unnecessary spacing * [FIX] Empty message if contains only a link (#787) * Fix empty message if contains only a link * 🐛 Fix empty space * [IMPROVEMENT] Refactor empty space regex on quote (#1017) * 🎨 Improve regex to empty space on quote * 🎨 Improve on regex to empty space on quote * [NEW] Custom fields on signup (#1013) * added custom feilds on registration * added flag as leftIcon and removed lable * added try and catch * typo * [CHORE] Renew provisioning profiles (#1020) * [NEW] Auto-translate (#1012) * Update realm * View original and translate working * Read AutoTranslate_Enabled setting * RocketChat.canAutoTranslate() * AutoTranslateView * Save language * Auto-translate switch * Translate message * [IMPROVEMENT] Use haptics rather than vibration (#1016) * Install expo-haptics * Use expo-haptics rather than RN's Vibration module * [IMPROVEMENT] Use Rest API for file upload (#1005) * removed rn-fetch-blob and use native XMLHttpRequest instead * removed unnessary changes * fix android bug * fix android bug * added tmid support * fix bug * fixed isssue with cacel model * fix problems with audio * done requested changes * fix bug with android * [CHORE] [CI] [TESTS] update detox to make ci pass (#1026) * feat: update detox to 12.11.3 to make CI pass * ci: comment all jobs but leave e2e-test job * commit to rerun IC e2e-test job * ci: uncomment all CI jobs * [NEW] Room swipe actions: mark as read/unread, hide, fav (#976) * added unread and fav feature * changed the layout * fix jest * done requested changes * added requested changes * [FIX] Android build (#1027) * [FIX] Android build * CircleCI error * [FIX] iOS share credentials build (#1028) * [FIX] iOS share credentials build * Use `hasMigration` as a string * [CI] Restore cache on CI (#1029) * feat: add fastlane save\restore cache config; comment not needed jobs; * install fastlane using 'bundle install' * install fastlane using 'sudo bundle install' * uncomment ios build commands * run set up google services in ios folder * add working_directory: ios to ios-build steps * remove 'cd ios' from Fastlane build step * add save\restore cache for npm modules * group save_cache steps * cache fastlane in ios-testflight job * uncomment previously commented jobs\steps * fix: add missing colon * use key for caching: node-modules-{{ checksum ".circleci/config.yml" }}-{{ checksum "yarn.lock" }} * add names for save\restore steps * ci: add `default` step with `working_directory: ~/repo` to ios-build job * return back caching npm: `node-v1-{{ checksum "package.json" }}-{{ arch }}` * fix: add missing curly braces * save\restore cache in e2e-test job; remove {{arch}} from cache names * add names to restore_cache steps in android-build job * add names to save_cache steps in android-build job * add names to all save\restore steps; change checksum package.json to yarn.lock * change `npm` to `NPM` in steps naming * remove {{ checksum circle ci }} from android-build job and fix naming of steps * [FIX] Rooms swipes (#1034) * Regression: on press style feedback * Action button styles * Fix animations * Styles changed * Update subscription without having to wait for socket * Calculate width on RoomsListView instead * [FIX] Decrease bigger emoji size to 30 (#1031) * [FIX] Append server URL on avatar if necessary (#1038) * Comment removeClippedSubviews * Comment width animation * Remove redux from RoomItem * Fix wrong re-render comparison * Remove listener * Raise minDeltaX * memo actions * Spring with native driver * Refactor functions * Fix props issues * Remove RoomItem.height * Long swipe * Refactor animations * this.rowTranslation -> this.transX * Moved state to this * Bump version to 1.16.1 (#1045) * [FIX] Set UserDefaults AppGroup on notification tap (#1047) * [FIX] Auto-translate messages as they arrive * Fix favorite button * [FIX] Swipe animations (#1044) * Comment removeClippedSubviews * Comment width animation * Remove redux from RoomItem * Fix wrong re-render comparison * Remove listener * Raise minDeltaX * memo actions * Spring with native driver * Refactor functions * Fix props issues * Remove RoomItem.height * Long swipe * Refactor animations * this.rowTranslation -> this.transX * Moved state to this * Fix favorite button * [FIX] Auto-translate messages as they arrive (#1049) * Comment removeClippedSubviews * Comment width animation * Remove redux from RoomItem * Fix wrong re-render comparison * Remove listener * Raise minDeltaX * memo actions * Spring with native driver * Refactor functions * Fix props issues * Remove RoomItem.height * Long swipe * Refactor animations * this.rowTranslation -> this.transX * Moved state to this * [FIX] Auto-translate messages as they arrive * [i18n] Add missing de translations (#1040) * [CHORE] Switch to react-native-localize (#1043) * Bump version to 1.17.0 (#1057) * Load views as needed (#1056) * [IMPROVEMENT] Change "resend" icon position (#1048) * [NEW] Video support (#801) * [NEW] File upload (#882) * [NEW] Share extension (#942) * [FIX] Share extension CI build (#1060) * Change bundleID * Provisioning * get provisioning profile * [IMPROVEMENT] Reusable toast (#1065) * [FIX] Moment locales (#1066) * [FIX] Share Extension issues (#1064) * [FIX] Empty white list enables all media types upload (#1077) * Merge branch 'master' into develop (#1079) * [FIX] Empty white list enables all media types upload (#1080) * Create utils to media (canUpload) * Fix variable name * [CHORE] Update README (#1081) |
||
---|---|---|
.circleci | ||
.github | ||
__mocks__ | ||
__tests__ | ||
android | ||
app | ||
e2e | ||
icons/20x20 | ||
ios | ||
storybook | ||
.babelrc | ||
.bettercodehub.yml | ||
.buckconfig | ||
.eslintignore | ||
.eslintrc.js | ||
.gitattributes | ||
.gitignore | ||
.snyk | ||
.watchmanconfig | ||
LICENSE | ||
README.md | ||
app.json | ||
index.js | ||
jsconfig.json | ||
key.keystore.enc | ||
metro.config.js | ||
package.json | ||
yarn.lock |
README.md
Rocket.Chat React Native Mobile
Supported Server Versions: 0.70.0+
Download
Beta Access
TestFlight
You can signup to our TestFlight builds by acessing this link: https://testflight.apple.com/join/7I3dLCNT.
Google Play beta
You can subscribe to Google Play Beta program and download latest versions: https://play.google.com/store/apps/details?id=chat.rocket.reactnative
Reporting an Issue
Github Issues are used to track todos, bugs, feature requests, and more.
Also check the #react-native community on open.rocket.chat. We'd like to help.
Installing dependencies
Follow the React Native Getting Started Guide for detailed instructions on setting up your local machine for development.
How to run
-
Clone repository and install dependencies:
$ git clone git@github.com:RocketChat/Rocket.Chat.ReactNative.git $ cd Rocket.Chat.ReactNative $ yarn global add react-native-cli $ yarn
-
Run application
$ react-native run-ios
$ react-native run-android
Running single server
If you don't need multiple servers, there is a branch single-server
just for that.
Readme will guide you on how to config.
Current priorities
- Jitsi integration
- Notification Preferences
- Two-way authentication
- Authentication via SAML
- Authentication via Custom OAuth
- Authentication via CAS
- Bugsnag
- Optional Analytics
- Typescript
- Prettier
Features
Feature | Status |
---|---|
Jitsi Integration | ❌ |
Federation (Directory) | ✅ |
Discussions | ❌ |
Threads | ✅ |
Record Audio | ✅ |
Record Video | ✅ |
Commands | ✅ |
Draft message per room | ✅ |
Share Extension | ✅ |
Notifications Preferences | ✅ |
Edited status | ✅ |
Upload video | ✅ |
Grouped messages | ✅ |
Mark room as read | ✅ |
Mark room as unread | ✅ |
Tablet Support | ❌ |
Read receipt | ✅ |
Broadbast Channel | ✅ |
Authentication via SAML | ❌ |
Authentication via CAS | ❌ |
Custom Fields on Signup | ✅ |
Report message | ✅ |
Theming | ❌ |
Settings -> Review the App | ❌ |
Settings -> Default Browser | ❌ |
Admin panel | ✅ |
Reply message from notification | ❌ |
Unread counter banner on message list | ✅ |
E2E Encryption | ❌ |
Join a Protected Room | ❌ |
Optional Analytics | ❌ |
Settings -> About us | ❌ |
Settings -> Contact us | ✅ |
Settings -> Update App Icon | ❌ |
Settings -> Share | ❌ |
Accessibility (Medium) | ❌ |
Accessibility (Advanced) | ❌ |
Authentication via Meteor | ❌ |
Authentication via Wordpress | ❌ |
Authentication via Custom OAuth | ❌ |
Add user to the room | ✅ |
Send message | ✅ |
Authentication via Email | ✅ |
Authentication via Username | ✅ |
Authentication via LDAP | ✅ |
Message format: Markdown | ✅ |
Message format: System messages (Welcome, Message removed...) | ✅ |
Message format: links | ✅ |
Message format: images | ✅ |
Message format: replies | ✅ |
Message format: alias with custom message (title & text) | ✅ |
Messages list: day separation | ✅ |
Messages list: load more on scroll | ✅ |
Messages list: receive new messages via subscription | ✅ |
Subscriptions list | ✅ |
Segmented subscriptions list: Favorites | ✅ |
Segmented subscriptions list: Unreads | ✅ |
Segmented subscriptions list: DMs | ✅ |
Segmented subscriptions list: Channels | ✅ |
Subscriptions list: update user status via subscription | ✅ |
Numbers os messages unread in the Subscriptions list | ✅ |
Status change | ✅ |
Upload image | ✅ |
Take picture & upload it | ✅ |
2FA | ✅ |
Signup | ✅ |
Autocomplete with usernames | ✅ |
Autocomplete with @all & @here | ✅ |
Autocomplete room/channel name | ✅ |
Upload audio | ✅ |
Forgot your password | ✅ |
Login screen: terms of service | ✅ |
Login screen: privacy policy | ✅ |
Authentication via Google | ✅ |
Authentication via Facebook | ✅ |
Authentication via Twitter | ✅ |
Authentication via GitHub | ✅ |
Authentication via GitLab | ✅ |
Authentication via LinkedIn | ✅ |
Create channel | ✅ |
Search Local | ✅ |
Search in the API | ✅ |
Settings -> License | ✅ |
Settings -> App version | ✅ |
Autocomplete emoji | ✅ |
Upload file (documents, PDFs, spreadsheets, zip files, etc) | ✅ |
Copy message | ✅ |
Pin message | ✅ |
Unpin message | ✅ |
Channel Info screen -> Members | ✅ |
Channel Info screen -> Pinned | ✅ |
Channel Info screen -> Starred | ✅ |
Channel Info screen -> Uploads | ✅ |
Star message | ✅ |
Unstar message | ✅ |
Channel Info screen -> Topic | ✅ |
Channel Info screen -> Description | ✅ |
Star a channel | ✅ |
Message format: videos | ✅ |
Message format: audios | ✅ |
Edit message | ✅ |
Delete a message | ✅ |
Reply message | ✅ |
Quote message | ✅ |
Muted state | ✅ |
Offline reading | ✅ |
Offline writing | ✅ |
Edit profile | ✅ |
Reactions | ✅ |
Custom emojis | ✅ |
Accessibility (Basic) | ✅ |
Tap notification, go to the channel | ✅ |
Deep links: Authentication | ✅ |
Deep links: Rooms | ✅ |
Full name setting | ✅ |
Read only rooms | ✅ |
Typing status | ✅ |
Create channel/group | ✅ |
Disable registration setting | ✅ |
Unread red line indicator on message list | ✅ |
Search Messages in Channel | ✅ |
Mentions List | ✅ |
Attachment List | ✅ |
Join a Room | ✅ |
Detox (end-to-end tests)
- Build your app
$ detox build --configuration ios.sim.release
- Run tests
$ detox test --configuration ios.sim.release
Storybook
-
Open index.js
-
Uncomment following line
import './storybook';
- Comment out following lines
import './app/ReactotronConfig';
import { AppRegistry } from 'react-native';
import App from './app/index';
import { name as appName } from './app.json';
AppRegistry.registerComponent(appName, () => App);
- Start your application again