Rocket.Chat mobile clients
Go to file
Diego Mello 98ed84ba5c
[CHORE] Update react-navigation to v5 (#2154)
* react-navigation v5 installed

* compiling

* Outside working

* InsideStack compiling

* Switch stack

* Starting room

* RoomView header

* SafeAreaView

* Slide from right stack animation

* stash

* Fix params

* Create channel

* inapp notification

* Custom status

* Add server working

* Refactor appStart

* Attachment

* in-app notification

* AuthLoadingView

* Remove compat

* Navigation

* Outside animations

* Fix new server icon

* block modal

* AttachmentView header

* Remove unnecessary code

* SelectedUsersView header

* StatusView

* CreateDiscussionView

* RoomInfoView

* RoomInfoEditView style

* RoomMembersView

* RoomsListView header

* RoomView header

* Share extension

* getParam

* Focus/blur

* Trying to fix inapp

* Lint

* Simpler app container

* Update libs

* Revert "Simpler app container"

This reverts commit 1e49d80bb49481c34f415831b9da5e9d53e66057.

* Load messages faster

* Fix safearea on ReactionsModal

* Update safe area to v3

* lint

* Fix transition

* stash - drawer replace working

* stash - modal nav

* RoomActionsView as tablet modal

* RoomStack

* Stop showing RoomView header when there's no room

* Custom Header and different navigation based on stack

* Refactor setHeader

* MasterDetailContext

* RoomView header

* Fix isMasterDetail rule

* KeyCommands kind of working

* Create channel on tablet

* RoomView sCU

* Remove withSplit

* Settings opening as modal

* Settings

* StatusView headerLeft

* Admin panel

* TwoFactor style

* DirectoryView

* ServerDropdown and SortDropdown animations

* ThreadMessagesView

* Navigate to empty RoomView on server switch when in master detail

* ProfileView header

* Fix navigation issues

* Nav to any room info on tablet

* Room info

* Refactoring

* Fix rooms search

* Roomslist commands

* SearchMessagesView close modal

* Key commands

* Fix undefined subscription

* Disallow navigate to focused room

* isFocused state on RoomsListView

* Blur text inputs when focus is lost

* Replace animation

* Default nav theme

* Refactoring

* Always open Attachment with close modal button

* ModalContainer backdrop following themes

* Screen tracking

* Refactor get active route for in-app notification

* Only mark room as focused when in master detail layout

* Lint

* Open modals as fade from bottom on Android

* typo

* Fixing tests

* Fix in-app update

* Fixing goRoom issues

* Refactor stack names

* Fix unreadsCount

* Fix stack

* Fix header animation

* Refactor ShareNavigation

* Refactor navigation theme

* Make sure title is set

* Fix create discussion navigation

* Remove unused variable

* Create discussions from actions fixed

* Layout animation

* Screen lock on share extension

* Unnecessary change

* Admin border

* Set header after state callback

* Fix key commands on outside stack

* Fix back button pressed

* Remove layout animations from Android

* Tweak animations on Android

* Disable swipe gesture to open drawer

* Fix current item on RoomsListView

* Fix add server

* Fix drawer

* Fix broadcast

* LayoutAnimation instead of Transitions

* Fix onboarding back press

* Fix assorted tests

* Create discussion fix

* RoomInfoView header

* Drawer active item
2020-06-15 11:00:46 -03:00
.circleci [TESTS] Update and separate E2E tests (#2126) 2020-05-20 13:33:40 -03:00
.github [CHORE] Update issue template (#638) 2019-02-20 09:05:14 -03:00
__mocks__ Update all dependencies (#2008) 2020-05-08 13:37:49 -03:00
__tests__ [FIX] Here and all mentions shouldn't refer to users (#2137) 2020-05-20 09:53:40 -03:00
android [IMPROVEMENT] Refactor icon package (#2146) 2020-06-05 10:28:58 -03:00
app [CHORE] Update react-navigation to v5 (#2154) 2020-06-15 11:00:46 -03:00
e2e [CHORE] Update react-navigation to v5 (#2154) 2020-06-15 11:00:46 -03:00
ios [CHORE] Update react-navigation to v5 (#2154) 2020-06-15 11:00:46 -03:00
patches [CHORE] Update WatermelonDB to 0.16.2 (#2166) 2020-06-05 12:58:14 -03:00
storybook [CHORE] Update react-navigation to v5 (#2154) 2020-06-15 11:00:46 -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 [NEW] Passcode and biometric unlock (#2059) 2020-05-08 14:04:37 -03:00
.gitattributes Initial commit 2017-08-03 15:23:43 -03:00
.gitignore Update all dependencies (#2008) 2020-05-08 13:37:49 -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 [TESTS] Update and separate E2E tests (#2126) 2020-05-20 13:33:40 -03:00
SECURITY.md [DOCS] Add SECURITY.md (#1244) 2019-09-26 16:18:38 -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] Emoji parser not working on Hermes (#1445) 2019-12-11 16:00:38 -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 react-native-jitsi-meet to 2.0.1 (#1249) 2019-09-27 16:16:03 -03:00
package.json [CHORE] Update react-navigation to v5 (#2154) 2020-06-15 11:00:46 -03:00
react-native.config.js [REVERT] Show emoji keyboard on Android (#1738) 2020-02-17 09:14:56 -03:00
yarn.lock [CHORE] Update react-navigation to v5 (#2154) 2020-06-15 11:00:46 -03:00

README.md

Rocket.Chat Mobile

Project Dependencies Codacy Badge codecov CodeFactor

Supported Server Versions: 0.70.0+

Download

Official apps

Download on Google Play Download on App Store

Experimental apps

Download on Google Play Download on App Store

Beta Access

TestFlight

You can signup to our TestFlight builds by accessing these links:

Google Play beta

You can subscribe to Google Play Beta program and download latest versions:

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
    
  • Run application

    $ npx react-native run-ios
    
    $ npx 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. Omnichannel support
  2. E2E encryption

Features

Feature Status
Jitsi Integration
Federation (Directory)
Discussions
Omnichannel
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
$ npx detox build --configuration ios.sim.release
  • Run tests
$ npx detox test ./e2e/tests/onboarding --configuration ios.sim.release
$ npx detox test ./e2e/tests/room --configuration ios.sim.release
$ npx detox test ./e2e/tests/assorted --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