99aea22579
* Stash * Rooms list listing :) * Animated set state * Search working * Fix load rooms on login * stash db class * set active db with path * Remove db on logout * stash * Created updateMessages * Inserting/updating threads * Persisting thread messages * Removed unused list * Loading messages from watermelon * Debounce updates and rerender message * optional fields * Fix realm conflict issues * Fix some render issues * stash * List mount * stash * fix message id * Fix tmsg * - Save subscription.rid as id on watermelon and _id as _id - Send room as param to room view * Throttle room updates * stash * comment removeClippedSubviews * Fetch thread name * try/catch updateMessages * Show loading while RoomView.init is still running * stash * Fix updateMessages * Threads * Delete message * Permalink * Pin * Star * Report * MessageActions refactor * Edit message * Reply message * Add reaction * Auto translate * Fix connection issues * Mark message as error if something happened on the call * Error actions * get custom emoji * Always run console.log when __DEV__ * Try to create serversDB * Don't call updateMessages. Execute that entire logic for one message id instead. * Refactor update messages * ServersDB User [Realm -> Watermelon] * Fix models * Custom emojis * Custom emojis on emoji picker * Frequently used emojis * Fix add reaction on message * stash * Fix * Read messages * Fix thread * Fetch thread header * Follow/unfollow thread * Fix thread * Upload file * Thread tweak * Realm -> Watermelon [Share Extension] * Add RoomsUpdatedAt to Servers Table * Settings * Settings * Fix logout * SendFileMessage ServersDB * ServersDB on serverDropdown * Remove serversDB from Realm * Load thread messages * Delete message * Improve getSettings * Improve * Remove subscription * Remove update * Update room via socket * Small refactor * Fix logout and improve migration * Refactor updateMessages * Improve migration * Remove unnecessary update * Revert remove runAfterInteractions * Fix serverDropdown * Fix merge * Init room actions Watermelon * Room actions Watermelon * Remove realm on room members * Room swipe -> Watermelon * Fix hideChannel * Get roles watermelon * Get permissions watermelon * Users typing + memory db * Auto translate watermelon * New Message View * Selected Users View * try/catch * Get Slash Commands watermelon * Slash Commands message box * Custom emojis message box * Get rooms message box * Room info view * Room info edit * Save active users * Small refactor * Message Actions * hasPermission await * last hasPermission fix * Active users on redux * Add user roles * Users typing on redux and remove memory db * Fix saga delay * Fix few issues * Fix slash commands preview * Draft message * Add muted * Unread count watermelon * Remove realm * Fiz RoomItem rerenders * Remove realm config * Rerender status update on RoomItem * Refactor RoomsListView * Fix load missed messages * Fix room update * Message refactor * Fixing lint * Jitsi config (iOS) * removeClippedSubviews on iOS only * Added few interaction managers * Create jitsiBaseURL * Call buttons * Fix few rerenders * Fix RoomItem status typo * Fix RoomView.SCU * Fix broadcast * Fix user status on RoomActionsView * Jitsi config (Android) * Fix RocketChat.hasPermission * Fix database inconsistencies * Fix few update issues * Add rxjs and remove with observables * Fix tests * Remove subscriptions * Fix RoomsListView SCU * Change database structure and set all schemas to 1 * Fix RoomsListView search * Call Jitsi method * Create onlyAudio option (iOS) * Create onlyAudio option (Android) * Fixed errors, removed rerenders and added animation * Fixed a few errors * Fix lint * Fix issues caught by LGTM * fix ios build * Revert patch * jitsiTimeout * Self-builded Android SDK * Fix load unjoined channel messages * Log on database path on startup * Fix join channel * Remove react-native-realm-path * Set user status on login.user reducer * Fix status not rendering on RoomsListView * Fix few reducers * Fix users going offline * Never use "watermelon" term directly. Replaced by "database" * Fix jitsiTimeout * Fix custom emoji * Fix duplicated call messsage * Creating room from app must update roomUpdatedAt * Log subscribeRoom start * Fix room subscribe right after creating a DM * Fix jest * Move self-builded sdk to node_modules * Refactor is read only on messages actions * Fix typo * Fix typo * Review * Fix schema * Fix muted & freq emoji & unpin & unstar * Remove throttleTime to room info & fix reset on edit room * Fix openServerDropdown spec & Fix unarchive * Fix MessageAction * Refactor RoomInfoEditView * Remove unnecessary condition * Remove unnecessary condition * Remove unnecessary condition * Remove get database * Rename Command.js to SlashCommand.js * Create sanitizer util * Fix indentation * Create subscription.t index * Refactor queries on RoomsListView * Create subscription.name index * Fix getPermissions * Fix indentation * Add missing await * Fix rocketchat.hasPermission * Unnecessary change * Star, pin e delete message refactored * Refactor customEmojis reducer * Remove code * Remove logs * Remove throttle * Call this.init on foreground focus on RoomView * Bump servers schema migration * Always mark message as sent after a success * Fetch only messages needed on updateMessages * Just leave a comment for now * Fetch only subscriptions returned by fetch * Fix send message * Create migration - jitsi_timeout * Fixes & Update e2e tests * Add translations pt-br * Bind callJitsi on RocketChat * Remove unnecessary mocks * Remove listeners when call finished * Use gradlew instead self-builded sdk * Fix lastmessage call username * Add react-native-background-timer * Fix background interval * Remove unnecessary timeout * Clear timeout in case there's one active * Add catch to method call |
||
---|---|---|
.circleci | ||
.github | ||
__mocks__ | ||
__tests__ | ||
android | ||
app | ||
e2e | ||
icons/20x20 | ||
ios | ||
patches | ||
storybook | ||
.bettercodehub.yml | ||
.buckconfig | ||
.eslintignore | ||
.eslintrc.js | ||
.gitattributes | ||
.gitignore | ||
.snyk | ||
.watchmanconfig | ||
LICENSE | ||
README.md | ||
app.json | ||
babel.config.js | ||
config.js | ||
index.js | ||
jsconfig.json | ||
key.keystore.enc | ||
metro.config.js | ||
package.json | ||
react-native.config.js | ||
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
- 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