Rocket.Chat mobile clients
Go to file
Diego Mello 9ba37107c7
[CHORE] Migrate to Watermelon (#1171)
* Install

* Create subscriptions

* Subscription observing and sorting

* Saving last message

* Stash

* Stash

* stash

* 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

* removeClippedSubviews on iOS only

* Added few interaction managers

* Fix few rerenders

* Fix RoomItem status typo

* Fix RoomView.SCU

* Fix broadcast

* Fix user status on RoomActionsView

* 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

* Fixed errors, removed rerenders and added animation

* Fixed a few errors

* Fix lint

* Fix issues caught by LGTM

* fix ios build

* 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 custom emoji

* Creating room from app must update roomUpdatedAt

* Log subscribeRoom start

* Fix room subscribe right after creating a DM

* 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

* Set room param on RoomView header in find room

* Update kotlin

* Fix auto translate constructor

* Fix few setState on constructor

* Fix empty room image blinking while mounting

* Improve fetch/persist execution for custom emojis, permissions and settings

* Query only user tapped on RoomMembersView

* Fix typo on canOpenRoom
2019-09-16 17:26:32 -03:00
.circleci [CHORE] Bugsnag logging setup (#1145) 2019-08-23 10:18:47 -03:00
.github [CHORE] Update issue template (#638) 2019-02-20 09:05:14 -03:00
__mocks__ [CHORE] Migrate to Watermelon (#1171) 2019-09-16 17:26:32 -03:00
__tests__ [IMPROVEMENT] Markdown refactored (#1151) 2019-08-27 09:25:38 -03:00
android [CHORE] Migrate to Watermelon (#1171) 2019-09-16 17:26:32 -03:00
app [CHORE] Migrate to Watermelon (#1171) 2019-09-16 17:26:32 -03:00
e2e [CHORE] Migrate to Watermelon (#1171) 2019-09-16 17:26:32 -03:00
icons/20x20 [FIX] messagebox growing width and icons (#130) 2017-12-08 17:36:03 -02:00
ios [CHORE] Migrate to Watermelon (#1171) 2019-09-16 17:26:32 -03:00
patches [CHORE] Migrate to Watermelon (#1171) 2019-09-16 17:26:32 -03:00
storybook [CHORE] Migrate to Watermelon (#1171) 2019-09-16 17:26:32 -03:00
.bettercodehub.yml Add bettercode (#30) 2017-08-18 14:02:12 -03:00
.buckconfig Initial commit 2017-08-03 15:23:43 -03:00
.eslintignore Use inline requires (#459) 2018-09-26 10:56:36 -03:00
.eslintrc.js [CHORE] Update to react-native 0.60.4 (#1095) 2019-08-07 10:51:34 -03:00
.gitattributes Initial commit 2017-08-03 15:23:43 -03:00
.gitignore Check $FABRIC_KEY availability in CircleCI (#506) 2018-10-24 13:37:22 -03:00
.snyk Switch push notification lib (#346) 2018-07-10 10:40:32 -03:00
.watchmanconfig Initial commit 2017-08-03 15:23:43 -03:00
LICENSE Create LICENSE 2018-04-21 15:24:08 -03:00
README.md [DOCS] Update README.md (#1134) 2019-08-19 16:44:19 -03:00
app.json [NEW] Share extension (#942) 2019-07-18 14:44:02 -03:00
babel.config.js [CHORE] Migrate to Watermelon (#1171) 2019-09-16 17:26:32 -03:00
config.js [CHORE] Bugsnag logging setup (#1145) 2019-08-23 10:18:47 -03:00
index.js [FIX] Remove console on production builds (#1124) 2019-08-13 10:03:46 -03:00
jsconfig.json Init Redux usage 2017-08-12 22:35:09 -03:00
key.keystore.enc Ci (#25) 2017-08-18 11:50:20 -03:00
metro.config.js [CHORE] Update to react-native 0.60.4 (#1095) 2019-08-07 10:51:34 -03:00
package.json [CHORE] Migrate to Watermelon (#1171) 2019-09-16 17:26:32 -03:00
react-native.config.js [CHORE] Migrate to Watermelon (#1171) 2019-09-16 17:26:32 -03:00
yarn.lock [CHORE] Migrate to Watermelon (#1171) 2019-09-16 17:26:32 -03:00

README.md

Rocket.Chat React Native Mobile

Project Dependencies Codacy Badge codecov CodeFactor

Supported Server Versions: 0.70.0+

Download

Download on Google Play Download on App Store

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

  1. Jitsi integration
  2. Notification Preferences
  3. Two-way authentication
  4. Bugsnag
  5. Optional Analytics
  6. Typescript
  7. 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