Compare commits

..

492 Commits

Author SHA1 Message Date
Gleidson Daniel Silva 4dfc9c70f3
[FIX] Keyboard not showing all emojis or showing cut emojis (#4919)
* fix the logic based on window width and make the keyboard dynamic

* fix var naming and math

* fix alignment of emojis

* add comment

* wip
2023-03-09 17:17:20 -03:00
Piyush Gupta 513e8ee636
[FIX] Increase border radius on MessageAvatar as small (#4837)
* fixed border radius of 4 on avatar

* fixed lint

* Update tests

---------

Co-authored-by: Diego Mello <diegolmello@gmail.com>
2023-03-08 15:34:39 -03:00
Mister-H aa57237004
[FIX] Order of quoted message done according to desktop version (#4739)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
2023-03-08 11:20:01 -03:00
Diego Mello 58391964cb
[FIX] Message not rendering E2EE data if md exists (#4951) 2023-03-07 10:57:57 -03:00
Diego Mello 412f62eb2a
Chore: Update Detox to 20.1.2 (#4866) 2023-03-07 09:28:51 -03:00
Reinaldo Neto 4526b7f871
[FIX] UGC Rules Text align (#4934) 2023-03-02 16:04:52 -03:00
Diego Mello 27efa89dac
Bump version to 4.37.0 (#4938) 2023-03-02 13:22:40 -03:00
Gleidson Daniel Silva 3fbb7b5720
[IMPROVE] Brings the operation of the video call closer to the web (#4883)
* rename CallAgainActionSheet to StartACallActionSheet

* remove useVideoConf and use videoConfJoin directly

* consider phone on calls

* fix text shrink

* fix mic audio

* change the behavior of call icon on header and RoomInfo

* update types

* update types and variables names

* revert old type

* fix issue on old servers

* rename to a correct naming

* fix translation

* revamp call icon

* add error handling to videoconf capabilities

* lint

* fix role logic

* change const name

* rename comp

* remove commented code

* fix types and apply correct logic

* fix naming

* correct the import

* update icon size

* create timer function for videoConf bellow 5.0

* add subscription to useVideoConf hook

---------

Co-authored-by: Diego Mello <diegolmello@gmail.com>
2023-03-01 15:26:56 -03:00
Reinaldo Neto 4d5ff8aba1
[FIX] Omnichannel's icon svg fallback when the link returns an error (#4916)
* [FIX] Omnichannel's icon svg fallback when the link returns an error

* add activity indicator

* switch between activity indicator to custom icon

* reuse the same component as const
2023-02-27 17:31:28 -03:00
Reinaldo Neto 4336f0db40
[FIX] "Allow Reaction" does not work properly on "Read Only" rooms (#4864)
* [FIX] "Allow Reaction" does not work properly on "Read Only" rooms

* fix the handle of message box

---------

Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>
2023-02-24 11:37:56 -03:00
Gleidson Daniel Silva 4686d4f6f8
[FIX] Text color and fit content of TaskList (#4906)
* fix regression on plain text

* update stories

* fix where to add the color

* fit content taskList

---------

Co-authored-by: Reinaldo Neto <reinaldonetof@hotmail.com>
2023-02-16 10:07:19 -03:00
Gleidson Daniel Silva 58f28fb488
[FIX] Remove some permissions and keep only basic Bluetooth permission on Android (#4912) 2023-02-15 14:19:44 -03:00
lingohub[bot] 6bb4adaecd
Language update from LingoHub 🤖 on 2023-02-14Z (#4911)
* Language update from LingoHub 🤖

Project Name: Rocket.Chat.ReactNative
Project Link: https://translate.lingohub.com/rocketchat/dashboard/rocket-dot-chat-dot-reactnative
User: Diego Mello

Easy language translations with LingoHub 🚀

* Language update from LingoHub 🤖

Project Name: Rocket.Chat.ReactNative
Project Link: https://translate.lingohub.com/rocketchat/dashboard/rocket-dot-chat-dot-reactnative
User: Diego Mello

Easy language translations with LingoHub 🚀

---------

Co-authored-by: Diego Mello <diego.mello@rocket.chat>
2023-02-14 18:00:41 -03:00
Diego Mello 197616b94c
Chore: Remove deprecated typing stream (#4888) 2023-02-14 15:49:16 -03:00
Diego Mello edd0333be1
Chore: Update React Native to 0.68.6 (#4881) 2023-02-14 12:06:37 -03:00
Diego Mello 8c47187f70
[NEW] Presence Cap (#4900) 2023-02-14 10:47:56 -03:00
Gleidson Daniel Silva c4a2ce20c6
Regression: Adds idempotent prop to delete audio (#4862) 2023-02-06 16:07:23 -03:00
Reinaldo Neto 68f6eb40de
Chore: Hooks app/views/InviteUsersEditView (#4670)
* Chore: Hooks app/views/InviteUsersEditView

* minor tweak

* switch value name
2023-02-02 18:41:32 -03:00
Diego Mello 59c76d3956
Bump version to 4.36.0 (#4884) 2023-02-02 16:51:16 -03:00
Reinaldo Neto 9396b08ead
[FIX] Quote rendering with leading empty space on mobile only (#4778)
* [FIX] Quote rendering with leading empty space on mobile only

* update the message storyshot

* compareServerVersion to connection string

* fix time

* fix lint

* update to servers greater or equal than 6.0

* refactor tests

* minor tweak

---------

Co-authored-by: GleidsonDaniel <gleidson10daniel@hotmail.com>
2023-02-02 00:17:09 -03:00
Reinaldo Neto a927746d7f
[FIX] Show read receipts when it isn't read yet (#4865)
* [FIX] Show read receipts when it isn't read yet

* minor tweak
2023-02-02 00:10:27 -03:00
Reinaldo Neto 21e4818af7
[FIX] Team icons on Share View and searching on RoomsListView (#4833)
* [FIX] Team icons on Share View

* fix the teams when searching
2023-02-02 00:04:17 -03:00
Diego Mello 4de7c83e80
Bump version to 4.35.1 (#4871) 2023-01-30 15:10:09 -03:00
Gleidson Daniel Silva 18cc16beb7
Regression: Add token to Jitsi call on iOS (#4863)
* add token to jitsi builder

* fix room

* fix room and remove flags

* fix video prop
2023-01-30 13:56:39 -03:00
Reinaldo Neto 3cd1a5f0a6
[FIX] Add users shouldn't have Skip option (#4828) 2023-01-25 15:28:03 -03:00
lingohub[bot] 1abff18e75
Language update from LingoHub 🤖 (#4859)
Project Name: Rocket.Chat.ReactNative
Project Link: https://translate.lingohub.com/rocketchat/dashboard/rocket-dot-chat-dot-reactnative
User: Diego Mello

Easy language translations with LingoHub 🚀

Co-authored-by: Diego Mello <diego.mello@rocket.chat>
2023-01-24 16:01:29 -03:00
Diego Mello 26c8931563
Bump version to 4.36.0 (#4854) 2023-01-24 13:25:13 -03:00
Gleidson Daniel Silva 192a6b055a
Regression: Fix RoomItem's loading status (#4835) 2023-01-24 10:03:48 -03:00
Diego Mello 7363d9d742
[FIX] Official CI build (#4850) 2023-01-24 09:50:17 -03:00
Umang Patel 21f64b08e5
Docs: Fix Rocket.Chat server guide URL (#4848) 2023-01-23 13:50:30 -03:00
Gleidson Daniel Silva 38511d2f2d
[IMPROVE] Migrate from react-native-jitsi-meet to lib react-native-jitsimeet-custom (#4823)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
2023-01-20 13:55:53 -03:00
Reinaldo Neto 593d12b129
[FIX] Add User Generated Content link on login (#4827)
* [FIX] Add User Generated Content link on login

* minor tweak
2023-01-20 11:42:18 -03:00
Diego Mello ad3bfa830c
Chore: Rotate CI secrets (#4797) 2023-01-18 19:15:22 -03:00
Diego Mello af70849b5e
[FIX] Point to correct RN fork commit (#4832) 2023-01-18 14:55:54 -03:00
Diego Mello 91831c8f33
[FIX] Unwanted clear keychain and request challenges (#4826) 2023-01-18 13:43:26 -03:00
Diego Mello 447a2b9344
Regression: App not fetching messages properly after #4801 (#4819) 2023-01-16 13:43:27 -03:00
Gleidson Daniel Silva fbb05fa0d3
Regression: Add bluetooth permissions for Jitsi (#4796)
* add blt permissions

* Update AndroidManifest.xml

* add blt permissions

* remove wrong permission
2023-01-16 10:17:52 -03:00
Gleidson Daniel Silva 41b54d6d87
[FIX] Audio names not being handled properly (#4685) 2023-01-14 07:07:25 -03:00
Diego Mello 5387d31a68
[FIX] Messages not loading on some edge cases (#4801) 2023-01-13 16:32:52 -03:00
Diego Mello a1580811ed
[IMPROVE] E2EE improvements (#4763) 2023-01-12 10:32:33 -03:00
Reinaldo Neto 3a1b06b86c
[FIX] Not Login with SSO after upgrade to version 5.4.0 and 5.4.1 (#4783)
* [FIX] Not Login with SSO after upgrade to version 5.4.0 and 5.4.1

* minor tweak
2023-01-10 20:17:14 -03:00
Reinaldo Neto 9525ef25d8
[FIX] Modal freezing app after return from the background (#4795) 2023-01-09 15:32:16 -03:00
Gleidson Daniel Silva d208373b3a
Regression: Prevent screen from sleeping on Jitsi on Android (#4791) 2023-01-09 10:29:58 -03:00
Reinaldo Neto 24ad69346a
[FIX] Opening search field after server list does not hide server list (#4792)
* [FIX] Opening search field after server list does not hide server list

* minor tweak
2023-01-06 12:36:23 -03:00
Reinaldo Neto 8102bef1d0
[FIX] Quote message and reply with image (#4715)
* send msg with attachment

* send quote inside image

* minor tweak

* remove msg from return

* fix the lint and prettier

* fix visual bug for iOS

* fixing the message box input
2023-01-05 15:23:11 -03:00
Reinaldo Neto b6b5e7294f
[FIX] Member list filters for All by default (#4757)
Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>
2023-01-04 11:36:51 -03:00
Diego Mello 73557038a2
[FIX] Flipper on Android (#4771) 2022-12-21 17:35:45 -03:00
Diego Mello 4174aef4f8
Chore: Upgrade react-native-device-info to 10.3.0 (#4770) 2022-12-21 15:47:42 -03:00
dependabot[bot] 67f41a712c
Chore: Bump loader-utils from 1.4.1 to 1.4.2 (#4687)
Bumps [loader-utils](https://github.com/webpack/loader-utils) from 1.4.1 to 1.4.2.
- [Release notes](https://github.com/webpack/loader-utils/releases)
- [Changelog](https://github.com/webpack/loader-utils/blob/v1.4.2/CHANGELOG.md)
- [Commits](https://github.com/webpack/loader-utils/compare/v1.4.1...v1.4.2)

---
updated-dependencies:
- dependency-name: loader-utils
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-12-21 14:39:09 -03:00
dependabot[bot] c13e0af110
Chore: Bump underscore from 1.10.2 to 1.13.6 (#4764)
Bumps [underscore](https://github.com/jashkenas/underscore) from 1.10.2 to 1.13.6.
- [Release notes](https://github.com/jashkenas/underscore/releases)
- [Commits](https://github.com/jashkenas/underscore/compare/1.10.2...1.13.6)

---
updated-dependencies:
- dependency-name: underscore
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-12-21 14:38:36 -03:00
dependabot[bot] d10a77ba3d
Bump minimist from 1.2.5 to 1.2.7 (#4616)
Bumps [minimist](https://github.com/minimistjs/minimist) from 1.2.5 to 1.2.7.
- [Release notes](https://github.com/minimistjs/minimist/releases)
- [Changelog](https://github.com/minimistjs/minimist/blob/main/CHANGELOG.md)
- [Commits](https://github.com/minimistjs/minimist/compare/v1.2.5...v1.2.7)

---
updated-dependencies:
- dependency-name: minimist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-12-21 14:38:18 -03:00
Reinaldo Neto 68066d487f
[FIX] Try again to resend a file on a thread (#4756) 2022-12-21 14:34:48 -03:00
Reinaldo Neto 0b5dab3ddf
[FIX] Notification preferences menu shows nothing (#4703) 2022-12-21 13:15:30 -03:00
Reinaldo Neto 23f716c280
[FIX] Disappear push notifications when open the app (#4718)
* [FIX] Disappear push notifications when open the app

* minor tweak

* test badgeCount

* refactor remove notification to remove notification and badge
2022-12-21 13:07:17 -03:00
Diego Mello 4b1f1d9074
Chore: Select different provisioning profile for Experimental app (#4752) 2022-12-14 18:58:05 -03:00
Diego Mello 09cdb3e7a4
Bump version to 4.35.0 (#4751) 2022-12-14 16:23:28 -03:00
lingohub[bot] 46c18fb20d
Language update from LingoHub 🤖 on 2022-12-14Z (#4748)
* Language update from LingoHub 🤖

Project Name: Rocket.Chat.ReactNative
Project Link: https://translate.lingohub.com/rocketchat/dashboard/rocket-dot-chat-dot-reactnative
User: Diego Mello

Easy language translations with LingoHub 🚀

* Add sv and fi

* Add missing locales to util

* Reorder languages

Co-authored-by: Diego Mello <diego.mello@rocket.chat>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-12-14 12:59:30 -03:00
Diego Mello 0290d8e0a9
[FIX] Emoji picker not opening in some cases (#4735) 2022-12-08 15:38:16 -03:00
Gleidson Daniel Silva a2722f07b0
[FIX] Can't upload the same file on two rooms at the same time (#4528)
* update style to match other spaces

* fix sending the same file in different rooms and add the limit for sending the same file

* remove when error happens and cant finish the upload

* use the same variable as rocket.chat

* minor tweak upload path and removed _raw

* change from 2 to 4

Co-authored-by: Reinaldo Neto <reinaldonetof@hotmail.com>
Co-authored-by: Reinaldo Neto <47038980+reinaldonetof@users.noreply.github.com>
2022-12-05 13:31:44 -03:00
Reinaldo Neto 00661174a3
[FIX] Bottom View color when using iPad (#4643)
* [FIX] Bottom View color when using iPAD

* [FIX] Bottom View color when using iPAD

* tweak on path to react-native-ui-lib in package.json
2022-12-05 12:19:57 -03:00
Reinaldo Neto cbd9b27cf7
[FIX] Cannot read property 'fetch' of undefined on ThreadMessagesView (#4557)
* [FIX] Cannot read property 'fetch' of undefined on ThreadMessagesView

* added e2e test

* change from _raw to _id

* test thread messages view with a thread created
2022-12-02 14:06:14 -03:00
Diego Mello 87a3f85feb
Bump version to 4.34.0 (#4724) 2022-12-02 11:09:24 -03:00
Gleidson Daniel Silva a8b3a3b7de
[IMPROVE] Disable Jitsi native module on Android (#4708)
* temp: disable jitsi on android

* update props and subscription

* add open intent

* add request permissions

* disable react-native-jitsi-meet on android and separate implementations

* fix ios

* fix import alias

* revert android manifest indentation

* add catch to method

* return comment

* remove is iOS

* fix queries

* remove unused data

* webview audio

* fix android permissions

* fix audio android

* change how to open jitsi app

* remove loading

* update close logic
2022-12-01 14:20:22 -03:00
Reinaldo Neto 057ca8afac
Regression: The Unordered and Ordered List text color to bodyText (#4717)
* Regression: The Unordered and Ordered List text color to bodyText

* update storyshot
2022-11-30 15:35:17 -03:00
Gleidson Daniel Silva 92ae597b76
[FIX] videoconf skeleton border color and height (#4716) 2022-11-29 17:18:53 -03:00
Reinaldo Neto 7def88a7e2
Regression: Avatar and Username for Allowed Reactions and for Message Removed (#4714) 2022-11-29 12:12:35 -03:00
Reinaldo Neto aa26f7251e
[FIX] Remove nested room navigation (#4702)
* reset from room to room

* jump from room to room it's fine

* threads ipad

* fix ts roomslistview

* remove params

* fix the ipad highlight

* jump to a message from a thread to main room

* the reset within the goRoom

* create channel

* changes in canned response

* fix discussion navigation

* navigation newmessageview to users

* fix go room from room info view

* inappnotification, deeplinking, room.js

* change from room.rooms to room.subscribed

* minor tweak jumptomessage

* fix add existing channel to team and fixing test 02 of teams

* keep the same behavior after add existing channel

* keep the same behavior after add existing channel

* clean cosole

* changes requested about the name

* inapp redux to hooks

* added a comment to addexistingchanneltoteam

* minor tweak jumptomessage

* refactor goRoom to add the param popToRoot, also refactor the navigate in deeplinking too

* refactor other places that exist goRoom

* fix the didUpdate

* added in app notification test

* clean js

* minor tweak test
2022-11-25 10:21:56 -03:00
Gleidson Daniel Silva 21ee25e818
[FIX] Check videoConf type (#4707)
* add videoconf check

* update message type
2022-11-24 14:24:20 -03:00
Gleidson Daniel Silva 362df65bbe
[NEW] Video conf message block (#4619)
* create skeleton loading

* add phone-in icon

* fix avatar style props

* fix ios icon

* add new types

* add Rocket.Chat definitions

* fix block re-render

* create VideoConferenceBlock

* better composition

* fix call originator

* add pt-br translations

* create useSnaps hook

* update colors

* init action sheet

* fix to go back when the call ends

* create CallAgainActionSheet

* update pods

* bump lib react-native-skeleton-placeholder

* update hook location

* remove loading prop

* move files to components

* update border radius

* add verify on message options

* update icons

* apply patch
2022-11-24 08:37:08 -03:00
Diego Mello 61dc320a68
Chore: Update react-native-mmkv-storage to 0.8.0 (#4695) 2022-11-21 16:16:53 -03:00
Diego Mello 62c2d876eb
[IMPROVE] Standardize padding of E2E screens (#4701) 2022-11-21 16:10:38 -03:00
Diego Mello 44f062f9b9
Bump react-native-notifications to 4.3.3 (#4692) 2022-11-16 18:09:46 -03:00
GitStart 438b69b371
[FIX] Playing multiple voice messages at the same time (#4662)
Co-authored-by: gitstart <gitstart@users.noreply.github.com>
Co-authored-by: Debojyoti Singha <20729878+debojyoti452@users.noreply.github.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-11-16 10:40:45 -03:00
Diego Mello 988c6931ec
Chore: Bump patches (#4679) 2022-11-16 10:26:37 -03:00
Reinaldo Neto b0ea5e31f8
[FIX] Auto-translate feature wasn't working (#4678) 2022-11-11 16:51:57 -03:00
dependabot[bot] 82c922fa4d
Chore: Bump moment from 2.29.3 to 2.29.4 (#4347)
Bumps [moment](https://github.com/moment/moment) from 2.29.3 to 2.29.4.
- [Release notes](https://github.com/moment/moment/releases)
- [Changelog](https://github.com/moment/moment/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/moment/moment/compare/2.29.3...2.29.4)

---
updated-dependencies:
- dependency-name: moment
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-11 16:20:02 -03:00
dependabot[bot] 9b48ce0264
Chore(deps): Bump simple-plist from 1.1.1 to 1.3.1 (#4263)
Bumps [simple-plist](https://github.com/wollardj/simple-plist) from 1.1.1 to 1.3.1.
- [Release notes](https://github.com/wollardj/simple-plist/releases)
- [Commits](https://github.com/wollardj/simple-plist/compare/v1.1.1...v1.3.1)

---
updated-dependencies:
- dependency-name: simple-plist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-11 15:27:50 -03:00
dependabot[bot] 994892abb2
Chore: Bump loader-utils from 1.4.0 to 1.4.1 (#4660)
Bumps [loader-utils](https://github.com/webpack/loader-utils) from 1.4.0 to 1.4.1.
- [Release notes](https://github.com/webpack/loader-utils/releases)
- [Changelog](https://github.com/webpack/loader-utils/blob/v1.4.1/CHANGELOG.md)
- [Commits](https://github.com/webpack/loader-utils/compare/v1.4.0...v1.4.1)

---
updated-dependencies:
- dependency-name: loader-utils
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-11 15:16:59 -03:00
Reinaldo Neto 251cc9843b
[IMPROVE] Add delete-own-message permission (#4663) 2022-11-11 14:28:41 -03:00
Diego Mello 316bc80876
[IMPROVE] Add missing borders styles changes (#4675) 2022-11-11 13:04:57 -03:00
Diego Mello 94f0981b49
Regression: Remove users already in local database (#4673) 2022-11-10 16:59:27 -03:00
Diego Mello 05a04f7f29
[IMPROVE] Sync message actions order with web app (#4672) 2022-11-10 16:48:52 -03:00
Reinaldo Neto cd9924361e
[FIX] Non primitive dependency on useSubscriptionRoles (#4618)
* [FIX] Non primitive dependency on useSubscriptionRoles

* removed sort

* Remove JSON.parse and order by array

Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-11-10 13:36:24 -03:00
Reinaldo Neto 440e745901
[IMPROVE] Border radius and width on inputs (#4659)
* [IMPROVE] Border radius to 4 on FormTextInput

* change border width

* Remove border radius from StatusView input

Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-11-10 13:35:59 -03:00
Reinaldo Neto 612405cfae
[IMPROVE] Increase border radius on all buttons (#4657)
* border radius complete

* increase to chip

* Apply in missing places

* tweak slash command and update test

Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-11-10 13:22:02 -03:00
Diego Mello 6b6bb1df08
Chore: Reduce the frequency of dependabot runs to weekly basis (#4656) 2022-11-10 13:15:56 -03:00
Reinaldo Neto 640d83c9df
[FIX] The TS in data_setup and add expect in room and ignoreuser spec (#4658) 2022-11-09 13:41:39 -03:00
Reinaldo Neto a5e538c13f
[NEW] Emphasis Elements (italic, strike and bold) in Message Parser Components (#4621)
* [NEW] Emphasis Elements (italic, strike and bold) in Message Parser Components

* update storyshot

* minor tweak and remove of isLink

* Add theme provider to new md stories

* Cleanup

* Update tests

Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-11-07 13:42:42 -03:00
Duda Nogueira 0ad5545a4c
[i18n] Add Slovenian (#4474)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-11-04 15:13:29 -03:00
lingohub[bot] faf79bb59e
Language update from LingoHub 🤖 (#4640)
Project Name: Rocket.Chat.ReactNative
Project Link: https://translate.lingohub.com/rocketchat/dashboard/rocket-dot-chat-dot-reactnative
User: Robot LingoHub

Easy language translations with LingoHub 🚀

Co-authored-by: Robot LingoHub <robot@lingohub.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-11-04 15:03:55 -03:00
Gleidson Daniel Silva 3a9a98bdfe
[NEW] Reply in direct (#4582)
* add translations

* implements reply in DM

* refactor data e2e

* fix ignoreuser e2e

* create test for reply in dm

* minor tweak

Co-authored-by: Reinaldo Neto <47038980+reinaldonetof@users.noreply.github.com>
Co-authored-by: Reinaldo Neto <reinaldonetof@hotmail.com>
2022-11-04 14:09:58 -03:00
Diego Mello 4f960e9fb4
[FIX] Secured push notifications not fetching content on Android (#4487) 2022-11-04 13:34:00 -03:00
Diego Mello 80d53d3876
[FIX] Push notification's deep linking not working when opened from a cold state on Android (#4648) 2022-11-04 13:33:03 -03:00
Reinaldo Neto 8940883dac
Regression: Fix styles on FormTextInput (#4625)
* Regression: Fix styles on FormTextInput

* minor tweak padding icons

* added 48 height
2022-11-04 10:49:00 -03:00
Reinaldo Neto 711cac5876
[FIX] Cancelling when adding a server (#4565)
* TC-110 [FIX] Cancelling when adding a server

* Removing the close button when connecting to a server
2022-11-01 14:09:00 -03:00
Reinaldo Neto 816f43b828
[FIX] Messages attributed to wrong user (#4598) 2022-10-31 14:02:35 -03:00
Reinaldo Neto 57620ff40d
[IMPROVE] Spotlight users order (#4527)
* [IMPROVE] Spotlight users order

* minor tweak query

* minor tweak removing query and using regex

* minor tweak

* minor tweak, make ts happy

* fix the ts

* fix lint and type TSearch
2022-10-31 13:43:47 -03:00
Reinaldo Neto 2b53898066
[FIX] Storybook of System Message within Message.stories (#4629) 2022-10-21 17:09:05 -03:00
Diego Mello 1aef030d75
Chore: Deprecate Dimensions (#4597) 2022-10-21 15:29:02 -03:00
Danish Ahmed Mirza 1486204546
[IMPROVE] Redesign emoji picker (#4328)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-10-21 15:27:55 -03:00
Reinaldo Neto ec03f49b2d
[FIX] UiKit/DatePicker is broken (#4607)
* [FIX] UiKit/DatePicker is broken

* minor tweak
2022-10-21 13:52:12 -03:00
Gleidson Daniel Silva 16e11c7304
[IMPROVE] System messages consistency (#4461)
* fix sys messages

* update snapshot

* update snapshot

* add username

* wip

* wip

* change to switch and fix types

* wip

* new translations

* update snapshot

* Update app/containers/message/utils.ts

Co-authored-by: Reinaldo Neto <47038980+reinaldonetof@users.noreply.github.com>

* fix types and return

* remove unused translation

* fix types

* remove unused params

* minor tweak

* update story

Co-authored-by: Reinaldo Neto <47038980+reinaldonetof@users.noreply.github.com>
Co-authored-by: Reinaldo Neto <reinaldonetof@hotmail.com>
2022-10-21 13:35:26 -03:00
Reinaldo Neto 761aef2c04
[FIX] Screen Lock's Password screen UI is broken on tablets (#4583)
* [FIX] Screen Lock's Password screen UI is broken on tablets

* minor tweak and added comment

* minor tweak

* minor tweak

* minor tweak
2022-10-18 16:26:49 -03:00
Gleidson Daniel Silva 525f84885a
remove wrong logic on badge prop (#4564)
Co-authored-by: Reinaldo Neto <47038980+reinaldonetof@users.noreply.github.com>
2022-10-18 15:25:15 -03:00
Luciano Marcos Pierdona Junior 6dd9578413
[FIX] Team creation not adding members (#4588)
Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>
2022-10-18 08:39:06 -03:00
Diego Mello ef753086a9
Bump version to 4.33.0 (#4615) 2022-10-17 15:54:51 -03:00
Reinaldo Neto 531f3d0147
[IMPROVE] Add ignore user to user profile (#4600)
* button ignore and pased the param

* load room from database and check is is ignored

* move handleIgnore to lib/method/helpers

* Ignore and Unignore, also reactivity

* block and unblock user

* pass fromRid from actionView to InfoView too

* remove console.log

* unsubscribe subscriptionFrom

* block and unblock user from dm

* test to block user and ignore user

* minor tweak

* tweak data

* minor tweak

* add test before tapBack

* refactor names
2022-10-13 18:29:55 -03:00
Reinaldo Neto 300e5fc793
[FIX] Touch/Face ID toggle does not enable automatically the first time (#4576)
* [FIX] Touch/Face ID toggle does not enable automatically the first time

* minor tweak no competition setState
2022-10-07 12:34:51 -03:00
Reinaldo Neto 63e2a3a85c
Regression: Reset E2E Key section missing padding (#4595) 2022-10-07 12:01:04 -03:00
Diego Mello 5828a04aeb
[IMPROVE] Use Android 12 SplashScreen API (#4479) 2022-10-04 10:36:05 -03:00
Diego Mello 5344f2f7c1
[FIX] App always using the last deep link on Android (#4585) 2022-10-04 10:25:31 -03:00
Gleidson Daniel Silva cda998942b
[FIX] Fix quote message layout (#4568)
* fix layout

* fix quote

* update snapshot
2022-10-04 10:05:40 -03:00
Gleidson Daniel Silva 2d68faff3f
[Regression] Fix iPad subtitle font size on Header (#4586) 2022-10-04 09:56:39 -03:00
Gleidson Daniel Silva fe04faac64
Chore: Migrate SettingsView to hooks (#4542)
* migrate settings view to hooks

* temp - add non-null assertion

* fix options

* Update app/views/SettingsView/index.tsx

Co-authored-by: Reinaldo Neto <47038980+reinaldonetof@users.noreply.github.com>

* Update app/views/SettingsView/index.tsx

Co-authored-by: Reinaldo Neto <47038980+reinaldonetof@users.noreply.github.com>

* fix options

Co-authored-by: Reinaldo Neto <47038980+reinaldonetof@users.noreply.github.com>
2022-09-30 11:50:33 -03:00
Danish Ahmed Mirza 2f03ca52c5
[IMPROVE] Add `All` tab in Reactions List (#4409)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-09-29 16:42:04 -03:00
Reinaldo Neto 43ebae9b19
[FIX] Cannot read property 'render' of undefined on markdown (#4549) 2022-09-28 17:06:43 -03:00
Diego Mello f213151db0
Bump version to 4.32.0 (#4575) 2022-09-28 10:18:59 -03:00
Diego Mello 6df0149210 Bump version to 4.32.0 2022-09-28 10:18:08 -03:00
Reinaldo Neto e48788c828
Regression: Inconsistent style on TextInput on iOS and Android (#4569)
* Regression: Inconsistent style on TextInput on iOS and Android

* tweak to height
2022-09-27 15:21:05 -03:00
Reinaldo Neto d2d1d787f2
Regression: Local search is returning wrong object (#4567) 2022-09-27 15:08:44 -03:00
Diego Mello e883795c5f
[FIX] Reply and deep link from push notifications not working on iOS (#4550) 2022-09-23 17:35:03 -03:00
Reinaldo Neto cbf9ae3d37
[FIX] Decrease space between sections on lists (#4543)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-09-23 17:24:37 -03:00
Reinaldo Neto ee1b09d5ec
Regression: Default Browser View title (#4556) 2022-09-23 17:22:21 -03:00
Gleidson Daniel Silva d1e2c3fe6d
[FIX] Fix filenames and servers url when downloading audio files (#4553) 2022-09-23 17:21:11 -03:00
Reinaldo Neto 5771dbd066
[FIX] SearchBox background and unify usage (#4519) 2022-09-22 23:03:02 -03:00
Reinaldo Neto e10de8b209
[FIX] Search in Rooms List crashes Android app (#4546)
* [FIX] Search in Rooms List crashes Android app

* back to previous search

* change the method/searchlocal
2022-09-22 22:39:52 -03:00
Reinaldo Neto 9d69c10bbd
Chore: Hooks app/views/LanguageView (#4537)
* Chore: Hooks app/views/LanguageView

* minor tweak app selector
2022-09-22 18:40:32 -03:00
Reinaldo Neto b3a286329c
Chore: Hooks app/views/UserNotificationPreferenceView (#4502)
* Chore: Hooks app/views/UserNotificationPreferenceView

* added trycatch and userId

Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>
2022-09-22 18:31:23 -03:00
Reinaldo Neto 214e1cc009
[FIX] Apply thicker border width and remove fixed height on TextInput (#4503)
* [FIX] Apply thicker border width and remove fixed height on TextInput

* changed the last input border from hairline to 2

* update formtextinput storyshot test
2022-09-22 18:16:25 -03:00
Diego Mello dec5c4470c
Regression: Push notifications not working after update to Android 12 (#4532)
* Remove unnecessary method from custom push notification

* Use immutable

* Maybe
2022-09-22 17:39:27 -03:00
Diego Mello 18f359a8ef
Regression: Poor performance in messages list on Android (#4536)
* Create custom RefreshControl as a workaround

* Remove unnecessary FlatList rngh change
2022-09-22 09:49:59 -03:00
Reinaldo Neto 05c1798a58
[FIX] Decrease space between sections on List (#4520)
* [FIX] Decrease space between sections on List

* minor tweak listcontainer

* update test

* Small fixes for header/info

* Update tests

Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-09-19 15:14:05 -03:00
Gleidson Daniel Silva e146cbae9f
Chore: Create useDebounce hook (#4470)
* create useDebounce hook

* fix types

* apply useDebounce hook

* migrate to use-debounce lib

* remove useless useDebounce
2022-09-16 12:19:07 -03:00
Reinaldo Neto aefb60b5d2
[FIX]Update profile name (#4513) 2022-09-16 12:04:25 -03:00
Diego Mello 92a63e6a39
Chore: Remove unused iOS permissions (#4524) 2022-09-15 13:41:55 -03:00
Diego Mello ac01acac20
Chore: Upgrade Expo to SDK 46 (#4463) 2022-09-13 16:59:31 -03:00
Diego Mello f0a1266e21
[FIX] Support Android SDK 31 (#4522) 2022-09-13 16:02:01 -03:00
Diego Mello cc28acd6ed
Bump version to 4.31.0 (#4523) 2022-09-13 13:19:34 -03:00
Reinaldo Neto bb880f01ad
Chore: Migrate E2E tests from JS to TS (#4475)
* Migrate E2E tests from JS to TS

* fixed type mocha into tsconfig

* migration data.cloud and data.docker

* migrate team folder and fix Detox namescpace

* add type TTextMatcher and start the room folder migration

* room / 02 and 03

* room's folder

* onboarding's folder

* assorted/ 01

* assorted/ 02, 03, 04

* assorted/ 05, 06, 07

* folder assorted

* fix lint

* fix device
2022-09-12 11:51:33 -03:00
Gleidson Daniel Silva 989ced89bc
Chore: Improve code and migrate some props to hooks on ThemeView (#4414)
Co-authored-by: Reinaldo Neto <47038980+reinaldonetof@users.noreply.github.com>
2022-09-12 10:16:00 -03:00
Gleidson Daniel Silva 07f0618ab4
[FIX] Big usernames during discussion creation bugs UI (#4499)
* fix multiselect itens style

* remove useless brackets

* remove scroll from the top of the list items
2022-09-09 15:23:00 -03:00
Gleidson Daniel Silva 6484edddb6
Regression: Jitsi not leaving call properly (#4511) 2022-09-09 15:15:08 -03:00
Gleidson Daniel Silva cf7b9a09f4
[FIX] When creating a new user, "Custom Fields" are breaking functionality (#4501) 2022-09-09 14:01:55 -03:00
Reinaldo Neto 1bc3f542f2
Regression: Create private team and channel as default (#4493)
* Regression: Create private team and channel as default

* minor tweak
2022-09-09 11:49:06 -03:00
Gleidson Daniel Silva f9f13e7fe3
[FIX] Remove the tmid parameter when it is empty (#4500)
* add custom fields after register

* remove tmid when it is null

* wip

* wip

* wip
2022-09-08 17:58:50 -03:00
Reinaldo Neto c1a4ddc001
[FIX] System messages should be not italic (#4484) 2022-09-06 18:28:28 -03:00
Reinaldo Neto c9ce52958c
Chore: Hooks app/views/ForgotPasswordView (#4485)
* Chore: Hooks app/views/ForgotPasswordView

* validating email and using hook forms

* using mode onCHange

* add return

* fix theme

Co-authored-by: Gleidson Daniel <gleidson10daniel@hotmail.com>
2022-09-06 14:44:31 -03:00
Reinaldo Neto eabb9f157c
Chore: Hooks app/views/SetUsernameView (#4488)
* Chore: Hooks app/views/SetUsernameView

* semantic change of loading state

Co-authored-by: Gleidson Daniel <gleidson10daniel@hotmail.com>
2022-09-06 13:53:21 -03:00
Gleidson Daniel Silva e3a99a93e4
[FIX] Add loading prop on RoomActionsView to avoid double click (#4462) 2022-09-05 09:33:56 -03:00
Gleidson Daniel Silva 8d26230e4f
[FIX] Wrong Team's icon on SelectTeam item's list (#4469) 2022-09-05 09:19:45 -03:00
Reinaldo Neto 991d7156a9
Regression: Jump to message from search view (#4476) 2022-08-30 17:59:10 -03:00
Reinaldo Neto 9cbffff248
[IMPROVE] Redesign create room flow (#4381)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-08-26 16:16:45 -03:00
Gleidson Daniel Silva cbc6892084
[NEW] Unify members section (#4399)
* create useUserPermissions hook

* create CheckRadioButton component

* fix return

* create MembersSection component

* apply MembersSection and header filter

* fix re-render and testID

* fix detox tests

* rename to RadioButton

* move the component closer to the screen

* remove useUserPermissions

* remove theme prop

* migrate to hooks

* fix team permissions

* remove theme prop from UserItem

* remove options prop

* fix Member

* remove commented test

* fixes

* fix for room not joined

* add room members events

* adds empty option

* add members filter and pagination

* clear RoomMembersView

* remove unused styles

* Update app/views/RoomMembersView/index.tsx

Co-authored-by: Diego Mello <diegolmello@gmail.com>

* wip

* Temp workaround for SearchBox background color

* Rename import

* Fix missing params for 5.0

* Fix e2e tests

Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-08-26 10:21:25 -03:00
Reinaldo Neto ccbc84f9a8
[IMPROVE] Remove show message in main thread preference (#4435)
* [IMPROVE] Remove show message in main thread preference

* default settings

* created the get

* fix compare server version

* fix E2E tests

* settings to logged user

* remove constant and get alsosendtochannel from user

* fix send to channel first message

* fix when the alsoSendThreadToChannel is checked

* added list picker user preference

* tweaks in messagebox tmid and detox

* added pt-br and deleted expectToBeVisible id

* reactive alsoSendThreadTOChannel

* fix the behavior when press or long press threads messages

* remove reply in thread from threads

* clean helpers detox

* tweak onMessageLongPress and onSubmit

* Remove unnecessary calculations inside ListPicker

* Fix long press logic

* Fix onReplyInit logic

* fix data_setup at detox for servers greater than 5.0

Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-08-25 16:53:19 -03:00
Diego Mello ba15bc9fe6
[NEW] Use Inter font (#4459) 2022-08-23 16:32:51 -03:00
Diego Mello 17be449d4e
[FIX] Jump to message stuck on loading animation (#4410) 2022-08-19 18:14:37 -03:00
Diego Mello e723990e82
Chore: Update Storybook libs to v6 (#4439) 2022-08-19 16:53:40 -03:00
Reinaldo Neto fa72d4cc76
[FIX] Pagination when search by members and fix the duplicated members in a Room's member's list (#4446)
* [FIX] Duplicate members in a Room's member's list

* fix search and pagination

* fix the pagination for server lower than 3.16

Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>
2022-08-19 14:27:04 -03:00
Reinaldo Neto ded2f3792a
Chore: Hooks app/views/DefaultBrowserView (#4424)
* Chore: Hooks app/views/DefaultBrowserView

* fix type

* minor tweak

* item on new file

* minor tweaks

* minor tweak
2022-08-19 10:46:58 -03:00
Gleidson Daniel Silva 6b3006d29f
[NEW] Persist audio files (#4448)
* downloads and store the audios instead of loading them

* remove unused function
2022-08-19 10:24:29 -03:00
Reinaldo Neto f0ed501450
Chore: Hooks App/share (#4417)
* Chore: Hooks App/share

* getTheme to outside

* update types

Co-authored-by: Gleidson Daniel <gleidson10daniel@hotmail.com>
2022-08-18 20:25:39 -03:00
Reinaldo Neto 3ac10ee860
Chore: Hooks app/views/SelectServerView (#4445)
* Chore: Hooks app/views/SelectServerView

* refactor row_height

* minor tweak
2022-08-18 19:09:25 -03:00
Gleidson Daniel Silva 31a8c3e4fb
[FIX] Add method and id to method calls (#4444)
* add method and id to method calls

* 🧹
2022-08-17 14:45:50 -03:00
Gleidson Daniel Silva 28043a2eb5
Chore: Migrate E2ESaveYourPasswordView to hooks (#4432) 2022-08-17 10:51:40 -03:00
Gleidson Daniel Silva 585e5a0592
Chore: Migrate Touch to hooks (#4422)
* migrate to hooks and fix types

* fix import and remove theme prop

* update tests

* fix touch file name

* wip

* rename

* change to touch

* remove button and change to touch
2022-08-17 10:32:21 -03:00
Diego Mello c4d3af0e00
[FIX] Requests being skipped after reconnecting on onboarding (#4429) 2022-08-17 09:49:13 -03:00
Gleidson Daniel Silva a607980840
[IMPROVE] Set native theme when launching the share extension (#4430) 2022-08-16 17:20:28 -03:00
PetMoln c6e31df3e4
[FIX] Can't connect to RC through Gitlab Oauth (#4421)
[FIX] Can't connect to RC through Gitlab Oauth

Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>
2022-08-12 09:35:55 -03:00
Diego Mello b3894273ac
Regression: Resume the app with a deep link not navigating (#4428) 2022-08-11 16:40:31 -03:00
Reinaldo Neto 0c8177e025
[FIX] Text composer is pushing modals outside the screen on Android's tablet (#4393)
* [FIX] Text composer is pushing modals outside the screen

* added isLandscape

* refactor useKeyboard

* refactor landscape
2022-08-11 15:50:34 -03:00
Reinaldo Neto 999e8ab660
Regression: Room header not showing room type when not joined (#4427) 2022-08-11 15:29:24 -03:00
Reinaldo Neto 2a522158ad
Chore: Ignore icons on Prettier (#4426) 2022-08-11 15:16:04 -03:00
Gleidson Daniel Silva 69349dee6e
Chore: Migrate E2EEnterYourPasswordView to hooks (#4423)
* migrate E2EEnterYourPasswordView to hooks

* remove navigation options

* minor tweak

Co-authored-by: Reinaldo Neto <reinaldonetof@hotmail.com>
2022-08-11 11:59:40 -03:00
Gleidson Daniel Silva 92111afa6a
Chore: Migrate E2EHowItWorksView to hooks (#4416)
* remove navigation obligatory

* remove the obliglatory to use theme with the withTheme HOC

* migrate E2EHowItWorksView to hooks

* remove navigate options

* adds non-null assertion because theme is injected
2022-08-11 11:50:03 -03:00
Gleidson Daniel Silva a101d319e5
Chore: Migrate WithoutServerView to hooks (#4415)
* migrate WithoutServerView to hooks

* remove navigation options

* minor tweak

Co-authored-by: Reinaldo Neto <47038980+reinaldonetof@users.noreply.github.com>
Co-authored-by: Reinaldo Neto <reinaldonetof@hotmail.com>
2022-08-11 11:41:18 -03:00
Gleidson Daniel Silva 6b8086aa55
[FIX] Markdown's ListItem not using the entered index (#4388)
* fix ordered list number

* update snapshot
2022-08-11 11:30:11 -03:00
Gleidson Daniel Silva 6df34a2615
Chore: Remove github actions (#4425) 2022-08-09 17:37:44 -03:00
Gleidson Daniel Silva 89820b2bec
[NEW] Create useEndpointData for call endpoints using hooks (#4342)
* create basic useEndpointData for call endpoints using hooks

* remove cache

* create base for useEndpointData test

* create basic useEndpointData for call endpoints using hooks

* remove cache

* create base for useEndpointData test

* fix preset

* update tests

* change order

* create ErrorResult and add error to return

* update tests
2022-08-09 09:28:14 -03:00
Gleidson Daniel Silva 2b08b683d7
Chore: Upgrade React Native to 0.68.2 (#4316)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-08-08 18:02:08 -03:00
Reinaldo Neto e38aedcbff
[IMPROVE] Add emoji picker to iOS (#4366)
* [IMPROVE] Add emoji picker to iOS

* clean left and right buttons

* fix the redux in emojipicker

* fix behavior when emoji keyboard is openning

* added isIOS

* fix show reactions when emoji is open

* minor tweak

* add provider

* fix baseurl

* minor tweak

* create closeEmojiAndAction and added to record

* fix actionsheet for omnichannel

* fix action sheet

* fix close emoji when navigate to other screen

* added iactionsheetprovider to roomview

* clean variables

* fix theme

* close the emojikeyboard when click on message

* apoint package.json to new pr

* fix branch

* fix package.json
2022-08-08 15:38:01 -03:00
Danish Ahmed Mirza a4f171a12d
[NEW] Redesign reactions list (#4346) 2022-08-03 13:32:16 -03:00
Gleidson Daniel Silva 2c32be6e51
[FIX] Fix display order render on RoomListView (#4392) 2022-08-01 13:42:10 -03:00
Gleidson Daniel Silva 41dbbf4d4b
Chore: Migrate NotificationPreferencesView to hooks (#4327)
* add none option

* create showErrorAlertWithEMessage function

* migrate NotificationPreferencesView to hooks and improves overall

* change icon to right

* fix navigation options

* remove none

* fix types

* remove memo

* cleaning

* switching to destructuring

* add observe for hideUnreadStatus

* fix desktop options

* remove unused options

Co-authored-by: Reinaldo Neto <47038980+reinaldonetof@users.noreply.github.com>
2022-08-01 13:35:05 -03:00
Gleidson Daniel Silva 5875454a70
[FIX] Github Actions folder (#4400) 2022-07-29 14:18:11 -03:00
Gleidson Daniel Silva 0e378c67b8
Chore: Try Github Actions (#4376) 2022-07-29 14:10:31 -03:00
Reinaldo Neto d7f7b1da9f
[FIX] iFrame login takes user to blank screen (#4389) 2022-07-29 01:18:42 -03:00
Gleidson Daniel Silva a965465af3
[FIX] Add support to non ascii url characters on ios devices (#4364)
* add support to non ascii url caracters on ios

* rename module and add tests

* remove last slice
2022-07-28 10:36:40 -03:00
Gleidson Daniel Silva 376c8e8252
[IMPROVE] Add support to Linebreak and Katex on markdown (#4361)
* fix enableMessageParser logic

* create LineBreak component

* fix code style

* add KaTeX support

* add Katex and Inline Katex stories

* update snapshots

* add color prop

* update snapshot

* update snapshot
2022-07-20 18:02:18 -03:00
Gleidson Daniel Silva 1c1dfe5af1
[FIX] Share Extension shows a server that has no user logged in (#4336)
* [FIX] Share Extension shows a server that has no user logged in

* set server after login
2022-07-20 17:49:51 -03:00
Diego Mello 60f781d20e
Bump version to 4.30.0 (#4378) 2022-07-18 16:56:12 -03:00
Reinaldo Neto 2f51224f3f
[FIX] Rename done to save on Status View (#4363) 2022-07-15 17:44:24 -03:00
Reinaldo Neto 5a7f77a159
[FIX] User status update with hooks (#4362)
* [FIX] User status update with hooks

* add log

* fix dispatch

Co-authored-by: GleidsonDaniel <gleidson10daniel@hotmail.com>
2022-07-15 17:18:36 -03:00
Reinaldo Neto fe7722ca10
[IMPROVE] Support for tag request close when is obligatory to close Omnichannel's Channel (#4353)
* [IMPROVE] Support for tag request close

* clean up

* refactor isObrigatory and value

* fix obligatory

* removed onSubmitEditing

* create closelivechatview

* Refactor Close Omnichannel from ActionSheet to a new Screen

* Fix navigation

* fix screen title

* back to before actionsheetwithinput

* added string in pt-br

* refactor canSubmit

* fix the method closeRoom

* comment of server's version

* some tweaks

* Update app/lib/services/restApi.ts

Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>
2022-07-15 17:06:27 -03:00
Gleidson Daniel Silva 08c368c41e
[IMPROVE] Set native theme when launching the app (#4365) 2022-07-15 13:39:07 -03:00
Reinaldo Neto 90c1b0a97f
[FIX] HashTag markdown not working on stories (#4357)
* [FIX] Storybook Markdown Hashtag

* Fix storyshot
2022-07-14 15:30:15 -03:00
Reinaldo Neto 92d16b52e1
Regression: Status of Omnichannel's Icon isn't working in RoomsListView (#4356)
* Regression: Status of Omnichannel's Icon isn't working in RoomsListView

* clean
2022-07-14 14:18:45 -03:00
Danish Ahmed Mirza dd48402214
[IMPROVE] Migrate UIKit/MultiSelect to ActionSheet (#4255)
* Migrate UIKit/MultiSelect to ActionSheet

* Fix no options initially on CreateDiscussion  view

* Change backgroundColor and use colors from useTheme

* Define missing types

* onSearch function for the ActionSheet

* Add onClose function to the ActionSheet and use colors from useTheme

* fix theme and bottomSheet

* fix actionSheet

* fix style

Co-authored-by: GleidsonDaniel <gleidson10daniel@hotmail.com>
2022-07-13 16:31:58 -03:00
Diego Mello 785ae0325b
Chore: Update icon set (#4355) 2022-07-13 14:09:15 -03:00
Gleidson Daniel Silva cc6a403bf7
[FIX] Room header not updating when room type changes (#4330) 2022-07-06 17:08:50 -03:00
Gleidson Daniel Silva e39919094e
[FIX] User status update (#4333) 2022-07-06 17:05:13 -03:00
Diego Mello 30d3b0b9f9
[FIX] Markdown not rendering emojis correctly on server version 5.0.0 (#4343) 2022-07-06 17:01:33 -03:00
Gleidson Daniel Silva bf7473c39b
[FIX] Add hoistNonReactStatics to withActionSheet hoc (#4331) 2022-07-06 16:57:00 -03:00
Diego Mello 37db9b208d
[IMPROVE] Make message parser default (#4339) 2022-07-06 12:43:50 -03:00
Alex Junior 1027b6c9e6
[IMPROVE] Use UI Elements from react-navigation (#4314)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-07-06 10:23:02 -03:00
Gleidson Daniel Silva 2e8b7d7755
[FIX]: Add showInput prop to show actionSheetContent without input (#4335) 2022-07-05 17:41:42 -03:00
Diego Mello f5167a2c94
Revert "[FIX] Form re-rendering on RoomInfoEditView when app receives newer data from stream (#4220)" (#4340)
This reverts commit d47320733a.
2022-07-04 18:05:58 -03:00
Diego Mello 3072bbd5b3
Revert "Chore: Migration to Hooks - Markdown (#4264)" (#4338)
This reverts commit 4fd0084bc1.
2022-07-04 15:10:14 -03:00
Diego Mello e48527b9be
Regression: missing comma on i18n file (#4320) 2022-06-27 19:33:44 -03:00
Alex Junior 4fd0084bc1
Chore: Migration to Hooks - Markdown (#4264)
* chore: migrate TextInput from class to functional

* changing from themes[theme] to colors

* removing markdown theme props from other files

* adding a force update and fix a stories

* adding testID and tests for markdown

* fixing some interfaces

* minor tweak

Co-authored-by: GleidsonDaniel <gleidson10daniel@hotmail.com>
2022-06-27 18:27:22 -03:00
Reinaldo Neto 18c44178d7
[IMPROVE] Migrate away from react-native-prompt-android to action sheet (#4300)
* Chore: Migrate away from react-native-prompt-android to action sheet

* fix header provile view with action sheet

* finished change password

* Close livechat and removed closeRoom dispatch

* remove lib react-native-prompt-android

* fix right buttons

* fix profile view in tablets

* fix action and room action for tablets

* remove onSubmitEditing

* fix keyboard for android tablet in landscape

* create base for actionSheet containers

* migrate EnterPasswordSheet to base

* migrate to base component

* fix colors and copy

* remove secure entry

* fix onSubmit

* fix android animation

Co-authored-by: GleidsonDaniel <gleidson10daniel@hotmail.com>
2022-06-27 16:03:24 -03:00
Alex Junior 1e9ae6e157
Chore: Migration to Hooks - FormTextInput (#4256)
* chore: migrate TextInput from class to functional

* removing the theme props

* adding tests for the FormTextInput

* minor tweak

* applying changes requested

* changing the way we import/export the FormTextInput and TextInput

* removing left comments

* minor tweak

* fix import

Co-authored-by: GleidsonDaniel <gleidson10daniel@hotmail.com>
2022-06-27 15:46:59 -03:00
Gleidson Daniel Silva 674f0285f6
Chore: Migrate RoomItem to Hooks (#4310)
* migrate roomItem to ts and fix some types

* remove unnecessary verification

* fix types

* fix SubscriptionType

* review

* remove theme prop driling and change file to tsx

* Fix component not re-rendering

* Remove a few props from attrs

* Remove accessibilityLabel state

* Fix propsAreEqual

* Fix cleanup

* Remove ts-ignore

Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-06-27 15:23:43 -03:00
Alex Junior 4b25fde8f6
Chore: Upgrade react-native-vector-icons from 8.1.0 to 9.1.0 (#4175)
* chore: upgrade `react-native-vector-icons` from 8.1.0 to 9.1.0

* all this storyshot added this `selectable: false`

* reversing file committed by mistake

* reverting the `cocoapods` version to the develop version.

* updating some snaps after merge with develop

Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>
2022-06-27 15:15:15 -03:00
Gleidson Daniel Silva 58a15b23b5
[NEW] Basic support for Video Conf (#4307)
* create livechat video conf feature

* add handler to call url

* remove webview and change to openUrl

* Checking settings

* stash

* add action sheet on click init and ad more handlers

* fix logic and call to create a video conf

* change JitsiMeetView from InsideStack to ChatStack to remove modal animation

* fix error logic

* fix stack

* fix comma

Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-06-27 15:04:20 -03:00
lingohub[bot] fc0d7e2ed3
Language update from LingoHub 🤖 on 2022-06-27Z (#4319)
Project Name: Rocket.Chat.ReactNative
Project Link: https://translate.lingohub.com/rocketchat/dashboard/rocket-dot-chat-dot-reactnative
User: Robot LingoHub

Easy language translations with LingoHub 🚀

Co-authored-by: Robot LingoHub <robot@lingohub.com>
2022-06-27 09:51:55 -03:00
Diego Mello 9151a1bfaf
Chore: Update gems (#4318) 2022-06-24 17:50:44 -03:00
Diego Mello 6e322ce44b
Chore: Resolve jpeg-js 0.4.4 (#4317) 2022-06-24 15:13:56 -03:00
Danish Ahmed Mirza 44ac06ad7d
[NEW] ImageViewer animations using new API from `react-native-gesture-handler` and `react-native-reanimated` v2 (#4221)
* Update ImageViewer to reanimated and RNGH v2 API

* Move styles outside the component

* Fix issues with pinch gesture

Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>
2022-06-23 17:19:42 -03:00
Reinaldo Neto 8563453735
[FIX] Announcement field triggers password suggestion (#4305)
Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>
2022-06-23 17:10:48 -03:00
Gleidson Daniel Silva 303d127949
[FIX] Change password not working on some cases (#4312)
* create iTotp enum

* migrate change user profile to method

* Fix minor i18n issues

* Use saveUserProfileMethod from Services

* Catch cancel event from TwoFactor modal

Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-06-23 16:59:57 -03:00
Reinaldo Neto bc09527d78
Chore: Migrate LoginServices to Hooks (#4216)
* Chore: Migrate LoginServices to Hooks

* fix lint

* change theme to colors

* back the separator as props

* refactor loginservice to folder

* refactor component login services

* Tests to LoginService's components

* finished loginservices

* Chore: Migrate LoginServices to Hooks

* fix lint

* change theme to colors

* back the separator as props

* refactor loginservice to folder

* refactor component login services

* Tests to LoginService's components

* finished loginservices

* fix location

* refactor TLoginStyle

* fix imports

* refactor lets to ref

Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>
2022-06-23 09:56:15 -03:00
Gleidson Daniel Silva a5a5c52058
Chore: Migrate containers/Toast to hooks (#4309) 2022-06-22 09:32:57 -03:00
Gleidson Daniel Silva 5f248ebeb5
[NEW] Delete my account (#4219)
* create new delete account button

Co-Authored-By: Danish Ahmed Mirza <danishmirza30602@gmail.com>

* change modal to action sheet

* better naming

* remove ? from translation

* update translations

* change to new figma layout

* fix export

* remove unused state

* add new text input to base input

* clean up

* update bottom sheet and create a mock

* remove unecessary bracket and fix type

* fix header

* migrate buttons to action sheet

* fix imports

* update yarn.lock

* add separator to styles

* add ternary verification

* minor tweaks: keyboard for landscape android tablet, interface IactionSheetProvider and remove navigation options to get ismasterdetail from redux, fix jest setup

* fix colors

* disconnect from sdk when delete the account

* update snapshot

Co-authored-by: Danish Ahmed Mirza <danishmirza30602@gmail.com>
Co-authored-by: Reinaldo Neto <reinaldonetof@hotmail.com>
2022-06-22 09:24:25 -03:00
Reinaldo Neto cd7e9e22f8
[FIX] Unresponsive status icons on Directory View and Share View (#4303) 2022-06-21 16:44:02 -03:00
Reinaldo Neto 9985e9baf3
[FIX] Remove servers offline from server list (#4286) 2022-06-21 16:40:29 -03:00
Danish Ahmed Mirza a5a45f533b
[FIX] Rooms are losing the time after search (#3722)
Co-authored-by: Reinaldo Neto <reinaldonetof@hotmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-06-21 16:35:51 -03:00
Reinaldo Neto 28ee43f817
[FIX] Avatar pixel size (#4285)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-06-21 16:23:55 -03:00
Gleidson Daniel Silva 6b15ace933
[FIX] In some discussions you haven't joined yet, messages are not being loaded. (#4269)
* fix discussions not loadings

* Adds one more layer of verification to get the correct room type
2022-06-14 13:12:44 -03:00
Reinaldo Neto fa90e4d456
Chore: Hooks - create usePermissions (#4190)
* Chore: Hooks - create custom hook usePermissions

* minor tweak

* Change usage of usePermissiosn on LivechatEditView

* Create getPermissionsSelector

* Simplify selector

* Simplify userRoles

* First render with permissions array length of false

* Move roles state closer to each other

* useSubscription (not working, but looking cool)

* at least it's working now

* working

* cleanup

* solve ts return

* Change it to useSubscriptionRoles only and check for diff on the state

* Remove IAppState

* Minor tweak to work properly useSubscriptionRoles

Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-06-13 17:36:54 -03:00
Reinaldo Neto a16c271f1f
Chore: Hooks - migrate RoomHeader to hook (#4200)
* roomHeader hook

* minor tweak

* Fix ts stuffs

* fix colors

* refactor
2022-06-13 17:16:20 -03:00
Gleidson Daniel Silva 74a82974f0
[FIX] Fix require cycle for appGroupPath (#4298)
* fix require cycle for appGroupPath

* add console log
2022-06-13 10:58:00 -03:00
Reinaldo Neto 79cd150231
[NEW] Option to show mentions badge (#4265)
* [IMPROVE] Option to show mentions badge

* fix the local database and mergeSubscriptions, missing the state in notificationPrefView

* finished the hideMentions

* fix the string version
2022-06-13 10:24:54 -03:00
Reinaldo Neto a21c797886
[FIX] Searching for users when creating Discussions (#4267) 2022-06-13 10:15:22 -03:00
Danish Ahmed Mirza 5899b1f789
[NEW] Go to RoomView if the mentioned #channel is already joined (#4204)
* [NEW] Go to RoomView if the mentioned #channel is already joined

* Update stories and fix lint errors

* Use getSubscriptionByRoomId

* Fix channel name issue

* Use goRoom

* add jest-expo to jest preset

* update snapshot

Co-authored-by: GleidsonDaniel <gleidson10daniel@hotmail.com>
2022-06-10 17:33:48 -03:00
Gerzon Z 20a03611a7
[NEW] Call to Action buttons for Omnichannel (#4060)
* add: kebab and bottom sheet for omnichannel

* update: `RoomActionsView`

* chore: add canned responses to MessageBox

* chore: add omnichannel permissions to RightButtons

chore: missing changes to previous commit on RoomView

* chore: make icon available on first re-render after joining the room

* refactor: omnichannel permissions logic outside RightButtons

* refactor: extract omnichannel permissions' logic from RoomActionsView

* fix: omnichannel permissions on RightButton component

* add: omnichannelPermissions to RoomActions route props

* update: RoomView

* remove: setOmnichannelPermissions function

* refactor: `omnichannelPermissions` to object

* refactor: extract `on-hold` Omnichannel to `RoomView`

* add: `canPlaceLivechatOnHold` to `Omnichannel`s actions

* update: type for `showActionSheet`

* update: canned responses permission on

* fix: place on-hold permission not updating properly

* update: validation for on-hold

remove: unused variable

* remove: unnecessary param

* update: MessageBox

* fix: Omnichannel permissions on taking chat

* undo: comment on Reactotron

* Fix place chat on-hold

* fix setOptions in messageBox

* resolve lint

* change return to return to waiting line

* remove joined

* fix console.log

* fix kebab button

* fix subscription to room outside of db

Co-authored-by: Reinaldo Neto <reinaldonetof@hotmail.com>
Co-authored-by: Reinaldo Neto <47038980+reinaldonetof@users.noreply.github.com>
2022-06-09 11:42:12 -03:00
Diego Mello d47320733a
[FIX] Form re-rendering on RoomInfoEditView when app receives newer data from stream (#4220) 2022-06-09 10:01:58 -03:00
Danish Ahmed Mirza 748e87acf3
Chore: Migrate containers/Avatar to hooks (#4139)
* Migrate containers/Avatar to hooks

* Migrate to `useSelector` hook and `useRef`

* Change user object prop to primitive type

* fix re-render and update snapshot

* fix lint

* update pods

Co-authored-by: GleidsonDaniel <gleidson10daniel@hotmail.com>
2022-06-06 12:33:36 -03:00
Alex Junior 614d9afe65
Chore: Evaluate helpers and utils - Typescript (#4146) 2022-06-06 11:17:51 -03:00
Alex Junior e212a3c946
[IMPROVE] Redesign search box component (#4195)
Co-authored-by: Danish Ahmed Mirza <danishmirza30602@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-06-06 10:53:02 -03:00
Danish Ahmed Mirza 02c1bc50b9
[NEW] Update room item animations (#4024)
* Upgrade react-native-gesture-handler to 2.3.0

* Update room item animations to reanimated v2

* Add Parallax animation on fav and hide buttons and additional swipe gesture to toggleFav

* Fix tests

* Ignore typescript error for setTimeout function

* Update pods

* Fix blank area on swiping all the way right/left

* Fix Action Buttons on devices with notch

* Update snapshot

* Use colors from useTheme

* Destructure props

* Proper types for nativeEvent and event

* Remove toggleFav gesture

* Clean bits

* Fix lint error

* Fix position of Room Action Buttons on MasterDetail

* Remove comment

* Update animations logic

* Add haptic feedback on swipe

* Add haptic feedback on unswipe gesture

* Update react-native-gesture-handler to 2.4.2

* update pods

* Migrating off RNGHEnabledRootView

* Update types to ReturnType<typeof setTimeout>

Co-authored-by: GleidsonDaniel <gleidson10daniel@hotmail.com>
2022-06-06 10:23:49 -03:00
dependabot[bot] c76a1e6a4c
Upgrade: Bump axios from 0.21.1 to 0.27.2 (#4276)
Bumps [axios](https://github.com/axios/axios) from 0.21.1 to 0.27.2.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v0.27.2/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.21.1...v0.27.2)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Reinaldo Neto <47038980+reinaldonetof@users.noreply.github.com>
2022-06-03 23:55:02 -03:00
dependabot[bot] 42efad9249
Upgrade: Bump ua-parser-js from 0.7.31 to 1.0.2 (#4280)
* Upgrade: Bump ua-parser-js from 0.7.31 to 1.0.2

Bumps [ua-parser-js](https://github.com/faisalman/ua-parser-js) from 0.7.31 to 1.0.2.
- [Release notes](https://github.com/faisalman/ua-parser-js/releases)
- [Commits](https://github.com/faisalman/ua-parser-js/compare/0.7.31...1.0.2)

---
updated-dependencies:
- dependency-name: ua-parser-js
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix the resolutions

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Reinaldo Neto <47038980+reinaldonetof@users.noreply.github.com>
Co-authored-by: Reinaldo Neto <reinaldonetof@hotmail.com>
2022-06-03 23:30:24 -03:00
dependabot[bot] 7b2119fb01
Upgrade: Bump eslint-config-prettier from 8.3.0 to 8.5.0 (#4248)
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 8.3.0 to 8.5.0.
- [Release notes](https://github.com/prettier/eslint-config-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-config-prettier/compare/v8.3.0...v8.5.0)

---
updated-dependencies:
- dependency-name: eslint-config-prettier
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Reinaldo Neto <47038980+reinaldonetof@users.noreply.github.com>
Co-authored-by: Reinaldo Neto <reinaldonetof@hotmail.com>
2022-06-03 19:12:21 -03:00
dependabot[bot] 149ddb3c31
Upgrade: Bump i18n-js from 3.8.0 to 3.9.2 (#4230)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Alex Junior <alexalexandrejr@gmail.com>
2022-06-03 17:53:39 -03:00
dependabot[bot] 331acb15a6
Upgrade: Bump @react-native-community/cameraroll from 4.0.4 to 4.1.2 (#4238)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Alex Junior <alexalexandrejr@gmail.com>
2022-06-03 17:01:42 -03:00
dependabot[bot] 7cbd3afa35
Upgrade: Bump eslint-plugin-react from 7.20.3 to 7.30.0 (#4233)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Alex Junior <alexalexandrejr@gmail.com>
2022-06-03 16:37:47 -03:00
dependabot[bot] 0570dd9172
Upgrade: Bump reactotron-react-native from 5.0.0 to 5.0.2 (#4275) 2022-06-03 15:22:12 -03:00
dependabot[bot] a15601ff0d
Chore(deps): Bump @rocket.chat/ui-kit from 0.31.11 to 0.31.13 (#4261) 2022-06-03 13:39:13 -03:00
dependabot[bot] bc3484c61d
Chore(deps): Bump eventsource from 1.1.0 to 1.1.1 (#4262) 2022-06-03 13:30:42 -03:00
dependabot[bot] 64ae402fc4
Chore(deps): Bump plist from 3.0.2 to 3.0.5 (#3977) 2022-06-03 13:23:10 -03:00
dependabot[bot] 82c16e2938
Upgrade: Bump cross-fetch from 3.1.4 to 3.1.5 (#4140) 2022-06-03 13:21:14 -03:00
dependabot[bot] 953dc1cb9a
Upgrade: Bump url-parse and @types/url-parse (#4228) 2022-06-03 13:19:34 -03:00
dependabot[bot] 5e26c6bceb
Upgrade: Bump react-native-file-viewer from 2.1.4 to 2.1.5 (#4236) 2022-06-03 13:17:43 -03:00
dependabot[bot] 8c0367325d
Upgrade: Bump moment from 2.29.1 to 2.29.3 (#4249) 2022-06-03 12:58:53 -03:00
Gleidson Daniel Silva 329e74b720
[FIX] Unify attachment rendering logic (#4260)
* fix verification adding fields logic

* update snapshot

* Change order for both logics

* Cleanup

Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-06-02 16:58:42 -03:00
Alex Junior 6220375f7b
Chore: upgrade react navigation to 6.0.10 version (#4120) 2022-06-01 16:46:37 -03:00
Reinaldo Neto 496d3f2ceb
[FIX] Search Message stops showing the correct result (#4253) 2022-05-31 14:37:42 -03:00
Gerzon Z 11c8510398
[FIX] User status update (#3961)
* update: `setCustomStatus` function

* update: `StatusView`'s `setCustomStatus`

* update: `setCustomStatus` function

* update: `StatusView`'s `setCustomStatus`

* refactor: `submit` function

remove: setCustomStatus
update: logEvent

* remove: failed request logic

* fix detox test

Co-authored-by: Reinaldo Neto <reinaldonetof@hotmail.com>
2022-05-31 13:50:10 -03:00
Gleidson Daniel Silva c85fd0ba99
Chore: Update react-native-fast-image from 8.2.0 to 8.5.11 (#4210)
* upgrade react-native-fast-image

* change import to react-native-fast-image

* bump version

* update path from lib

* fix import
2022-05-31 13:08:18 -03:00
Diego Mello 2e78d319e0
Bump version to 4.29.0 (#4259) 2022-05-30 19:14:21 -03:00
Gleidson Daniel Silva f73500391b
Chore: create dependabot.yml config (#4227) 2022-05-27 15:21:08 -03:00
Reinaldo Neto a527b320e9
[FIX] Migrate autoTranslate.translateMessage to REST API (#4029)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-05-27 14:33:21 -03:00
Alex Junior 1ce7d5cf6a
Regression: right icons overlapping when users name is long (#4224)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-05-27 14:27:43 -03:00
Alex Junior 3265a8395d
Regression: Fix load starred, mentions, pinned and files messages (#4214) 2022-05-27 14:22:47 -03:00
Reinaldo Neto a82e3e6c1a
[FIX] Navigate to MarkdownTableView using tablets (#4222)
* [FIX] Navigate to MarkdownTableView using tablets

* [FIX] Navigate to MarkdownTableView using tablets

* fix lint

* update yarn.lock

Co-authored-by: Alex Junior <alexalexandrejr@gmail.com>
2022-05-27 14:18:51 -03:00
Reinaldo Neto 53aaae5d82
[FIX] Showing blank screen on share extension if the user is not logged in (#4207)
* [FIX] Redirect not logged users to WithoutServersView

* minor tweak

* [FIX] Redirect not logged users to WithoutServersView

* minor tweak

* fix the init

* update yarn.lock

Co-authored-by: Alex Junior <alexalexandrejr@gmail.com>
2022-05-27 14:11:26 -03:00
Danish Ahmed Mirza 992e43815d
[FIX] Closing animation of action sheet on item press (#4223) 2022-05-26 15:13:34 -03:00
Reinaldo Neto bc34706f48
Chore: Update Detox to 19.7.0 (#4215)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-05-26 14:10:24 -03:00
Reinaldo Neto 5101ab4769
Chore: update @rocket.chat/ui-kit to 0.31.11 (#4203)
* Chore: Update UiKit

* fix interfaces and plain_text and mrkdwn
2022-05-26 11:07:17 -03:00
Danish Ahmed Mirza f1f8e9526e
[FIX] Channel mentions when the slug starts with underscore (#4108) 2022-05-23 15:05:00 -03:00
Reinaldo Neto 41721757d0
Chore: Evaluate SearchMessagesView - TypeScript (#4122)
* Chore: Evaluate SearchMessagesView - TypeScript

* minor tweaks

* Update app/views/SearchMessagesView/index.tsx

Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>

Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>
2022-05-23 14:46:30 -03:00
Reinaldo Neto b1ffffb04b
Chore: Migration to Hooks - QueueListView (#4171)
* Chore: Migration to Hooks - QueueListView

* minor tweaks

* minor tweaks
2022-05-23 14:33:58 -03:00
Gleidson Daniel Silva 5f621cb33f
Chore: Add @babel/plugin-transform-named-capturing-groups-regex (#4208) 2022-05-23 14:24:30 -03:00
Gleidson Daniel Silva aa3f963af6
[FIX] Fix delete room on team's channel list (#4191)
* fix delete room

* update pods
2022-05-23 14:16:17 -03:00
Alex Junior 8178f7cf87
[FIX] Applying same color to the time on replied messages (#4211) 2022-05-23 13:37:56 -03:00
Reinaldo Neto d4bee9254d
Regression: Click to join call button (#4206) 2022-05-23 10:24:33 -03:00
Alex Junior 4fc8e5e9a4
[FIX] Unify RoomItem UpdatedAt and Message time styles (#4205) 2022-05-20 14:56:07 -03:00
Danish Ahmed Mirza 6384d60efc
Chore: Migrate containers/Button to Typescript and Hooks (#4071) 2022-05-20 13:37:57 -03:00
Alex Junior 1e09589eca
Chore: Update @react-native-slider from 3.0.3 to 4.2.2 (#4176) 2022-05-20 00:14:23 -03:00
Alex Junior e38cfa61fe
Chore: Upgrade react-native-document-picker from 5.2.0 to 8.1.0 (#4172)
* chore: upgrade `react-native-document-picker` from 5.2.0 to 8.1.0

* change `DocumentPicker.pick` to `DocumentPicker.pickSingle`
2022-05-20 00:01:34 -03:00
Alex Junior 469c04e90a
Chore: Evaluate e2e screens - TypeScript (#4142) 2022-05-19 23:42:55 -03:00
Danish Ahmed Mirza f5625cd5f3
Chore: Migrate ActionSheets to `react-native-bottom-sheet` and make them dynamic (#4193)
* Install react-native-bottom-sheet

* Migrate ActionSheets to react-native-bottom-sheet

* Remove unnecessary props

* Minor fixes

* Enable OverDrag

* Fix position in landscape mode

* Prefix interface with I

* Remove react-native-scroll-bottom-sheet

Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-05-19 13:53:45 -03:00
Gleidson Daniel Silva 9d514690f0
Chore: Fix websocket connection to sdk (#4182) 2022-05-19 13:43:49 -03:00
Alex Junior 4a84e47cfa
Chore: Evaluate TextInput component (#4181)
* changing from `containers/TextInput` to `containers/TexInput/FormTextInput`

* changing from `presentation/TextInput` to `containers/TexInput/index`

* update storybook

* update status view after merge with develop

* removing `app/containers/__snapshots__/TextInput.stories.storyshot` in favor from `app/containers/TextInput/__snapshots`
2022-05-18 16:17:42 -03:00
Reinaldo Neto 1a52c7dc57
Chore: Evaluate AddChannelTeamView - TypeScript (#4170) 2022-05-17 10:39:21 -03:00
Reinaldo Neto f5051e189d
Chore: Evaluate ModalBlockView - TypeScript (#4124) 2022-05-17 10:22:41 -03:00
Gleidson Daniel Silva be19da54a3
Chore: Evaluate StatusView - TypeScript ++hooks (#4075)
* move statusview to your specific folder

* create showToast helper

* migrate StatusView to hooks

* fix type

* add peer deep to useEffect

* fix lint

* fix error message
2022-05-17 09:42:31 -03:00
Alex Junior 9642d9e8a8
Regression: Android Official lane on CI removed from develop branch (#4196) 2022-05-16 15:24:38 -03:00
Gerzon Z f9394b66e3
Chore: evaluate `RoomsListView` (#4147) 2022-05-16 15:14:04 -03:00
Alex Junior 5cd4186f64
[IMPROVE] Place time after username on message (#4177) 2022-05-15 15:29:07 -03:00
Gleidson Daniel Silva 6dfce40c90
Chore: Create useAppSelector hook (#4189)
* create useAppSelector hook

* migrate useSelector to useAppSelector
2022-05-13 12:01:34 -03:00
Gleidson Daniel Silva 0a7082e2fe
Chore: Evaluate RocketChat v3 (#4155)
* remove roomSub from rocketchat

* remove _setUser

* remove this.activeUsersSubTimeout and IRocketChat imports

* remove this from connect

* remove rocketchat and comment abort controler

* fix lint

Co-authored-by: Alex Junior <alexalexandrejr@gmail.com>
2022-05-13 11:52:37 -03:00
Gleidson Daniel Silva f99ec9f8e3
[FIX] iOS Share Extension not loading on development (#4187)
* remove deviceToken from constructor

* remove old patch to verify if is running on shareExtension

* add share extension verification

* Remove imports from `/notifications/` just to test the share extension

* Revert "Remove imports from `/notifications/` just to test the share extension"

This reverts commit b3492abad413a5a8a6cf3cd027e33044c437c627.

* changes from constructor to a plain function

* update pods

Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-05-13 11:37:02 -03:00
Gerzon Z 311b346347
Chore: evaluate `InviteUsersView` (#4100) 2022-05-13 10:02:01 -03:00
Gerzon Z 4d4a5cffd9
Chore: evaluate `MarkdownTableView` (#4104) 2022-05-13 09:57:19 -03:00
Reinaldo Neto 81c6ffce40
Chore: Evaluate RoomInfoView - TypeScript (#4107)
* Chore: Evaluate RoomInfoView - TypeScript

* refactor interfaces
2022-05-11 15:20:59 -03:00
Reinaldo Neto fe84090703
Chore: Evaluate ShareView - TypeScript (#4087) 2022-05-11 14:59:29 -03:00
Reinaldo Neto 59be3b68b8
Chore: Evaluate AddExistingChannelView - TypeScript (#4169) 2022-05-11 14:38:49 -03:00
Reinaldo Neto fb11932d0b
Chore: Evaluate AuthenticationWebView - TypeScript (#4158) 2022-05-11 13:59:57 -03:00
Reinaldo Neto 390516a5b4
Chore: Evaluate AttachmentView - TypeScript (#4161) 2022-05-11 13:42:03 -03:00
Reinaldo Neto 5970d29ee7
Chore: Evaluate AdminPanelView - TypeScript (#4162) 2022-05-11 13:33:27 -03:00
Alex Junior 67073a1d75
[IMPROVE] Automatically release Experimental Android to Production on develop branch CI (#4056) 2022-05-10 23:42:35 -03:00
Alex Junior 1d452ed9e6
Chore: Evaluate MessagesView - TypeScript (#4113) 2022-05-10 23:22:17 -03:00
Gerzon Z e233058e22
Chore: evaluate `RoomInfoEditView` (#4095)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-05-10 18:26:06 -03:00
Gerzon Z c9fd7973f0
Chore: evaluate `LegalView` (#4097)
* chore: evaluate LegalView

* remove: `options` from `LegalView` on OutsideStack

* remove: `mapStateToProps` in favor of `useSelector`
2022-05-10 18:19:57 -03:00
Gerzon Z 9320d1e05e
Chore: evaluate SettingsView (#4090)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-05-10 18:19:06 -03:00
Alex Junior e0bfdee70c
[IMPROVE] Create edited component for edited messages (#4048) 2022-05-10 14:40:08 -03:00
Gleidson Daniel Silva f60de94cba
Chore: Update react-native-progress from 4.1.2 to 5.0.0 (#4174) 2022-05-10 10:29:33 -03:00
Gleidson Daniel Silva f21d723c23
Chore: Update redux from 4.1.0 to 4.2.0 and react-redux from 7.2.4 to 8.0.1 (#4173) 2022-05-10 10:07:10 -03:00
Gerzon Z 6623044344
Chore: Evaluate `TeamChannelsView` (#4088)
* update: `TeamChannelsView`'s interfaces

* update: `TeamChannelsView`'s route params and types

* update: `teamChannels` type

Co-authored-by: GleidsonDaniel <gleidson10daniel@hotmail.com>
2022-05-09 10:21:09 -03:00
Alex Junior abbb97cd84
Chore: Evaluate ThreadMessagesView - TypeScript (#4084) 2022-05-06 23:34:58 -03:00
Alex Junior 55d66c85db
Chore: Evaluate ProfileView - Typescript (#4091) 2022-05-06 23:11:07 -03:00
Alex Junior 1346154b65
Chore: Evaluate SidebarView - Typescript (#4089) 2022-05-06 22:19:27 -03:00
Alex Junior 8ca73e273a
Chore: Evaluate emoji picker - TypeScript (#4069) 2022-05-06 22:06:08 -03:00
Diego Mello e36413c445
Bump version to 4.28.0 (#4167) 2022-05-05 13:45:53 -03:00
Gerzon Z 88b4a3f672
Chore: evaluate `ThemeView` (#4086)
* chore: evaluate `ThemeView`

* update: `IThemeViewProps` to extend `IBaseScreen`

* update: `ThemeView` interface

* update: dependency array

* update: use `useLayoutEffect` instead
2022-05-05 11:24:36 -04:00
Gleidson Daniel Silva 305f360b40
[FEAT]: Request current passcode before enter "Screen lock" screen (#4052)
* move auth to handleLocalAuthentication function

* add support to close ScreenLockedView

* create useServer hook

* add check to verify if you have a password before entering the screen

* fix import
2022-05-03 17:29:00 -03:00
Danish Ahmed Mirza 2077671761
Chore: Migrate containers/Loading to `reanimated` v2 and Hooks (#4073)
* Chore : Clean `Loading` component and migrate to reanimated v2

* Remove theme prop

* Use colors from useTheme and PixelRatio for image

Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>
2022-05-03 17:15:16 -03:00
Gleidson Daniel Silva 6eb2179088
Chore: Update ua-parser-js from 0.7.18 to 0.7.24 and set resolution (#4058)
* update ua-parser and set resolution

* update ua-parser and set resolution

* wip
2022-05-03 17:06:49 -03:00
Samay Kothari 9d0b659097
[FIX] Messages showing URL preview on Room Actions (#4065)
* using database query instead of Rocketchat search api to get message search results

* getting search data from server then converting it into the format as required for message rendering

* fixing some redundant changes

* remove ts-ignore

* removing redundant statements

* url preview is visible when we see messages in pinned, mentions and starred messages

Co-authored-by: Gerzon Z <gerzonzcanario@gmail.com>
2022-05-03 15:52:56 -04:00
Gerzon Z b006fc4358
Chore: evaluate `JitsiMeetView` (#4103) 2022-05-03 14:17:00 -04:00
Gerzon Z d720b5aca9
Chore: evaluate `ForgotPasswordView` (#4106) 2022-05-03 12:33:35 -04:00
Gerzon Z d277788dc4
Chore: evaluate `AuthLoadingView` (#4102)
* chore: evaluate `AuthLoadingView`

* remove: `mapStateToProps`, `connect` and interface
2022-05-03 12:25:18 -04:00
Gerzon Z 0dc34f1eca
Chore: evaluate `DefaultBrowserView` (#4105) 2022-05-03 12:12:43 -04:00
Gerzon Z 784b016736
chore: evaluate `LoginView` (#4098) 2022-05-03 12:05:01 -04:00
Gerzon Z 99409d1af4
chore: evaluate `NewServerView` (#4101) 2022-05-03 11:48:02 -04:00
Gerzon Z 5dea514751
chore: evaluate `PickerView` (#4096) 2022-05-03 11:13:53 -04:00
Gerzon Z ed63f69a2d
chore: evaluate `SendEmailConfirmationView` (#4093) 2022-05-03 11:06:02 -04:00
Gerzon Z edfeeb80d3
Chore: Unsupported system messages (#4047)
* chore: unsupported system messages

* add: Livechat's ignored system messages

* add: `IGNORED_LIVECHAT_SYSTEM_MESSAGES`

* add: support for Livechat's system messages

* remove: `console.log`
2022-05-03 10:27:20 -04:00
Gleidson Daniel Silva 06a0c4f730
Regression: Fix badge count logic on iOS (#4154)
* fix badge count logic

* set count default value
2022-05-03 08:53:18 -03:00
Reinaldo Neto bd55fe44ba
Chore: Evaluate NewMessageView - TypeScript (#4115)
* Chore: Evaluate NewMessageView - TypeScript

* minor tweak
2022-05-02 23:43:30 -03:00
Reinaldo Neto 5d29fcad53
Chore: Evaluate RegisterView - TypeScript (#4114) 2022-05-02 23:21:43 -03:00
Reinaldo Neto d24e59669a
Chore: Evaluate ScreenLockConfigView - TypeScript (#4094) 2022-05-02 23:14:49 -03:00
Reinaldo Neto 57154101bd
Chore: Evaluate SecurityPrivacyView - TypeScript (#4092) 2022-05-02 23:06:37 -03:00
Reinaldo Neto 5f1ac0b523
Chore: Evaluate SetUsernameView - TypeScript (#4082) 2022-05-02 22:53:19 -03:00
Reinaldo Neto 1118ae6fae
Chore: Evaluate UserNotificationPreferencesView - TypeScript (#4079) 2022-05-02 22:45:31 -03:00
Reinaldo Neto 3ce32bbfd8
Chore: Evaluate UserPreferencesView - TypeScript (#4078) 2022-05-02 22:34:56 -03:00
Reinaldo Neto 82bca54575
Chore: Evaluate WorkspaceView - TypeScript (#4077) 2022-05-02 22:27:33 -03:00
Reinaldo Neto 83fb5ce7fb
Chore: Evaluate LivechatEditView - TypeScript (#4125) 2022-05-02 22:19:28 -03:00
Reinaldo Neto 21a6fcee87
Chore: Evaluate SelectServerView - TypeScript (#4118) 2022-05-02 22:13:03 -03:00
Reinaldo Neto 10c4fddd61
Chore: Evaluate ShareListView - TypeScript (#4117) 2022-05-02 22:06:19 -03:00
Reinaldo Neto 888bcae48e
Chore: Evaluate RoomMembersView - TypeScript (#4116)
* Chore: Evaluate RoomMembersView - TypeScript

* evaluate show action sheet

* fix tsubscriptionmodel
2022-05-02 21:48:08 -03:00
Reinaldo Neto fe1b8b75bd
Chore: Evaluate CannedResponsesListView - TypeScript (#4149) 2022-05-02 21:30:20 -03:00
Reinaldo Neto 243d016bf1
Chore: Evaluate CannedResponseDetail - TypeScript (#4150) 2022-05-02 21:23:03 -03:00
Reinaldo Neto 93c3c5f3a9
Chore: Evaluate RoomActionsView - TypeScript (#4148) 2022-05-02 20:13:39 -03:00
Reinaldo Neto a84d4e9534
Chore: Evaluate RoomView - TypeScript (#4134)
* Chore: Evaluate RoomView - TypeScript

* fix messagebox and list refs

* fix the refs

* refactor other refs

* remove any from privates

* storyshot tweak
2022-05-02 19:58:23 -03:00
Reinaldo Neto cb1dabbc16
Chore: Evaluate CreateDiscussionView - TypeScript (#4133) 2022-05-02 19:48:29 -03:00
Alex Junior d99b31849a
Chore: Evaluate Icon - Typescript (#3982)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-05-02 16:21:15 -03:00
Alex Junior b63f514df7
Chore: Evaluate NotificationPreferencesView - Typescript (#4099) 2022-05-02 15:24:17 -03:00
Alex Junior 43e9964b7b
Chore: Evaluate Create Channel - TypeScript (#4144) 2022-05-02 15:11:41 -03:00
Alex Junior 1efd6a9a65
Chore: Evaluate AutoTranslate- TypeScript (#4145) 2022-05-02 14:59:49 -03:00
Gleidson Daniel Silva 2e8812a33e
Chore: Upgrade Gradle from 6.7 to 6.9.2 (#4049)
* upgrade gradle to version 6.9

* upgrade gradle to version 6.9.2
2022-05-02 13:38:09 -03:00
Reinaldo Neto ee3e569512
Chore: Evaluate ReadReceiptView - TypeScript (#4123) 2022-05-02 11:17:55 -03:00
Reinaldo Neto 8ac38a2e04
Chore: Evaluate SelectedUsersView - TypeScript (#4121) 2022-05-02 10:09:10 -03:00
Reinaldo Neto e5f140e231
Chore: Evaluate SelectListView - TypeScript (#4119)
* Chore: Evaluate SelectListView - TypeScript

* minor tweak
2022-05-02 09:40:19 -03:00
Reinaldo Neto 8896370a6c
Chore: Evaluate DiscussionsView - TypeScript (#4129) 2022-05-02 09:23:57 -03:00
Reinaldo Neto a1e672df0e
Chore: Evaluate DisplayPrefsView - TypeScript (#4127)
* Chore: Evaluate DisplayPrefsView - TypeScript

* minor tweak
2022-05-02 09:12:41 -03:00
Reinaldo Neto f04b15a432
Chore: Evaluate ForwardLivechatView - TypeScript (#4126)
* Chore: Evaluate ForwardLivechatView - TypeScript

* minor tweaks
2022-05-02 09:03:55 -03:00
Reinaldo Neto a27d63c22e
Chore: Evaluate DirectoryView - TypeScript (#4130) 2022-05-02 08:53:47 -03:00
Gerzon Z 744ee27e18
Regression: Omnichannel icons (#4136)
* fix: Omnichannel icons

* update: `RoomItem.storyshot`
2022-04-29 13:08:19 -04:00
Gleidson Daniel Silva 89e0a40d95
Chore: remove lib/rocketchat step 2 (#4035)
* create index file

* remove roomTypeToApiType from rocketchat and fix imports

* move TOKEN_KEY to const file

* move CURRENT_SERVER to const file

* move CERTIFICATE_KEY to const file

* getRoom

* rename getSlashCommands

* getSlashCommands

* readMessages

* getRooms

* loadThreadMessages

* loadNextMessages

* loadSurroundingMessages

* loadMessagesForRoom

* loadMissedMessages

* clearCache

* canOpenRoom

* setUser

* userPreferencesMethods

* getCustomEmojis

* callJtisi

* triggerActions

* getPermissions

* getRoles

* getSettings

* getUsersPresence

* logout

* sendFileMessage

* shareExtension

* sendMessage

* enterpriseModules

* getPermalinks

* search

* change RocketChat.metodo to direct call

* fix types

* Fix login

* Fix createChannel

* migrate service methods to Service.method call

* change call directly to RocketChat because the use of this

* rollback

* rollback

* fix create discussion

* fix import

Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-04-28 17:37:25 -03:00
Gerzon Z 08271f6114
Regression: Users search on `CreateDiscussionView` (#4112)
* fix: users search on `CreateDiscussionView`

* chore: increased readability for `getUsers` function
2022-04-26 14:15:29 -04:00
Gleidson Daniel Silva c910f8abe1
Regression: Fix websocket connection (#4083)
* reinstall react native and pods

* anotation of the react native package to the branch fix-ios-connections

* fix makes the correct point to the address of the lib
2022-04-22 16:52:01 -03:00
Diego Mello 5c0a7ab1d0
Chore: Migrate to update_code_signing_settings (#4085) 2022-04-22 16:20:48 -03:00
Diego Mello 0ed8cdaa6a
Bump version to 4.27.0 (#4076) 2022-04-20 18:41:56 -03:00
Gerzon Z 8a75dcf87b
Chore: evaluate `RoomItem` (#4023)
* chore: evaluate `RoomItem`

* update: `RoomItem.storyshot`

* update: interfaces for RoomItem components

* update: UnreadBadge import and RoomItem interfaces

* remove: `avatarSize` from interfaces

* update: `RoomItem.storyshot`
2022-04-20 17:37:54 -04:00
Reinaldo Neto a2baca63cb
[CHORE] Change circleci to cimg (#4054)
* [CHORE] Change circleci to cimg

* tweak build experimental

* testing images

* tweak cimg
2022-04-20 18:22:59 -03:00
Gerzon Z aab4e4b12a
[FIX] Avatar's size on display mode change (#4042)
* fix: avatar's size

* update snapshot

* update: snapshots

Co-authored-by: GleidsonDaniel <gleidson10daniel@hotmail.com>
2022-04-20 17:02:18 -04:00
Reinaldo Neto 8012031cd3
[NEW] On-Hold chats for Omnichannel (#4051)
* [NEW] Implementing On-Hold Livechat for Omnichannel

* added onHold to database

* list header title open livechats

* update rooms list view

* remove placeOnHold after clicked

* fix mesasgebox reactive to on hold

* navigate to roomslistview

* minor tweaks

* for grouping too

* fix chat on-hold when the agent is fully

* show on hold system messages
2022-04-20 17:53:11 -03:00
Gleidson Daniel Silva a4090782f5
Regression: Fix setBadgeCount import (#4074) 2022-04-20 11:42:59 -03:00
Reinaldo Neto 21c8de56ea
[IMPROVE] Accept user avatar url from external provider (#4002)
* [IMPROVE] Accept url to user avatar from external provider

* fix avatar sidebar
2022-04-18 21:52:02 -03:00
Reinaldo Neto 3c53d48a3e
[FIX] Omnichannel chat is broken the first time is taken (#4037)
* [FIX] Omnichannel chat is broken the first time is taken

* refactor how to get a room from db
2022-04-18 16:35:50 -03:00
Reinaldo Neto 0a67cb8096
[IMPROVE] Visibility of the “incoming chats” in queue (#4039)
* [IMPROVE] Visibility of the “incoming chats” in queue

* fix the custom icon for rtl

* fix thumb colors

* clean queue empty

* added alert to confirm enable omnichannel

* switch to normal

* fix storyshot because was added a new props to list item

* fix height container

* minor tweak

* minor tweak

* fix title
2022-04-15 00:11:36 -03:00
Reinaldo Neto 064920e61b
Chore: Evaluate UnreadBadge to Typescript (#4018)
* Chore: Evaluate UserItem to Typescript and moved from presentation to container

* minor tweak
2022-04-14 23:51:59 -03:00
Reinaldo Neto b75ac1de8b
[IMPROVE] Support Omnichannel icons (#3959)
* [IMPROVE] Support Channel Icons for Omnichannel

* Prop drilling sourceType

* create a column for source in WatermelonDB

* Add sms icon

* start of fetching

* removed usefetch

* custom icon to RoomHeader, RoomActions, RoomInfo

* minor tweak in interface

* fix margin

* add connected to sourceType

* make ts happy

* minor tweak

* fix storyshot

* refactor omnichannel source interface

* minor tweak roomActionsview

* Added storyshot

* minor tweak

* fix storyshot

* fix display extended without avatar

* fix connected object

* wip android build

Co-authored-by: Diego Mello <diegolmello@gmail.com>
Co-authored-by: GleidsonDaniel <gleidson10daniel@hotmail.com>
2022-04-14 23:27:36 -03:00
Reinaldo Neto 25c37c1a60
Chore: Migrate i18n to Typescript (#3988)
* Chore: Migrate i18n to Typescript and fix the Left and Right actions in RoomItem

* remove fix to roomItem

* update storyshot

* Chore: Migrate i18n to Typescript and fix the Left and Right actions in RoomItem

* remove fix to roomItem

* update storyshot

* fix removed itens

* fix changes requested

* interface for i18n, added resolveJsonModule to tsconfig.json

* tweak at error alert

* fix storyshot

* refactor comments

* create function isTranslated

* fix accessibilityLabel

Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-04-14 17:30:41 -03:00
Diego Mello 397cd3d9b8
[FIX] Stop showing native push notification when in foreground (#4059) 2022-04-14 15:24:04 -03:00
Reinaldo Neto e28f7ac4b6
[FIX] Send upload inside a thread (#4053) 2022-04-14 14:40:37 -03:00
Reinaldo Neto 456d017475
Chore: Migrate REST API - getSupportedLanguagesAutoTranslate to Typescript (#4020) 2022-04-14 14:29:32 -03:00
Alex Junior ef81796cd3
Chore: Evaluate KeyboardView - TypeScript (#4014)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-04-13 17:43:56 -03:00
Gerzon Z 99ea5d8e2a
Chore: TypeScript migration - move `notifications/push` to `lib/notifications` (#3999)
* chore: move `notifications/push` to `lib/notifications/push`

* update: move `lib/notifications/push` to `lib/notifications`

* remove: push.ios.ts
2022-04-12 12:37:28 -04:00
Gerzon Z b9651493d2
Chore: update `theme` type (#4025)
* chore: update `theme` type

* update: components

* update: storyshots

* add: `theme` type to `DirectoryItem`

* chore: update theme type on `message/index.tsx`

* update: `RoomTypeIcon`'s useTheme
2022-04-12 12:27:05 -04:00
Gerzon Z 4aeb21148d
[FIX] Searching for users when creating discussions not returning data correctly (#4034) 2022-04-12 10:48:28 -03:00
Alex Junior c6e0751581
[FIX] Force mime type when the image does not have a filename (#4006) 2022-04-11 15:17:28 -03:00
Alex Junior b0d408ebc8
Chore: add eslint-plugin-react-hooks lib (#4021)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-04-11 15:01:43 -03:00
Reinaldo Neto 53eb251476
Chore: Evaluate UserItem - TypeScript (#3983)
* Chore: Evaluate UserItem - TypeScript

* fix storyshot

* minor tweaks

* tweaks on comments

* fix storyshot

* move useritem from presentation to containers

* remove comments
2022-04-08 23:43:31 -03:00
Reinaldo Neto 8268beeb67
[FIX] Create a discussion from NewMessageView (#4003)
* [FIX] Create a discussion from NewMessageView

* fix the itemData.value to any

* minor tweak
2022-04-08 19:53:48 -03:00
Reinaldo Neto ec952b058a
Chore: Upgrade @types/react-native to 0.64.2 (#4026)
* Chore: Upgrade @types/react-native to 0.64.2

* minor tweak in comment

* minor tweak

* Chore: Upgrade @types/react-native to 0.64.2

* minor tweak in comment

* minor tweak

* fix accessibility within bordelessbutton
2022-04-08 11:27:10 -03:00
Gerzon Z 8043ca2cf9
[FIX] Queue Omnichannel rooms shouldn't show header buttons (#4031) 2022-04-07 16:35:37 -04:00
Gerzon Z 349e10e328
Chore: TypeScript Migration - evaluate DirectoryItem (#4016)
* chore: evaluate DirectoryItem

* chore: move `DirectoryItem` to `containers`

* update: `themes` import
2022-04-07 16:25:25 -04:00
Gleidson Daniel Silva 5494037f78
Chore: Upgrade react-native-notifications to 4.2.4 (#3958)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-04-07 16:14:04 -03:00
Gerzon Z cd0c8abced
Chore: evaluate ServerItem - TypeScript Migration (#4015)
* chore: evaluate ServerItem

* update: IServerInfo interface

* chore: move `ServerItem` to `containers` folder

* update: `ServerItem` import on Storybook

* update: `themes` import
2022-04-07 13:07:16 -04:00
Gleidson Daniel Silva e525392713
Chore: Move services and methods away from rocketchat folder (#4033)
* move services to lib

* move methods to lib

* fix imports
2022-04-07 13:53:07 -03:00
Gerzon Z 13a2962fa2
Chore: evaluate getUserSelector (#4013)
* update: type for user

* update: LanguageView's user type

* update: UserNotificationPreferencesView's user

* chore: set `enableMessageParserEarlyAdoption` as non-optional
2022-04-07 12:27:45 -04:00
Gleidson Daniel Silva d38c17bcd8
Chore: Create app/lib/store folder (#4028)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-04-07 11:19:54 -03:00
Gleidson Daniel Silva bdf83e546e
Chore: Move constants away from rocketchat folder - Typescript (#4022)
* create keys file and export all consts

* fix import E2E_MESSAGE_TYPE

* fix constants import

* fix constants import

* fix E2E_BANNER_TYPE import

* fix E2E_ROOM_TYPES import

* fix THEME_PREFERENCES_KEY import

* fix CRASH_REPORT_KEY and ANALYTICS_EVENTS_KEY import

* fix MIN_ROCKETCHAT_VERSION import

* fix constantDisplayMode import

* fix environment imports

* fix links imports

* fix localAuthentication imports

* fix localPath imports

* fix messagesStatus imports

* fix messageTypeLoad imports

* fix defaultSettings imports

* fix tablet imports

* update with todo for colors

* move to lib folder

* change constant/colors to constant
2022-04-07 11:10:03 -03:00
Gleidson Daniel Silva 474ea98a3b
Chore: Create app/lib/navigation folder (#4027)
* change Navigation to appNavigation and move to navigation folder

* change ShareNavigation to shareNavigation and move to navigation folder

* fix navigation import

Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-04-07 10:22:19 -03:00
Gleidson Daniel Silva 7d2ae5ea7c
Chore: Evaluate helpers and methods - Typescript (#4030)
* move userPreferences to methods folder

* create formatAttachmentUrl file

* create compareServerVersion file

* create generateLoadMoreId file
2022-04-07 10:13:19 -03:00
Diego Mello 9a11fb2797
[FIX] Add token expired verification (#3964) 2022-04-06 17:35:53 -03:00
Gleidson Daniel Silva 2eba327396
Chore: Evaluate lib/rocketchat structure and files (#3986)
* create TSubscription type

* move logoutOtherLocations to restApis

* mvoe getUserInfo to restApi

* move constants to lib folder

* change Rocketchat methods to sdk methods

* move toggleFavorite to restApis

* move functions to rocketchat folder

* delete old rocketchat file :)

* fix imports

* fix lint and return types

* Fix subscribe to rooms not getting called

Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-04-04 16:15:29 -03:00
Alex Junior 488074b4ae
Chore: Evaluate Message - TypeScript (#3944)
Co-authored-by: GleidsonDaniel <gleidson10daniel@hotmail.com>
2022-04-01 18:52:38 -03:00
Gerzon Z 6ad4ccd4bd
Chore: upgrade Xcode version to 13.3.0 on CircleCI (#3997)
* update: Xcode version on CircleCI

* update: Xcode version
2022-04-01 13:58:23 -04:00
Alex Junior 3b3cd67d78
Chore: Clean ReactionsModal - TypeScript (#3926) 2022-04-01 12:32:17 -03:00
Gleidson Daniel Silva 5bd060b7b2
Chore: Add `colors` prop to useTheme hook (#3993)
* create react-native-appearance mock

* create base for colors theme

* mend

* export TColors prop

* update snapshot
2022-03-31 20:04:29 -03:00
Gleidson Daniel Silva cfe352dfbc
Chore: Clean SafeAreaView - Typescript (#3907)
* chore: clean SafeAreaView

* fix type

* update supported types
2022-03-31 19:46:11 -03:00
Gleidson Daniel Silva e0459aed89
Chore: Evaluate MessageBox - TypeScript (#3936)
* chore: migrate buttons

* chore: migrate CommandsPreview

* chore: migrate Mention

* chore: migrate Some files

* chore: migrate RecordAudio

* fix lint

* fix context value

* fix MessageBox types
2022-03-31 19:39:24 -03:00
Gleidson Daniel Silva 64b594f9ae
Chore: clean RoomHeader (#3923) 2022-03-31 19:29:14 -03:00
Diego Mello 4416f82665
Chore: Properly type MessageActions (#3930) 2022-03-31 09:38:20 -03:00
Reinaldo Neto c483abfa60
[FIX] Omnichannel's "Availability" toggle button is hard to interact with on Android devices (#3952)
* first commit

* change touchable to touch
2022-03-30 19:17:01 -03:00
Gerzon Z 49c92cfa7b
[FIX] `AttachedActions`'s button (#3989)
* fix: `AttachedActions`'s button

* fix: text color

* update: `Message.storyshot`
2022-03-30 17:55:57 -04:00
Diego Mello f56bf819d2
Regression: Certificates not getting fetched properly (#3992)
* Working now

* Point to repo

* Fix completions for servers without certs
2022-03-30 18:46:09 -03:00
Diego Mello 2af88a5544
[FIX] Not properly fetching users presence on some startup situations (#3967) 2022-03-30 18:27:53 -03:00
Diego Mello f4538635b8
Bump version to 4.26.2 (#3995) 2022-03-30 18:04:10 -03:00
Alex Junior 5a3ffe5136
[FIX] Animation to show all login services options (#3985)
Co-authored-by: Reinaldo Neto <47038980+reinaldonetof@users.noreply.github.com>
2022-03-29 20:56:50 -03:00
Reinaldo Neto 40cb3b1ae7
Chore: Evaluate UiKit - TypeScript (#3939)
* Chore: Evaluate UiKit - TypeScript

* minor tweak
2022-03-29 17:06:50 -03:00
Gerzon Z 1c70ffc614
Chore: Evaluate `Avatar` - TypeScript (#3929)
* update: `Avatar` component

remove: non-null assertion from ThreadMessagesView Item

* remove: `this.mounted` from `Avatar` component

update: navParam on MessageAvatar component
2022-03-29 12:23:45 -04:00
Gerzon Z 93c9d2efdf
Chore: use `@react-native-clipboard/clipboard` (#3950)
* add: @react-native-clipboard/clipboard

* create jest.setup.js file and centralizes all mocks on these folder for jest

Co-authored-by: GleidsonDaniel <gleidson10daniel@hotmail.com>
2022-03-29 12:09:44 -04:00
Alex Junior 228d64f00c
[FIX] User status missing translate (#3960)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-03-28 19:52:20 -03:00
Diego Mello 3c6ae8ddc7
Bump version to 4.26.1 (#3976) 2022-03-28 14:48:52 -03:00
Gleidson Daniel Silva d9d9d35928
[FIX] Update navToRoom press verification (#3974) 2022-03-28 14:43:57 -03:00
Gleidson Daniel Silva f3cf4f1e7f
[FIX] Adds a check to see if the collapsed property exists. (#3973)
* Adds a check to see if the collapsed property exists.

* 👀

* update snapshot

* revert

* revert yarn.lock
2022-03-28 12:08:18 -03:00
Diego Mello 902827422b
Chore: Properly type Status (#3911)
Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>
2022-03-25 17:05:49 -03:00
Reinaldo Neto 70cb252d1b
Chore: Migrate containers: List to Typescript (#3921)
* Chore: Migrate containers: List to Typescript

* minor tweak

* fix storyshot List - item flatlist

* fix IListContainer

* fix type of childrens

* minor tweak
2022-03-25 15:09:02 -03:00
Reinaldo Neto 744712b8d5
Chore: Migrate containers: FormContainer to Typescript (#3922)
* Chore: Migrate containers: FormContainer to Typescript

* minor tweak

* theme fix

* fix react.reactelement[]

* minor tweak

Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>
2022-03-25 14:55:20 -03:00
Reinaldo Neto 6418803517
Chore: Evaluate Markdown - TypeScript (#3948) 2022-03-25 14:20:09 -03:00
Gerzon Z d5ac663199
[FIX] Drawer failing to open/close on ProfileView (#3963) 2022-03-25 11:35:25 -03:00
Reinaldo Neto 3e5b833759
[FIX] Param privacy when editing room info (#3962) 2022-03-25 10:02:09 -03:00
Alex Junior ddfa8b1ca4
[FIX] Navigate to team from directory (#3953) 2022-03-24 18:52:35 -03:00
Gerzon Z f9064bf5af
Chore: Evaluate HeaderButton - TypeScript (#3925)
* update: `HeaderButton` components

* update: types

* fix types

* fix lint and update snapshot

Co-authored-by: GleidsonDaniel <gleidson10daniel@hotmail.com>
2022-03-24 15:55:01 -04:00
Alex Junior 891ada8942
Chore: Update codecov version (#3954) 2022-03-24 10:39:38 -03:00
Gerzon Z 8ea183373e
[FIX] Audio thumb's size (#3945)
* update: Audio component
2022-03-23 10:49:45 -04:00
Gerzon Z 9a17ce91a8
[FIX] "Sent an attachment" text on media preview for threads (#3947)
* update: `Content` component

* update: `Message` snapshots
2022-03-23 10:37:11 -04:00
Reinaldo Neto 4d3c440892
Chore: Evaluate Passcode - TypeScript (#3931)
* Chore: Migrate containers: Passcode to Typescript

* minor tweak

* minor tweak
2022-03-22 21:43:59 -03:00
Alex Junior cbe2b23e27
Chore: Clean LoginServices - TypeScript (#3935) 2022-03-22 19:14:42 -03:00
Gleidson Daniel Silva 2fb7d917a7
Chore: Evaluate ActionSheet - TypeScript (#3927) 2022-03-22 17:44:27 -03:00
Gerzon Z e8d23791d3
Chore: Evaluate TextInput - TypeScript (#3908)
* update `TextInput` component

update: ActivityIndicator

* remove: `any`

* update: `TextInput` on `UIKit`

* Fix returnKeyType

Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-03-22 14:01:54 -04:00
Alex Junior f90f1a326f
Chore: Clean MessageErrorActions - TypeScript (#3928) 2022-03-22 11:29:45 -03:00
Alex Junior e00580d84e
Chore: Clean ThreadDetails - TypeScript (#3924) 2022-03-22 11:16:41 -03:00
Alex Junior e1038af2f8
Chore: Clean InAppNotification - TypeScript (#3920) 2022-03-22 11:01:55 -03:00
Alex Junior 6f31a00e90
Chore: Clean Check component - TypeScript (#3919)
* chore: clear Check component

* chore: update tests
2022-03-22 10:53:09 -03:00
Alex Junior 571afcaab8
Chore: Clean TwoFactor - Typescript (#3912)
* chore: clean TwoFactor

* minor tweak

* minor refactor

* chore: removing console log
2022-03-22 10:44:07 -03:00
lingohub[bot] e750104d96
Language update from LingoHub 🤖 on 2022-03-21Z (#3940)
Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-03-21 18:08:00 -03:00
Gerzon Z b0580bf547
[NEW] Redesign quoted messages (#3883) 2022-03-21 17:44:06 -03:00
Reinaldo Neto 82acb917fc
[FIX] Wrong param sent to system message (#3943)
* [FIX] Display added user to team

* tweak when remove members from team too

* update storyshot

Co-authored-by: AlexAlexandre <alexalexandrejr@gmail.com>
2022-03-21 17:25:40 -03:00
Gleidson Daniel Silva 2ff48471d6
chore: Evaluate SearchBox (#3909) 2022-03-21 16:23:59 -03:00
Gleidson Daniel Silva 1a3d2fbc10
Chore: StatusBar theme and style props (#3906)
* chore: clean status bar and remove useless theme

* mend

* wip

* remove unused props
2022-03-21 16:10:11 -03:00
Gleidson Daniel Silva 8a12924904
[FIX] Messages not loading for unjoined channels (#3904)
* Fix message loading for unjoined channels

* Update updateMessages.ts

* log -> console.log

Co-authored-by: Diego Mello <diegolmello@gmail.com>
2022-03-21 15:57:23 -03:00
Reinaldo Neto 0582cdfa61
Chore: Migrate REST API - e2eFetchMyKeys to Typescript (#3942) 2022-03-21 13:56:38 -03:00
Reinaldo Neto 8af1d1ceb5
Chore: Migrate containers: Loading to Typescript (#3915) 2022-03-18 12:02:04 -03:00
Reinaldo Neto fae46f565b
Chore: Migrate containers: Toast to Typescript (#3913) 2022-03-18 11:25:03 -03:00
Gleidson Daniel Silva 75f3f90913
[NEW] Collapsible Message (#3879)
* create new collapsible component

* create collapsible tests and update snapshot

* fix quote :)

* update snapshot

* add support to color

* add collapsed prop

* fix some styles

* fix tests

* wip

* clean

* add CollapsibleQuote story

* better style

* update snapshots

* add better tests

* remove testID

* update storyshot
2022-03-18 07:01:30 -03:00
Gerzon Z 38b2b08278
Chore: Evaluate ActivityIndicator - TypeScript (#3914)
* update: `BackgroundContainer` and `ActivityIndicator`

* update: return type for `RCActivityIndicator`

* update: return type for `BackgroundContainer`
2022-03-17 22:37:10 -04:00
Gerzon Z 334b1bad7b
Chore: Evaluate BackgroundContainer - TypeScript (#3917)
* update: `BackgroundContainer`

* remove: `theme` from `IBackgroundContainer`

* update: return type for `BackgroundContainer`
2022-03-17 17:21:19 -04:00
Gerzon Z a1e33c4a69
Chore: evaluate Header components - TypeScript (#3918)
* update: Header components
2022-03-17 15:25:31 -04:00
Alex Junior 11a809a065
Chore: Migrate REST API - getThreadsList to Typescript (#3895)
* chore: add rest api return

* chore: removing sort param
2022-03-16 23:24:22 -03:00
Gerzon Z a754983ac8
Chore: Dehydrate share extension from rocketchat.js (#3753)
Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>
2022-03-16 17:40:32 -03:00
Reinaldo Neto e792f2a49b
Chore: Migrate REST API - registerPushToken to Typescript (#3902) 2022-03-16 17:04:16 -03:00
Reinaldo Neto 8efba39370
Chore: Migrate REST API - removePushToken to Typescript (#3903) 2022-03-16 16:46:23 -03:00
Reinaldo Neto 823d4c658c
Chore: Migrate methods/actions to Typescript and refactor UiKit folder (#3716)
* Chore: Migrate methods/actions to Typescript

* tweak in actions

* Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>

* refactor sdk.current

* interface and uikit done

* refactor interface, index and utils from UiKit

* minor tweak

* minor tweak

Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>
2022-03-16 16:07:49 -03:00
Alex Junior f98f2a46d9
Chore: Migrate REST API - getRoomMembers to Typescript (#3899) 2022-03-15 22:37:49 -03:00
Alex Junior 4cfadbc97b
Chore: Migrate REST API - getSyncThreadsList to Typescript (#3896) 2022-03-15 22:25:48 -03:00
Alex Junior 9650c98b4f
Chore: Migrate REST API - runSlashCommand to Typescript (#3893) 2022-03-15 22:14:50 -03:00
Alex Junior b9967fda9f
Chore: Migrate REST API - saveAutoTranslate to Typescript (#3892) 2022-03-15 21:54:43 -03:00
Alex Junior 4666bdf9d5
Chore: Migrate REST API - sendEmailCode to Typescript (#3905) 2022-03-15 21:43:44 -03:00
Alex Junior 0023f0e195
Chore: Migrate REST API - sendEmailCode to Typescript (#3891) 2022-03-15 21:29:48 -03:00
Alex Junior ccdbd9543c
Chore: Migrate REST API - getRoomInfo to Typescript (#3823)
* chore: add rest api return

* chore: add rest api return
2022-03-15 21:04:10 -03:00
Gleidson Daniel Silva 1aab65ef92
Chore: Migrate REST API - readThreads to Typescript (#3866)
* chore: migrate readThreads to typescript

* fix imports
2022-03-15 16:53:24 -03:00
Danish Ahmed Mirza 1d04e9379f
[FIX] Mention from suggestions concatenates to query string on autocomplete (#3696)
* [FIX] Mention suggestion concatenate to query string

* Add function to get regexp and its tests in separate files

* Update getRegexp.ts

* Update file names

* Try new regex

* One regex for all mention types

Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>
2022-03-15 16:33:43 -03:00
Reinaldo Neto 07094aabe6
Chore: Migrate REST API - getServerInfo to Typescript (#3900) 2022-03-15 14:33:29 -03:00
Reinaldo Neto ee336a84a3
Chore: Migrate REST API - getDirectory to Typescript (#3898) 2022-03-15 13:47:40 -03:00
Reinaldo Neto 2cc4b9c1ba
Chore: Migrate REST API - getCommandPreview and executeCommandPreview to Typescript (#3897) 2022-03-15 11:41:23 -03:00
Alex Junior 8a1f81d707
Chore: Migrate REST API - getCommandPreview to Typescript (#3894) 2022-03-14 23:16:53 -03:00
Reinaldo Neto 6d543c28d9
Chore: Migrate REST API - createGroupChat to Typescript (#3885)
* Chore: Migrate REST API - createGroupChat to Typescript

* Update app/lib/rocketchat/services/restApi.ts

Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>

* minor tweak

Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>
2022-03-14 21:43:59 -03:00
Reinaldo Neto de8a7f1ce0
Chore: Migrate REST API - addUsersToRoom to Typescript (#3884)
* Chore: Migrate REST API - addUsersToRoom to Typescript

* Update app/lib/rocketchat/services/restApi.ts

Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>

* minor tweak

Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>
2022-03-14 21:29:48 -03:00
Reinaldo Neto db5c7d94aa
Chore: Migrate REST API - getRoomRoles to Typescript and fix getRoomMembers (#3868)
* Chore: Migrate REST API - getRoomRoles to Typescript and fix getRoomMembers

* change GetRoomRoles local
2022-03-14 21:11:34 -03:00
Reinaldo Neto d18d91dd74
Chore: Migrate REST API - emitTyping to Typescript (#3886) 2022-03-14 12:55:32 -03:00
Reinaldo Neto 307ae1295f
Chore: Migrate REST API - e2eResetOwnKey to Typescript (#3888)
* Chore: Migrate REST API - e2eResetOwnKey to Typescript

* Update app/lib/rocketchat/services/restApi.ts

Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>
2022-03-14 11:56:49 -03:00
Reinaldo Neto 6ff2fc37d0
Chore: Migrate REST API - editMessage to Typescript (#3887)
* Chore: Migrate REST API - editMessage to Typescript

* minor tweak
2022-03-14 11:18:53 -03:00
Alex Junior 654e3c226e
[FIX] ReactNativeUiLib are not installed after run pod install (#3882)
* fix ReactNativeUiLib not installed when run pod install

* committing Podfile.lock
2022-03-14 10:59:13 -03:00
Reinaldo Neto 7bf0de5825
Chore: Migrate REST API - getReadReceipts to Typescript (#3877) 2022-03-14 10:32:22 -03:00
Reinaldo Neto cfb10ada60
Chore: Migrate REST API - editLivechat to Typescript (#3878) 2022-03-14 10:23:20 -03:00
Diego Mello 58c9e98e49
[FIX] Fix synchronization of removed subscriptions (#3768)
When a subscription is removed from the server via another client, when the
mobile app is relaunched the subscriptions were not being removed properly.
Changed the logic to use the subscriptionResult.remove array from the server
and the _id property to fix.

Co-authored-by: Christian King <cking@vonix.io>
2022-03-11 11:19:23 -03:00
Diego Mello 65c9aec2b4
[FIX] Issues after reconnecting (#3815) 2022-03-11 11:12:25 -03:00
Alex Junior d73da2942b
Chore: Migrate REST API - getFiles to Typescript (#3873) 2022-03-10 12:29:33 -03:00
Alex Junior b5f8f6f305
Chore: Migrate REST API - searchMessages to Typescript (#3874) 2022-03-10 12:17:49 -03:00
Alex Junior 69cf9b638e
Chore: Migrate REST API - getMessages to Typescript (#3875) 2022-03-10 12:00:50 -03:00
Reinaldo Neto 4dc43313ab
Chore: Migrate REST API - getUsernameSuggestion to Typescript (#3872) 2022-03-10 10:44:55 -03:00
Reinaldo Neto 61b8f3e40a
Chore: Migrate REST API - setAvatarFromService to Typescript (#3871) 2022-03-10 10:17:22 -03:00
Reinaldo Neto c4124af73a
Chore: Migrate REST API - resetAvatar to Typescript (#3870) 2022-03-10 09:37:54 -03:00
Reinaldo Neto 5d28453201
Chore: Migrate REST API - getAvatarSuggestion to Typescript (#3869) 2022-03-10 09:25:25 -03:00
Alex Junior 4ea8d613a9
Chore: Migrate REST API - getUserPreferences to Typescript (#3830) 2022-03-09 21:16:20 -03:00
Alex Junior cd00366613
Chore: Update react-native-mmkv-storage to 0.6.12 (#3634)
* chore: updating mmkv library

* feat: updating android ejson to use the getSecureKey new version

* feat: updating IOS files to use the getSecureKey new version

* feat: changing all mmkv methods to use sync calls

* feat: changing mmkv methods from Screen lock

* feat: changing all mmkv methods from login, ssl certificate and change/add server

* feat: changing all mmkv methods from login, ssl certificate and change/add server

* feat: changing all mmkv methods from logout

* feat: changing all mmkv methods from e2e

* fix: small fix at encryption and server drop down

* feat: changing all mmkv methods from set theme

* feat: changing all mmkv methods from openLink

* fix: setting up mmkv to works property on Android

* fix: fix an error to set the theme when open the app

* refactor: change the react-native branch (temporary)

* refactor: removing all `Async` from mmkv functions name

* refactor: removing await from unnecessary functions, removing console.log and update cocoapods

* refactor: removing unnecessary undefined from methods

* feat: creating a custom hook for mmkv

* refactor: changing the fetchPasscode to use the useUserPreferences hook

* refactor: changing setTheme from app/index

* refactor: small fix on setTheme

* chore: update mmkv to 0.6.11

* chore: update mmkv to 0.6.11

* chore: minor tweak

* chore: update mmkv to 0.6.12

* chore: mock NativeModules

* chore: fix test mmkv

* chore: removing custom MMKV JSI module, since is no more necessary after 0.6.11 version

* feat: removing some async calls from mmkv after update from develop

* feat: creating a function to get the initialTheme

* feat: removing unnecessary try/catch

* fix: fixing the blink white when open the app

* feat: changing useMMKVStorage to create from mmkv lib

* test: creating a mock for mmkv create function

* chore: fix errors on tablet

* minor tweak
2022-03-09 16:41:26 -03:00
983 changed files with 41660 additions and 38803 deletions

2
.bundle/config Normal file
View File

@ -0,0 +1,2 @@
BUNDLE_PATH: "vendor/bundle"
BUNDLE_FORCE_RUBY_PLATFORM: 1

View File

@ -1,9 +1,12 @@
defaults: &defaults defaults: &defaults
working_directory: ~/repo working_directory: ~/repo
orbs:
android: circleci/android@2.1.2
macos: &macos macos: &macos
macos: macos:
xcode: "12.5.0" xcode: "14.2.0"
resource_class: large resource_class: large
bash-env: &bash-env bash-env: &bash-env
@ -51,14 +54,14 @@ save-gems-cache: &save-gems-cache
update-fastlane-ios: &update-fastlane-ios update-fastlane-ios: &update-fastlane-ios
name: Update Fastlane name: Update Fastlane
command: | command: |
echo "ruby-2.6.4" > ~/.ruby-version echo "ruby-2.7.7" > ~/.ruby-version
bundle install bundle install
working_directory: ios working_directory: ios
update-fastlane-android: &update-fastlane-android update-fastlane-android: &update-fastlane-android
name: Update Fastlane name: Update Fastlane
command: | command: |
echo "ruby-2.6.4" > ~/.ruby-version echo "ruby-2.7.7" > ~/.ruby-version
bundle install bundle install
working_directory: android working_directory: android
@ -80,18 +83,15 @@ commands:
steps: steps:
- restore_cache: - restore_cache:
name: Restore pods name: Restore pods
# TODO: CircleCI isn't caching Podfile.lock correctly, because checksum changes after install key: pods-v1-{{ checksum "ios/Podfile.lock" }}
# key: pods-v1-{{ checksum "ios/Podfile.lock" }}
key: pods-v1-{{ checksum "ios/Podfile" }}
- run: - run:
name: Install pods libs name: Install pods libs
command: | command: |
bundle exec pod install bundle exec pod install --deployment
working_directory: ios working_directory: ios
- save_cache: - save_cache:
name: Save pods specs and pods cache name: Save pods specs and pods cache
# key: pods-v1-{{ checksum "ios/Podfile.lock" }} key: pods-v1-{{ checksum "ios/Podfile.lock" }}
key: pods-v1-{{ checksum "ios/Podfile" }}
paths: paths:
- ~/.pods - ~/.pods
- ios/Pods - ios/Pods
@ -114,32 +114,33 @@ commands:
# echo -e "android.enableAapt2=false" >> ./gradle.properties # echo -e "android.enableAapt2=false" >> ./gradle.properties
echo -e "android.useAndroidX=true" >> ./gradle.properties echo -e "android.useAndroidX=true" >> ./gradle.properties
echo -e "android.enableJetifier=true" >> ./gradle.properties echo -e "android.enableJetifier=true" >> ./gradle.properties
echo -e "FLIPPER_VERSION=0.51.0" >> ./gradle.properties echo -e "newArchEnabled=false" >> ./gradle.properties
echo -e "FLIPPER_VERSION=0.125.0" >> ./gradle.properties
echo -e "VERSIONCODE=$CIRCLE_BUILD_NUM" >> ./gradle.properties echo -e "VERSIONCODE=$CIRCLE_BUILD_NUM" >> ./gradle.properties
if [[ $CIRCLE_JOB == "android-build-official" ]]; then if [[ $CIRCLE_JOB == "android-build-official" ]]; then
echo -e "APPLICATION_ID=chat.rocket.android" >> ./gradle.properties echo -e "APPLICATION_ID=chat.rocket.android" >> ./gradle.properties
echo -e "BugsnagAPIKey=$BUGSNAG_KEY_OFFICIAL" >> ./gradle.properties echo -e "BugsnagAPIKey=$BUGSNAG_KEY_OFFICIAL" >> ./gradle.properties
echo $CHAT_ROCKET_ANDROID_STORE_FILE_BASE64_JKS | base64 --decode > ./app/$KEYSTORE_OFFICIAL echo $KEYSTORE_OFFICIAL_BASE64 | base64 --decode > ./app/$KEYSTORE_OFFICIAL
echo -e "KEYSTORE=$KEYSTORE_OFFICIAL" >> ./gradle.properties echo -e "KEYSTORE=$KEYSTORE_OFFICIAL" >> ./gradle.properties
echo -e "KEYSTORE_PASSWORD=$CHAT_ROCKET_ANDROID_STORE_PASSWORD" >> ./gradle.properties echo -e "KEYSTORE_PASSWORD=$KEYSTORE_OFFICIAL_PASSWORD" >> ./gradle.properties
echo -e "KEY_ALIAS=$CHAT_ROCKET_ANDROID_KEY_ALIAS" >> ./gradle.properties echo -e "KEY_ALIAS=$KEYSTORE_OFFICIAL_ALIAS" >> ./gradle.properties
echo -e "KEY_PASSWORD=$CHAT_ROCKET_ANDROID_KEY_PASSWORD" >> ./gradle.properties echo -e "KEY_PASSWORD=$KEYSTORE_OFFICIAL_PASSWORD" >> ./gradle.properties
else else
echo -e "APPLICATION_ID=chat.rocket.reactnative" >> ./gradle.properties echo -e "APPLICATION_ID=chat.rocket.reactnative" >> ./gradle.properties
echo -e "BugsnagAPIKey=$BUGSNAG_KEY" >> ./gradle.properties echo -e "BugsnagAPIKey=$BUGSNAG_KEY" >> ./gradle.properties
echo $KEYSTORE_BASE64 | base64 --decode > ./app/$KEYSTORE echo $KEYSTORE_EXPERIMENTAL_BASE64 | base64 --decode > ./app/$KEYSTORE_EXPERIMENTAL
echo -e "KEYSTORE=$KEYSTORE" >> ./gradle.properties echo -e "KEYSTORE=$KEYSTORE_EXPERIMENTAL" >> ./gradle.properties
echo -e "KEYSTORE_PASSWORD=$KEYSTORE_PASSWORD" >> ./gradle.properties echo -e "KEYSTORE_PASSWORD=$KEYSTORE_EXPERIMENTAL_PASSWORD" >> ./gradle.properties
echo -e "KEY_ALIAS=$KEY_ALIAS" >> ./gradle.properties echo -e "KEY_ALIAS=$KEYSTORE_EXPERIMENTAL_ALIAS" >> ./gradle.properties
echo -e "KEY_PASSWORD=$KEYSTORE_PASSWORD" >> ./gradle.properties echo -e "KEY_PASSWORD=$KEYSTORE_EXPERIMENTAL_PASSWORD" >> ./gradle.properties
fi fi
working_directory: android working_directory: android
- run: - run:
name: Set Google Services name: Set Google Services
command: | command: |
if [[ $KEYSTORE ]]; then if [[ $GOOGLE_SERVICES_ANDROID ]]; then
echo $GOOGLE_SERVICES_ANDROID | base64 --decode > google-services.json echo $GOOGLE_SERVICES_ANDROID | base64 --decode > google-services.json
fi fi
working_directory: android/app working_directory: android/app
@ -150,10 +151,10 @@ commands:
if [[ $CIRCLE_JOB == "android-build-official" ]]; then if [[ $CIRCLE_JOB == "android-build-official" ]]; then
./gradlew bundleOfficialPlayRelease ./gradlew bundleOfficialPlayRelease
fi fi
if [[ $CIRCLE_JOB == "android-build-experimental" ]]; then if [[ $CIRCLE_JOB == "android-build-experimental" || "android-automatic-build-experimental" ]]; then
./gradlew bundleExperimentalPlayRelease ./gradlew bundleExperimentalPlayRelease
fi fi
if [[ ! $KEYSTORE ]]; then if [[ ! $GOOGLE_SERVICES_ANDROID ]]; then
./gradlew assembleExperimentalPlayDebug ./gradlew assembleExperimentalPlayDebug
fi fi
working_directory: android working_directory: android
@ -169,7 +170,7 @@ commands:
--source-map=android/app/build/generated/sourcemaps/react/officialPlay/release/app.bundle.map \ --source-map=android/app/build/generated/sourcemaps/react/officialPlay/release/app.bundle.map \
--bundle android/app/build/generated/assets/react/officialPlay/release/app.bundle --bundle android/app/build/generated/assets/react/officialPlay/release/app.bundle
fi fi
if [[ $CIRCLE_JOB == "android-build-experimental" ]]; then if [[ $CIRCLE_JOB == "android-build-experimental" || "android-automatic-build-experimental" ]]; then
npx bugsnag-source-maps upload-react-native \ npx bugsnag-source-maps upload-react-native \
--api-key=$BUGSNAG_KEY \ --api-key=$BUGSNAG_KEY \
--app-version-code=$CIRCLE_BUILD_NUM \ --app-version-code=$CIRCLE_BUILD_NUM \
@ -202,8 +203,12 @@ commands:
- run: - run:
name: Set Google Services name: Set Google Services
command: | command: |
if [[ $KEYSTORE ]]; then if [[ $APP_STORE_CONNECT_API_KEY_BASE64 ]]; then
if [[ $CIRCLE_JOB == "ios-build-official" ]]; then
echo $GOOGLE_SERVICES_IOS | base64 --decode > GoogleService-Info.plist echo $GOOGLE_SERVICES_IOS | base64 --decode > GoogleService-Info.plist
else
echo $GOOGLE_SERVICES_IOS_EXPERIMENTAL | base64 --decode > GoogleService-Info.plist
fi
fi fi
working_directory: ios working_directory: ios
- run: - run:
@ -225,12 +230,12 @@ commands:
/usr/libexec/PlistBuddy -c "Set IS_OFFICIAL NO" ./NotificationService/Info.plist /usr/libexec/PlistBuddy -c "Set IS_OFFICIAL NO" ./NotificationService/Info.plist
fi fi
if [[ $APP_STORE_CONNECT_API_BASE64 ]]; then if [[ $APP_STORE_CONNECT_API_KEY_BASE64 ]]; then
echo $APP_STORE_CONNECT_API_BASE64 | base64 --decode > ./fastlane/app_store_connect_api_key.p8 echo $APP_STORE_CONNECT_API_KEY_BASE64 | base64 --decode > ./fastlane/app_store_connect_api_key.p8
if [[ $CIRCLE_JOB == "ios-build-official" ]]; then if [[ $CIRCLE_JOB == "ios-build-official" ]]; then
bundle exec fastlane ios build_official bundle exec fastlane ios build_official
else else
if [[ $KEYSTORE ]]; then if [[ $APP_STORE_CONNECT_API_KEY_BASE64 ]]; then
bundle exec fastlane ios build_experimental bundle exec fastlane ios build_experimental
else else
bundle exec fastlane ios build_fork bundle exec fastlane ios build_fork
@ -320,11 +325,19 @@ commands:
- run: - run:
name: Fastlane Tesflight Upload name: Fastlane Tesflight Upload
command: | command: |
echo $APP_STORE_CONNECT_API_BASE64 | base64 --decode > ./fastlane/app_store_connect_api_key.p8 echo $APP_STORE_CONNECT_API_KEY_BASE64 | base64 --decode > ./fastlane/app_store_connect_api_key.p8
bundle exec fastlane ios beta official:<< parameters.official >> bundle exec fastlane ios beta official:<< parameters.official >>
working_directory: ios working_directory: ios
- save_cache: *save-gems-cache - save_cache: *save-gems-cache
create-e2e-account-file:
description: "Create e2e account file"
steps:
- run:
command: |
echo $E2E_ACCOUNT | base64 --decode > ./e2e_account.ts
working_directory: e2e
version: 2.1 version: 2.1
# EXECUTORS # EXECUTORS
@ -339,7 +352,7 @@ jobs:
lint-testunit: lint-testunit:
<<: *defaults <<: *defaults
docker: docker:
- image: circleci/node:15 - image: cimg/node:16.14
resource_class: large resource_class: large
environment: environment:
CODECOV_TOKEN: caa771ab-3d45-4756-8e2a-e1f25996fef6 CODECOV_TOKEN: caa771ab-3d45-4756-8e2a-e1f25996fef6
@ -370,6 +383,18 @@ jobs:
# Android builds # Android builds
android-build-experimental: android-build-experimental:
<<: *defaults
docker:
- image: cimg/android:2022.03.1-node
environment:
<<: *android-env
<<: *bash-env
resource_class: large
steps:
- android-build
# Android automatic builds
android-automatic-build-experimental:
<<: *defaults <<: *defaults
docker: docker:
- image: circleci/android:api-29-node - image: circleci/android:api-29-node
@ -383,7 +408,7 @@ jobs:
android-build-official: android-build-official:
<<: *defaults <<: *defaults
docker: docker:
- image: circleci/android:api-29-node - image: cimg/android:2022.03.1-node
environment: environment:
<<: *android-env <<: *android-env
<<: *bash-env <<: *bash-env
@ -394,7 +419,7 @@ jobs:
android-internal-app-sharing-experimental: android-internal-app-sharing-experimental:
<<: *defaults <<: *defaults
docker: docker:
- image: circleci/android:api-28-node - image: cimg/android:2022.03.1-node
steps: steps:
- upload-to-internal-app-sharing - upload-to-internal-app-sharing
@ -402,7 +427,7 @@ jobs:
android-google-play-beta-experimental: android-google-play-beta-experimental:
<<: *defaults <<: *defaults
docker: docker:
- image: circleci/android:api-29-node - image: cimg/android:2022.03.1-node
steps: steps:
- upload-to-google-play-beta: - upload-to-google-play-beta:
@ -411,19 +436,107 @@ jobs:
android-google-play-production-experimental: android-google-play-production-experimental:
<<: *defaults <<: *defaults
docker: docker:
- image: circleci/android:api-29-node - image: cimg/android:2022.03.1-node
steps: steps:
- upload-to-google-play-production - upload-to-google-play-production
android-google-play-beta-official: android-google-play-beta-official:
<<: *defaults <<: *defaults
docker: docker:
- image: circleci/android:api-29-node - image: cimg/android:2022.03.1-node
steps: steps:
- upload-to-google-play-beta: - upload-to-google-play-beta:
official: true official: true
e2e-build-android:
<<: *defaults
executor:
name: android/android-machine
resource-class: xlarge
tag: 2022.12.1
environment:
<<: *android-env
steps:
- checkout
- restore_cache: *restore-npm-cache-linux
- run: *install-npm-modules
- save_cache: *save-npm-cache-linux
- restore_cache: *restore-gradle-cache
- run:
name: Configure Gradle
command: |
echo -e "" > ./gradle.properties
# echo -e "android.enableAapt2=false" >> ./gradle.properties
echo -e "android.useAndroidX=true" >> ./gradle.properties
echo -e "android.enableJetifier=true" >> ./gradle.properties
echo -e "newArchEnabled=false" >> ./gradle.properties
echo -e "FLIPPER_VERSION=0.125.0" >> ./gradle.properties
echo -e "VERSIONCODE=$CIRCLE_BUILD_NUM" >> ./gradle.properties
echo -e "APPLICATION_ID=chat.rocket.reactnative" >> ./gradle.properties
echo -e "BugsnagAPIKey=$BUGSNAG_KEY" >> ./gradle.properties
echo $KEYSTORE_EXPERIMENTAL_BASE64 | base64 --decode > ./app/$KEYSTORE_EXPERIMENTAL
echo -e "KEYSTORE=$KEYSTORE_EXPERIMENTAL" >> ./gradle.properties
echo -e "KEYSTORE_PASSWORD=$KEYSTORE_EXPERIMENTAL_PASSWORD" >> ./gradle.properties
echo -e "KEY_ALIAS=$KEYSTORE_EXPERIMENTAL_ALIAS" >> ./gradle.properties
echo -e "KEY_PASSWORD=$KEYSTORE_EXPERIMENTAL_PASSWORD" >> ./gradle.properties
working_directory: android
- run:
name: Build Android
command: |
echo "RUNNING_E2E_TESTS=true" > ./.env
yarn e2e:android-build
- save_cache: *save-gradle-cache
- store_artifacts:
path: android/app/build/outputs/apk/experimentalPlay/release/app-experimental-play-release.apk
- store_artifacts:
path: android/app/build/outputs/apk/androidTest/experimentalPlay/release/app-experimental-play-release-androidTest.apk
- persist_to_workspace:
root: /home/circleci/repo
paths:
- android/app/build/outputs/apk/
e2e-test-android:
<<: *defaults
executor:
name: android/android-machine
resource-class: xlarge
tag: 2022.12.1
parallelism: 4
steps:
- checkout
- attach_workspace:
at: /home/circleci/repo
- restore_cache: *restore-npm-cache-linux
- run: *install-npm-modules
- save_cache: *save-npm-cache-linux
- run: mkdir ~/junit
- create-e2e-account-file
- android/create-avd:
avd-name: Pixel_API_31_AOSP
install: true
system-image: system-images;android-31;default;x86_64
- run:
name: Setup emulator
command: |
echo "hw.lcd.density = 440" >> ~/.android/avd/Pixel_API_31_AOSP.avd/config.ini
echo "hw.lcd.height = 2280" >> ~/.android/avd/Pixel_API_31_AOSP.avd/config.ini
echo "hw.lcd.width = 1080" >> ~/.android/avd/Pixel_API_31_AOSP.avd/config.ini
- run:
name: Run Detox Tests
command: |
TEST=$(circleci tests glob "e2e/tests/**/*.ts" | circleci tests split --split-by=timings)
yarn e2e:android-test $TEST
- store_artifacts:
path: artifacts
- run:
command: cp junit.xml ~/junit/
when: always
- store_test_results:
path: ~/junit
- store_artifacts:
path: ~/junit
# iOS builds # iOS builds
ios-build-experimental: ios-build-experimental:
executor: mac-env executor: mac-env
@ -447,11 +560,89 @@ jobs:
- upload-to-testflight: - upload-to-testflight:
official: true official: true
e2e-build-ios:
executor: mac-env
steps:
- checkout
- restore_cache: *restore-gems-cache
- restore_cache: *restore-npm-cache-mac
- run: *install-npm-modules
- run: *update-fastlane-ios
- save_cache: *save-npm-cache-mac
- save_cache: *save-gems-cache
- manage-pods
- run:
name: Configure Detox
command: |
brew tap wix/brew
brew install applesimutils
- run:
name: Build
command: |
/usr/libexec/PlistBuddy -c "Set :bugsnag:apiKey $BUGSNAG_KEY" ./ios/RocketChatRN/Info.plist
/usr/libexec/PlistBuddy -c "Set :bugsnag:apiKey $BUGSNAG_KEY" ./ios/ShareRocketChatRN/Info.plist
yarn detox clean-framework-cache && yarn detox build-framework-cache
echo "RUNNING_E2E_TESTS=true" > ./.env
yarn e2e:ios-build
- persist_to_workspace:
root: /Users/distiller/project
paths:
- ios/build/Build/Products/Release-iphonesimulator/Rocket.Chat Experimental.app
e2e-test-ios:
executor: mac-env
parallelism: 5
steps:
- checkout
- attach_workspace:
at: /Users/distiller/project
- restore_cache: *restore-npm-cache-mac
- run: *install-npm-modules
- save_cache: *save-npm-cache-mac
- run: mkdir ~/junit
- run:
name: Configure Detox
command: |
brew tap wix/brew
brew install applesimutils
yarn detox clean-framework-cache && yarn detox build-framework-cache
- create-e2e-account-file
- run:
name: Run tests
command: |
TEST=$(circleci tests glob "e2e/tests/**/*.ts" | circleci tests split --split-by=timings)
yarn e2e:ios-test $TEST
- store_artifacts:
path: artifacts
- run:
command: cp junit.xml ~/junit/
when: always
- store_test_results:
path: ~/junit
- store_artifacts:
path: ~/junit
workflows: workflows:
build-and-test: build-and-test:
jobs: jobs:
- lint-testunit - lint-testunit
# E2E tests
- e2e-hold:
type: approval
- e2e-build-ios:
requires:
- e2e-hold
- e2e-test-ios:
requires:
- e2e-build-ios
- e2e-build-android:
requires:
- e2e-hold
- e2e-test-android:
requires:
- e2e-build-android
# iOS Experimental # iOS Experimental
- ios-hold-build-experimental: - ios-hold-build-experimental:
type: approval type: approval
@ -485,6 +676,10 @@ workflows:
type: approval type: approval
requires: requires:
- lint-testunit - lint-testunit
filters:
branches:
ignore:
- develop
- android-build-experimental: - android-build-experimental:
requires: requires:
- android-hold-build-experimental - android-hold-build-experimental
@ -521,3 +716,15 @@ workflows:
- android-google-play-beta-official: - android-google-play-beta-official:
requires: requires:
- android-hold-google-play-beta-official - android-hold-google-play-beta-official
# Android Automatic Experimental
- android-automatic-build-experimental:
filters:
branches:
only:
- develop
requires:
- lint-testunit
- android-google-play-production-experimental:
requires:
- android-automatic-build-experimental

91
.detoxrc.js Normal file
View File

@ -0,0 +1,91 @@
/** @type {Detox.DetoxConfig} */
module.exports = {
testRunner: {
args: {
$0: 'jest',
config: 'e2e/jest.config.js'
},
retries: process.env.CI ? 3 : 0
},
artifacts: {
plugins: {
screenshot: 'failing',
video: 'failing',
uiHierarchy: 'enabled'
}
},
apps: {
'ios.debug': {
type: 'ios.app',
binaryPath: 'ios/build/Build/Products/Debug-iphonesimulator/Rocket.Chat Experimental.app',
build:
'xcodebuild -workspace ios/RocketChatRN.xcworkspace -scheme RocketChatRN -configuration Debug -sdk iphonesimulator -derivedDataPath ios/build'
},
'ios.release': {
type: 'ios.app',
binaryPath: 'ios/build/Build/Products/Release-iphonesimulator/Rocket.Chat Experimental.app',
build:
'xcodebuild -workspace ios/RocketChatRN.xcworkspace -scheme RocketChatRN -configuration Release -sdk iphonesimulator -derivedDataPath ios/build'
},
'android.debug': {
type: 'android.apk',
binaryPath: 'android/app/build/outputs/apk/experimentalPlay/debug/app-experimental-play-debug.apk',
build:
'cd android ; ./gradlew assembleExperimentalPlayDebug assembleExperimentalPlayDebugAndroidTest -DtestBuildType=debug ; cd -',
reversePorts: [8081]
},
'android.release': {
type: 'android.apk',
binaryPath: 'android/app/build/outputs/apk/experimentalPlay/release/app-experimental-play-release.apk',
build:
'cd android ; ./gradlew assembleExperimentalPlayRelease assembleExperimentalPlayReleaseAndroidTest -DtestBuildType=release ; cd -'
}
},
devices: {
simulator: {
type: 'ios.simulator',
device: {
type: 'iPhone 14'
}
},
attached: {
type: 'android.attached',
device: {
adbName: '.*'
}
},
emulator: {
type: 'android.emulator',
device: {
avdName: 'Pixel_API_31_AOSP'
},
headless: process.env.CI ? true : false
}
},
configurations: {
'ios.sim.debug': {
device: 'simulator',
app: 'ios.debug'
},
'ios.sim.release': {
device: 'simulator',
app: 'ios.release'
},
'android.att.debug': {
device: 'attached',
app: 'android.debug'
},
'android.att.release': {
device: 'attached',
app: 'android.release'
},
'android.emu.debug': {
device: 'emulator',
app: 'android.debug'
},
'android.emu.release': {
device: 'emulator',
app: 'android.release'
}
}
};

2
.env Normal file
View File

@ -0,0 +1,2 @@
# DON'T COMMIT THIS FILE
RUNNING_E2E_TESTS=

View File

@ -2,7 +2,7 @@ module.exports = {
settings: { settings: {
'import/resolver': { 'import/resolver': {
node: { node: {
extensions: ['.ts', '.tsx', '.js', '.ios.js', '.android.js', '.native.js'] extensions: ['.ts', '.tsx', '.js', '.ios.js', '.android.js', '.native.js', '.ios.tsx', '.android.tsx']
} }
} }
}, },
@ -17,7 +17,7 @@ module.exports = {
legacyDecorators: true legacyDecorators: true
} }
}, },
plugins: ['react', 'jsx-a11y', 'import', 'react-native', '@babel', 'jest'], plugins: ['react', 'jsx-a11y', 'import', 'react-native', '@babel', 'jest', 'react-hooks'],
env: { env: {
browser: true, browser: true,
commonjs: true, commonjs: true,
@ -148,28 +148,14 @@ module.exports = {
'no-async-promise-executor': [0], 'no-async-promise-executor': [0],
'max-classes-per-file': [0], 'max-classes-per-file': [0],
'no-multiple-empty-lines': [0], 'no-multiple-empty-lines': [0],
'no-sequences': 'off' 'no-sequences': 'off',
'react-hooks/rules-of-hooks': 'error',
'react-hooks/exhaustive-deps': 'warn'
}, },
globals: { globals: {
__DEV__: true __DEV__: true
}, },
overrides: [ overrides: [
{
files: ['e2e/**'],
globals: {
by: true,
detox: true,
device: true,
element: true,
expect: true,
waitFor: true
},
rules: {
'import/no-extraneous-dependencies': 0,
'no-await-in-loop': 0,
'no-restricted-syntax': 0
}
},
{ {
files: ['**/*.ts', '**/*.tsx'], files: ['**/*.ts', '**/*.tsx'],
extends: [ extends: [
@ -237,7 +223,9 @@ module.exports = {
} }
], ],
'new-cap': 'off', 'new-cap': 'off',
'lines-between-class-members': 'off' 'lines-between-class-members': 'off',
'react-hooks/rules-of-hooks': 'error',
'react-hooks/exhaustive-deps': 'warn'
}, },
globals: { globals: {
JSX: true JSX: true
@ -249,6 +237,12 @@ module.exports = {
} }
} }
} }
},
{
files: ['e2e/**'],
rules: {
'no-await-in-loop': 0
}
} }
] ]
}; };

7
.github/dependabot.yml vendored Normal file
View File

@ -0,0 +1,7 @@
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 25

3
.gitignore vendored
View File

@ -23,6 +23,7 @@ DerivedData
project.xcworkspace project.xcworkspace
*.mobileprovision *.mobileprovision
ios/Pods/ ios/Pods/
/vendor/bundle/
# Android/IntelliJ # Android/IntelliJ
# #
@ -65,5 +66,7 @@ artifacts
e2e/docker/rc_test_env/docker-compose.yml e2e/docker/rc_test_env/docker-compose.yml
e2e/docker/data/db e2e/docker/data/db
e2e/e2e_account.js e2e/e2e_account.js
e2e/e2e_account.ts
junit.xml
*.p8 *.p8

View File

@ -23,4 +23,8 @@ SECURITY.md
npm-debug.log npm-debug.log
yarn-error.log yarn-error.log
.storybook/
app/i18n/locales/ app/i18n/locales/
app/containers/CustomIcon/mappedIcons.js
app/containers/CustomIcon/selection.json

View File

@ -1,10 +1,10 @@
module.exports = { module.exports = {
bracketSpacing: true, bracketSpacing: true,
jsxBracketSameLine: true,
singleQuote: true, singleQuote: true,
jsxSingleQuote: true, jsxSingleQuote: true,
trailingComma: 'none', trailingComma: 'none',
printWidth: 130, printWidth: 130,
useTabs: true, useTabs: true,
arrowParens: 'avoid' arrowParens: 'avoid',
bracketSameLine: true
}; };

1
.ruby-version Normal file
View File

@ -0,0 +1 @@
2.7.7

19
.storybook/index.js Normal file
View File

@ -0,0 +1,19 @@
import { getStorybookUI } from '@storybook/react-native';
import './storybook.requires';
import RNBootSplash from 'react-native-bootsplash';
import { selectServerRequest } from '../app/actions/server';
import { mockedStore as store } from '../app/reducers/mockedStore';
import database from '../app/lib/database';
import { setUser } from '../app/actions/login';
RNBootSplash.hide();
const baseUrl = 'https://open.rocket.chat';
store.dispatch(selectServerRequest(baseUrl));
store.dispatch(setUser({ id: 'abc', username: 'rocket.cat', name: 'Rocket Cat' }));
database.setActiveDB(baseUrl);
const StorybookUIRoot = getStorybookUI({});
export default StorybookUIRoot;

4
.storybook/main.js Normal file
View File

@ -0,0 +1,4 @@
module.exports = {
stories: ['../app/**/*.stories.?(ts|tsx|js|jsx)'],
addons: []
};

40
.storybook/preview.js Normal file
View File

@ -0,0 +1,40 @@
import React from 'react';
import { Provider } from 'react-redux';
import { themes } from '../app/lib/constants';
import MessageContext from '../app/containers/message/Context';
import { selectServerRequest } from '../app/actions/server';
import { mockedStore as store } from '../app/reducers/mockedStore';
import { setUser } from '../app/actions/login';
const baseUrl = 'https://open.rocket.chat';
store.dispatch(selectServerRequest(baseUrl));
store.dispatch(setUser({ id: 'abc', username: 'rocket.cat', name: 'Rocket Cat' }));
export const decorators = [
Story => (
<Provider store={store}>
<MessageContext.Provider
value={{
user: {
id: 'y8bd77ptZswPj3EW8',
username: 'diego.mello',
token: 'abc'
},
baseUrl,
onPress: () => {},
onLongPress: () => {},
reactionInit: () => {},
onErrorPress: () => {},
replyBroadcast: () => {},
onReactionPress: () => {},
onDiscussionPress: () => {},
onReactionLongPress: () => {},
threadBadgeColor: themes.light.tunreadColor
}}
>
<Story />
</MessageContext.Provider>
</Provider>
)
];

View File

@ -0,0 +1,50 @@
/* do not change this file, it is auto generated by storybook. */
import {
configure,
addDecorator,
addParameters,
addArgsEnhancer,
} from "@storybook/react-native";
import { decorators, parameters } from "./preview";
if (decorators) {
decorators.forEach((decorator) => addDecorator(decorator));
}
if (parameters) {
addParameters(parameters);
}
const getStories = () => {
return [
require("../app/containers/Avatar/Avatar.stories.tsx"),
require("../app/containers/BackgroundContainer/index.stories.tsx"),
require("../app/containers/Button/Button.stories.tsx"),
require("../app/containers/Chip/Chip.stories.tsx"),
require("../app/containers/HeaderButton/HeaderButtons.stories.tsx"),
require("../app/containers/List/List.stories.tsx"),
require("../app/containers/LoginServices/LoginServices.stories.tsx"),
require("../app/containers/markdown/Markdown.stories.tsx"),
require("../app/containers/markdown/new/NewMarkdown.stories.tsx"),
require("../app/containers/message/Components/CollapsibleQuote/CollapsibleQuote.stories.tsx"),
require("../app/containers/message/Message.stories.tsx"),
require("../app/containers/ReactionsList/ReactionsList.stories.tsx"),
require("../app/containers/RoomHeader/RoomHeader.stories.tsx"),
require("../app/containers/RoomItem/RoomItem.stories.tsx"),
require("../app/containers/SearchBox/SearchBox.stories.tsx"),
require("../app/containers/ServerItem/ServerItem.stories.tsx"),
require("../app/containers/TextInput/TextInput.stories.tsx"),
require("../app/containers/UIKit/UiKitMessage.stories.tsx"),
require("../app/containers/UIKit/UiKitModal.stories.tsx"),
require("../app/containers/UnreadBadge/UnreadBadge.stories.tsx"),
require("../app/views/CannedResponsesListView/CannedResponseItem.stories.tsx"),
require("../app/views/CreateChannelView/RoomSettings/SwitchItem.stories.tsx"),
require("../app/views/DiscussionsView/Item.stories.tsx"),
require("../app/views/RoomView/LoadMore/LoadMore.stories.tsx"),
require("../app/views/ThreadMessagesView/Item.stories.tsx"),
];
};
configure(getStories, module, false);

4
Gemfile Normal file
View File

@ -0,0 +1,4 @@
source 'https://rubygems.org'
# You may use http://rbenv.org/ or https://rvm.io/ to install and use this version
ruby '2.7.7'
gem 'cocoapods', '~> 1.11', '>= 1.11.2'

View File

@ -6,7 +6,7 @@
[![CodeFactor](https://www.codefactor.io/repository/github/rocketchat/rocket.chat.reactnative/badge)](https://www.codefactor.io/repository/github/rocketchat/rocket.chat.reactnative) [![CodeFactor](https://www.codefactor.io/repository/github/rocketchat/rocket.chat.reactnative/badge)](https://www.codefactor.io/repository/github/rocketchat/rocket.chat.reactnative)
- **Supported server versions:** 0.70.0+ - **Supported server versions:** 0.70.0+
- **Supported iOS versions**: 11+ - **Supported iOS versions**: 12+
- **Supported Android versions**: 6.0+ - **Supported Android versions**: 6.0+
## Download ## Download

View File

@ -1,14 +0,0 @@
export class Sound {
loadAsync = () => {};
playAsync = () => {};
pauseAsync = () => {};
stopAsync = () => {};
setOnPlaybackStatusUpdate = () => {};
setPositionAsync = () => {};
}
export const Audio = { Sound };

View File

@ -1,4 +0,0 @@
const activateKeepAwake = () => '';
const deactivateKeepAwake = () => '';
export { activateKeepAwake, deactivateKeepAwake };

View File

@ -1,3 +0,0 @@
export default {
openBrowserAsync: () => ''
};

View File

@ -1,7 +1,3 @@
export default { import mockDeviceInfo from 'react-native-device-info/jest/react-native-device-info-mock';
getModel: () => '',
getReadableVersion: () => '', export default mockDeviceInfo;
getBundleId: () => '',
isTablet: () => false,
hasNotch: () => false
};

17
__mocks__/react-native-mmkv-storage.js vendored Normal file
View File

@ -0,0 +1,17 @@
export class MMKVLoader {
constructor() {
console.log('MMKVLoader constructor mock');
}
setProcessingMode = jest.fn().mockImplementation(() => ({
withEncryption: jest.fn().mockImplementation(() => ({
initialize: jest.fn().mockImplementation(() => {})
}))
}));
}
export const ProcessingModes = {
MULTI_PROCESS: ''
};
export const create = jest.fn();

View File

@ -1,4 +0,0 @@
export default {
set: () => '',
get: () => ''
};

View File

@ -0,0 +1,31 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`Storyshots Avatar Avatar Path 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":56,\\"height\\":56,\\"borderRadius\\":4},null],\\"testID\\":\\"avatar\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"overflow\\":\\"hidden\\"},{\\"width\\":56,\\"height\\":56,\\"borderRadius\\":4}]},\\"children\\":[{\\"type\\":\\"FastImageView\\",\\"props\\":{\\"style\\":{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},\\"source\\":{\\"uri\\":\\"https://open.rocket.chat/avatar/diego.mello?format=png&size=112\\",\\"headers\\":{\\"User-Agent\\":\\"RC Mobile; ios unknown; vunknown (unknown)\\"},\\"priority\\":\\"high\\"},\\"resizeMode\\":\\"cover\\"},\\"children\\":null}]}]}"`;
exports[`Storyshots Avatar Avatar Room Id 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":56,\\"height\\":56,\\"borderRadius\\":4},null],\\"testID\\":\\"avatar\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"overflow\\":\\"hidden\\"},{\\"width\\":56,\\"height\\":56,\\"borderRadius\\":4}]},\\"children\\":[{\\"type\\":\\"FastImageView\\",\\"props\\":{\\"style\\":{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},\\"source\\":{\\"uri\\":\\"https://open.rocket.chat/avatar/room/devWBbYr7inwupPqK?format=png&size=112\\",\\"headers\\":{\\"User-Agent\\":\\"RC Mobile; ios unknown; vunknown (unknown)\\"},\\"priority\\":\\"high\\"},\\"resizeMode\\":\\"cover\\"},\\"children\\":null}]}]}"`;
exports[`Storyshots Avatar Avatar Text 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":56,\\"height\\":56,\\"borderRadius\\":4},null],\\"testID\\":\\"avatar\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"overflow\\":\\"hidden\\"},{\\"width\\":56,\\"height\\":56,\\"borderRadius\\":4}]},\\"children\\":[{\\"type\\":\\"FastImageView\\",\\"props\\":{\\"style\\":{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},\\"source\\":{\\"uri\\":\\"https://open.rocket.chat/avatar/Avatar?format=png&size=112\\",\\"headers\\":{\\"User-Agent\\":\\"RC Mobile; ios unknown; vunknown (unknown)\\"},\\"priority\\":\\"high\\"},\\"resizeMode\\":\\"cover\\"},\\"children\\":null}]}]}"`;
exports[`Storyshots Avatar Avatar Url 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":56,\\"height\\":56,\\"borderRadius\\":4},null],\\"testID\\":\\"avatar\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"overflow\\":\\"hidden\\"},{\\"width\\":56,\\"height\\":56,\\"borderRadius\\":4}]},\\"children\\":[{\\"type\\":\\"FastImageView\\",\\"props\\":{\\"style\\":{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},\\"source\\":{\\"uri\\":\\"https://user-images.githubusercontent.com/29778115/89444446-14738480-d728-11ea-9412-75fd978d95fb.jpg\\",\\"headers\\":{\\"User-Agent\\":\\"RC Mobile; ios unknown; vunknown (unknown)\\"},\\"priority\\":\\"high\\"},\\"resizeMode\\":\\"cover\\"},\\"children\\":null}]}]}"`;
exports[`Storyshots Avatar Channel 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":56,\\"height\\":56,\\"borderRadius\\":4},null],\\"testID\\":\\"avatar\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"overflow\\":\\"hidden\\"},{\\"width\\":56,\\"height\\":56,\\"borderRadius\\":4}]},\\"children\\":[{\\"type\\":\\"FastImageView\\",\\"props\\":{\\"style\\":{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},\\"source\\":{\\"uri\\":\\"https://open.rocket.chat/avatar/@general?format=png&size=112\\",\\"headers\\":{\\"User-Agent\\":\\"RC Mobile; ios unknown; vunknown (unknown)\\"},\\"priority\\":\\"high\\"},\\"resizeMode\\":\\"cover\\"},\\"children\\":null}]}]}"`;
exports[`Storyshots Avatar Children 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":56,\\"height\\":56,\\"borderRadius\\":4},null],\\"testID\\":\\"avatar\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"overflow\\":\\"hidden\\"},{\\"width\\":56,\\"height\\":56,\\"borderRadius\\":4}]},\\"children\\":[{\\"type\\":\\"FastImageView\\",\\"props\\":{\\"style\\":{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},\\"source\\":{\\"uri\\":\\"https://open.rocket.chat/avatar/Avatar?format=png&size=112\\",\\"headers\\":{\\"User-Agent\\":\\"RC Mobile; ios unknown; vunknown (unknown)\\"},\\"priority\\":\\"high\\"},\\"resizeMode\\":\\"cover\\"},\\"children\\":null}]},{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":24,\\"color\\":\\"#f5455c\\"},[{\\"width\\":24,\\"height\\":24,\\"textAlignVertical\\":\\"center\\"},[{\\"position\\":\\"absolute\\",\\"bottom\\":-2,\\"right\\":-2,\\"borderRadius\\":10}]],{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]}"`;
exports[`Storyshots Avatar Custom Border Radius 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":56,\\"height\\":56,\\"borderRadius\\":28},null],\\"testID\\":\\"avatar\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"overflow\\":\\"hidden\\"},{\\"width\\":56,\\"height\\":56,\\"borderRadius\\":28}]},\\"children\\":[{\\"type\\":\\"FastImageView\\",\\"props\\":{\\"style\\":{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},\\"source\\":{\\"uri\\":\\"https://open.rocket.chat/avatar/Avatar?format=png&size=112\\",\\"headers\\":{\\"User-Agent\\":\\"RC Mobile; ios unknown; vunknown (unknown)\\"},\\"priority\\":\\"high\\"},\\"resizeMode\\":\\"cover\\"},\\"children\\":null}]}]}"`;
exports[`Storyshots Avatar Custom Style 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":56,\\"height\\":56,\\"borderRadius\\":4},{\\"padding\\":16}],\\"testID\\":\\"avatar\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"overflow\\":\\"hidden\\"},{\\"width\\":56,\\"height\\":56,\\"borderRadius\\":4}]},\\"children\\":[{\\"type\\":\\"FastImageView\\",\\"props\\":{\\"style\\":{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},\\"source\\":{\\"uri\\":\\"https://open.rocket.chat/avatar/Avatar?format=png&size=112\\",\\"headers\\":{\\"User-Agent\\":\\"RC Mobile; ios unknown; vunknown (unknown)\\"},\\"priority\\":\\"high\\"},\\"resizeMode\\":\\"cover\\"},\\"children\\":null}]}]}"`;
exports[`Storyshots Avatar Direct 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":56,\\"height\\":56,\\"borderRadius\\":4},null],\\"testID\\":\\"avatar\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"overflow\\":\\"hidden\\"},{\\"width\\":56,\\"height\\":56,\\"borderRadius\\":4}]},\\"children\\":[{\\"type\\":\\"FastImageView\\",\\"props\\":{\\"style\\":{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},\\"source\\":{\\"uri\\":\\"https://open.rocket.chat/avatar/diego.mello?format=png&size=112\\",\\"headers\\":{\\"User-Agent\\":\\"RC Mobile; ios unknown; vunknown (unknown)\\"},\\"priority\\":\\"high\\"},\\"resizeMode\\":\\"cover\\"},\\"children\\":null}]}]}"`;
exports[`Storyshots Avatar Emoji 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":56,\\"height\\":56,\\"borderRadius\\":4},null],\\"testID\\":\\"avatar\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"overflow\\":\\"hidden\\"},[{\\"width\\":30,\\"height\\":30},{\\"width\\":56,\\"height\\":56,\\"borderRadius\\":4}]]},\\"children\\":[{\\"type\\":\\"FastImageView\\",\\"props\\":{\\"style\\":{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},\\"source\\":{\\"uri\\":\\"https://open.rocket.chat/emoji-custom/troll.jpg\\",\\"priority\\":\\"high\\"},\\"resizeMode\\":\\"contain\\"},\\"children\\":null}]}]}"`;
exports[`Storyshots Avatar Static 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":56,\\"height\\":56,\\"borderRadius\\":4},null],\\"testID\\":\\"avatar\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"overflow\\":\\"hidden\\"},{\\"width\\":56,\\"height\\":56,\\"borderRadius\\":4}]},\\"children\\":[{\\"type\\":\\"FastImageView\\",\\"props\\":{\\"style\\":{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},\\"source\\":{\\"uri\\":\\"https://user-images.githubusercontent.com/29778115/89444446-14738480-d728-11ea-9412-75fd978d95fb.jpg\\",\\"headers\\":{\\"User-Agent\\":\\"RC Mobile; ios unknown; vunknown (unknown)\\"},\\"priority\\":\\"high\\"},\\"resizeMode\\":\\"cover\\"},\\"children\\":null}]}]}"`;
exports[`Storyshots Avatar Touchable 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":56,\\"height\\":56,\\"borderRadius\\":4},null],\\"testID\\":\\"avatar\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"accessible\\":true,\\"focusable\\":true,\\"collapsable\\":false,\\"style\\":{\\"opacity\\":1}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"overflow\\":\\"hidden\\"},{\\"width\\":56,\\"height\\":56,\\"borderRadius\\":4}]},\\"children\\":[{\\"type\\":\\"FastImageView\\",\\"props\\":{\\"style\\":{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},\\"source\\":{\\"uri\\":\\"https://open.rocket.chat/avatar/Avatar?format=png&size=112\\",\\"headers\\":{\\"User-Agent\\":\\"RC Mobile; ios unknown; vunknown (unknown)\\"},\\"priority\\":\\"high\\"},\\"resizeMode\\":\\"cover\\"},\\"children\\":null}]}]}]}"`;
exports[`Storyshots Avatar With E Tag 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":56,\\"height\\":56,\\"borderRadius\\":4},null],\\"testID\\":\\"avatar\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"overflow\\":\\"hidden\\"},{\\"width\\":56,\\"height\\":56,\\"borderRadius\\":4}]},\\"children\\":[{\\"type\\":\\"FastImageView\\",\\"props\\":{\\"style\\":{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},\\"source\\":{\\"uri\\":\\"https://open.rocket.chat/avatar/djorkaeff.alexandre?format=png&size=112&etag=5ag8KffJcZj9m5rCv\\",\\"headers\\":{\\"User-Agent\\":\\"RC Mobile; ios unknown; vunknown (unknown)\\"},\\"priority\\":\\"high\\"},\\"resizeMode\\":\\"cover\\"},\\"children\\":null}]}]}"`;
exports[`Storyshots Avatar Without E Tag 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":56,\\"height\\":56,\\"borderRadius\\":4},null],\\"testID\\":\\"avatar\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"overflow\\":\\"hidden\\"},{\\"width\\":56,\\"height\\":56,\\"borderRadius\\":4}]},\\"children\\":[{\\"type\\":\\"FastImageView\\",\\"props\\":{\\"style\\":{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},\\"source\\":{\\"uri\\":\\"https://open.rocket.chat/avatar/djorkaeff.alexandre?format=png&size=112\\",\\"headers\\":{\\"User-Agent\\":\\"RC Mobile; ios unknown; vunknown (unknown)\\"},\\"priority\\":\\"high\\"},\\"resizeMode\\":\\"cover\\"},\\"children\\":null}]}]}"`;
exports[`Storyshots Avatar Wrong Server 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":56,\\"height\\":56,\\"borderRadius\\":4},null],\\"testID\\":\\"avatar\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"overflow\\":\\"hidden\\"},{\\"width\\":56,\\"height\\":56,\\"borderRadius\\":4}]},\\"children\\":[{\\"type\\":\\"FastImageView\\",\\"props\\":{\\"style\\":{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},\\"source\\":{\\"uri\\":\\"https://google.com/avatar/Avatar?format=png&size=112\\",\\"headers\\":{\\"User-Agent\\":\\"RC Mobile; ios unknown; vunknown (unknown)\\"},\\"priority\\":\\"high\\"},\\"resizeMode\\":\\"cover\\"},\\"children\\":null}]}]}"`;

View File

@ -0,0 +1,17 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`Storyshots BackgroundContainer Basic 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flex\\":1}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"accessibilityIgnoresInvertColors\\":true,\\"style\\":{\\"width\\":\\"100%\\",\\"height\\":\\"100%\\",\\"position\\":\\"absolute\\"}},\\"children\\":[{\\"type\\":\\"Image\\",\\"props\\":{\\"source\\":{\\"uri\\":\\"message_empty_light\\"},\\"style\\":[{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},{\\"width\\":\\"100%\\",\\"height\\":\\"100%\\"},null]},\\"children\\":null}]}]}"`;
exports[`Storyshots BackgroundContainer Black Theme Loading 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flex\\":1}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"accessibilityIgnoresInvertColors\\":true,\\"style\\":{\\"width\\":\\"100%\\",\\"height\\":\\"100%\\",\\"position\\":\\"absolute\\"}},\\"children\\":[{\\"type\\":\\"Image\\",\\"props\\":{\\"source\\":{\\"uri\\":\\"message_empty_black\\"},\\"style\\":[{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},{\\"width\\":\\"100%\\",\\"height\\":\\"100%\\"},null]},\\"children\\":null}]},{\\"type\\":\\"ActivityIndicator\\",\\"props\\":{\\"style\\":{\\"position\\":\\"absolute\\",\\"top\\":60,\\"left\\":0,\\"right\\":0,\\"fontSize\\":16,\\"paddingHorizontal\\":24,\\"textAlign\\":\\"center\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},\\"color\\":\\"#f9f9f9\\"},\\"children\\":null}]}"`;
exports[`Storyshots BackgroundContainer Black Theme Text 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flex\\":1}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"accessibilityIgnoresInvertColors\\":true,\\"style\\":{\\"width\\":\\"100%\\",\\"height\\":\\"100%\\",\\"position\\":\\"absolute\\"}},\\"children\\":[{\\"type\\":\\"Image\\",\\"props\\":{\\"source\\":{\\"uri\\":\\"message_empty_black\\"},\\"style\\":[{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},{\\"width\\":\\"100%\\",\\"height\\":\\"100%\\"},null]},\\"children\\":null}]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"top\\":60,\\"left\\":0,\\"right\\":0,\\"fontSize\\":16,\\"paddingHorizontal\\":24,\\"textAlign\\":\\"center\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#f9f9f9\\"}]},\\"children\\":[\\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries\\"]}]}"`;
exports[`Storyshots BackgroundContainer Dark Theme Loading 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flex\\":1}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"accessibilityIgnoresInvertColors\\":true,\\"style\\":{\\"width\\":\\"100%\\",\\"height\\":\\"100%\\",\\"position\\":\\"absolute\\"}},\\"children\\":[{\\"type\\":\\"Image\\",\\"props\\":{\\"source\\":{\\"uri\\":\\"message_empty_dark\\"},\\"style\\":[{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},{\\"width\\":\\"100%\\",\\"height\\":\\"100%\\"},null]},\\"children\\":null}]},{\\"type\\":\\"ActivityIndicator\\",\\"props\\":{\\"style\\":{\\"position\\":\\"absolute\\",\\"top\\":60,\\"left\\":0,\\"right\\":0,\\"fontSize\\":16,\\"paddingHorizontal\\":24,\\"textAlign\\":\\"center\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},\\"color\\":\\"#f9f9f9\\"},\\"children\\":null}]}"`;
exports[`Storyshots BackgroundContainer Dark Theme Text 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flex\\":1}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"accessibilityIgnoresInvertColors\\":true,\\"style\\":{\\"width\\":\\"100%\\",\\"height\\":\\"100%\\",\\"position\\":\\"absolute\\"}},\\"children\\":[{\\"type\\":\\"Image\\",\\"props\\":{\\"source\\":{\\"uri\\":\\"message_empty_dark\\"},\\"style\\":[{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},{\\"width\\":\\"100%\\",\\"height\\":\\"100%\\"},null]},\\"children\\":null}]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"top\\":60,\\"left\\":0,\\"right\\":0,\\"fontSize\\":16,\\"paddingHorizontal\\":24,\\"textAlign\\":\\"center\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#f9f9f9\\"}]},\\"children\\":[\\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries\\"]}]}"`;
exports[`Storyshots BackgroundContainer Loading 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flex\\":1}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"accessibilityIgnoresInvertColors\\":true,\\"style\\":{\\"width\\":\\"100%\\",\\"height\\":\\"100%\\",\\"position\\":\\"absolute\\"}},\\"children\\":[{\\"type\\":\\"Image\\",\\"props\\":{\\"source\\":{\\"uri\\":\\"message_empty_light\\"},\\"style\\":[{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},{\\"width\\":\\"100%\\",\\"height\\":\\"100%\\"},null]},\\"children\\":null}]},{\\"type\\":\\"ActivityIndicator\\",\\"props\\":{\\"style\\":{\\"position\\":\\"absolute\\",\\"top\\":60,\\"left\\":0,\\"right\\":0,\\"fontSize\\":16,\\"paddingHorizontal\\":24,\\"textAlign\\":\\"center\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},\\"color\\":\\"#6C727A\\"},\\"children\\":null}]}"`;
exports[`Storyshots BackgroundContainer Long Text 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flex\\":1}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"accessibilityIgnoresInvertColors\\":true,\\"style\\":{\\"width\\":\\"100%\\",\\"height\\":\\"100%\\",\\"position\\":\\"absolute\\"}},\\"children\\":[{\\"type\\":\\"Image\\",\\"props\\":{\\"source\\":{\\"uri\\":\\"message_empty_light\\"},\\"style\\":[{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},{\\"width\\":\\"100%\\",\\"height\\":\\"100%\\"},null]},\\"children\\":null}]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"top\\":60,\\"left\\":0,\\"right\\":0,\\"fontSize\\":16,\\"paddingHorizontal\\":24,\\"textAlign\\":\\"center\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#6C727A\\"}]},\\"children\\":[\\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries\\"]}]}"`;
exports[`Storyshots BackgroundContainer Text 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flex\\":1}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"accessibilityIgnoresInvertColors\\":true,\\"style\\":{\\"width\\":\\"100%\\",\\"height\\":\\"100%\\",\\"position\\":\\"absolute\\"}},\\"children\\":[{\\"type\\":\\"Image\\",\\"props\\":{\\"source\\":{\\"uri\\":\\"message_empty_light\\"},\\"style\\":[{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},{\\"width\\":\\"100%\\",\\"height\\":\\"100%\\"},null]},\\"children\\":null}]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"top\\":60,\\"left\\":0,\\"right\\":0,\\"fontSize\\":16,\\"paddingHorizontal\\":24,\\"textAlign\\":\\"center\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#6C727A\\"}]},\\"children\\":[\\"Text here\\"]}]}"`;

View File

@ -0,0 +1,13 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`Storyshots Button Custom Button 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"accessible\\":true,\\"accessibilityLabel\\":\\"Press me!\\",\\"accessibilityState\\":{\\"disabled\\":false},\\"testID\\":\\"testButton\\",\\"focusable\\":true,\\"collapsable\\":false,\\"style\\":{\\"paddingHorizontal\\":14,\\"justifyContent\\":\\"center\\",\\"height\\":48,\\"borderRadius\\":4,\\"marginBottom\\":12,\\"backgroundColor\\":\\"purple\\",\\"padding\\":10,\\"opacity\\":1}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"textAlign\\":\\"center\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"500\\"},{\\"color\\":\\"yellow\\",\\"fontSize\\":18},[{\\"textAlign\\":\\"left\\"}]],\\"accessibilityLabel\\":\\"Press me!\\"},\\"children\\":[\\"Press me!\\"]}]}"`;
exports[`Storyshots Button Disabled Button 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"accessible\\":true,\\"accessibilityLabel\\":\\"Press me!\\",\\"accessibilityState\\":{\\"disabled\\":true},\\"testID\\":\\"testButton\\",\\"focusable\\":true,\\"collapsable\\":false,\\"style\\":{\\"paddingHorizontal\\":14,\\"justifyContent\\":\\"center\\",\\"height\\":48,\\"borderRadius\\":4,\\"marginBottom\\":12,\\"backgroundColor\\":\\"#1d74f5\\",\\"opacity\\":0.3}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"textAlign\\":\\"center\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"500\\"},{\\"color\\":\\"#ffffff\\",\\"fontSize\\":16},null],\\"accessibilityLabel\\":\\"Press me!\\"},\\"children\\":[\\"Press me!\\"]}]}"`;
exports[`Storyshots Button Disabled Loading Button 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"accessible\\":true,\\"accessibilityLabel\\":\\"Press me!\\",\\"accessibilityState\\":{\\"disabled\\":true},\\"testID\\":\\"testButton\\",\\"focusable\\":true,\\"collapsable\\":false,\\"style\\":{\\"paddingHorizontal\\":14,\\"justifyContent\\":\\"center\\",\\"height\\":48,\\"borderRadius\\":4,\\"marginBottom\\":12,\\"backgroundColor\\":\\"#1d74f5\\",\\"opacity\\":0.3}},\\"children\\":[{\\"type\\":\\"ActivityIndicator\\",\\"props\\":{\\"style\\":[{\\"padding\\":16,\\"flex\\":1},null],\\"color\\":\\"#ffffff\\"},\\"children\\":null}]}"`;
exports[`Storyshots Button Loading Button 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"accessible\\":true,\\"accessibilityLabel\\":\\"Press me!\\",\\"accessibilityState\\":{\\"disabled\\":true},\\"testID\\":\\"testButton\\",\\"focusable\\":true,\\"collapsable\\":false,\\"style\\":{\\"paddingHorizontal\\":14,\\"justifyContent\\":\\"center\\",\\"height\\":48,\\"borderRadius\\":4,\\"marginBottom\\":12,\\"backgroundColor\\":\\"#1d74f5\\",\\"opacity\\":1}},\\"children\\":[{\\"type\\":\\"ActivityIndicator\\",\\"props\\":{\\"style\\":[{\\"padding\\":16,\\"flex\\":1},null],\\"color\\":\\"#ffffff\\"},\\"children\\":null}]}"`;
exports[`Storyshots Button Primary Button 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"accessible\\":true,\\"accessibilityLabel\\":\\"Press me!\\",\\"accessibilityState\\":{\\"disabled\\":false},\\"testID\\":\\"testButton\\",\\"focusable\\":true,\\"collapsable\\":false,\\"style\\":{\\"paddingHorizontal\\":14,\\"justifyContent\\":\\"center\\",\\"height\\":48,\\"borderRadius\\":4,\\"marginBottom\\":12,\\"backgroundColor\\":\\"#1d74f5\\",\\"opacity\\":1}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"textAlign\\":\\"center\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"500\\"},{\\"color\\":\\"#ffffff\\",\\"fontSize\\":16},null],\\"accessibilityLabel\\":\\"Press me!\\"},\\"children\\":[\\"Press me!\\"]}]}"`;
exports[`Storyshots Button Secondary Button 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"accessible\\":true,\\"accessibilityLabel\\":\\"Press me!\\",\\"accessibilityState\\":{\\"disabled\\":false},\\"testID\\":\\"testButton\\",\\"focusable\\":true,\\"collapsable\\":false,\\"style\\":{\\"paddingHorizontal\\":14,\\"justifyContent\\":\\"center\\",\\"height\\":48,\\"borderRadius\\":4,\\"marginBottom\\":12,\\"backgroundColor\\":\\"#ffffff\\",\\"opacity\\":1}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"textAlign\\":\\"center\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"500\\"},{\\"color\\":\\"#2f343d\\",\\"fontSize\\":16},null],\\"accessibilityLabel\\":\\"Press me!\\"},\\"children\\":[\\"Press me!\\"]}]}"`;

View File

@ -0,0 +1,11 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`Storyshots Chip Chip Text 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flex\\":1,\\"alignItems\\":\\"flex-start\\",\\"padding\\":16}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"accessible\\":true,\\"accessibilityState\\":{\\"disabled\\":false},\\"focusable\\":true,\\"style\\":[{\\"paddingHorizontal\\":8,\\"marginRight\\":8,\\"borderRadius\\":4,\\"justifyContent\\":\\"center\\",\\"maxWidth\\":192},{\\"backgroundColor\\":\\"#efeff4\\"},null],\\"collapsable\\":false},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\"}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":28,\\"height\\":28,\\"borderRadius\\":4},{\\"marginRight\\":8,\\"marginVertical\\":8}],\\"testID\\":\\"avatar\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"overflow\\":\\"hidden\\"},{\\"width\\":28,\\"height\\":28,\\"borderRadius\\":4}]},\\"children\\":[{\\"type\\":\\"FastImageView\\",\\"props\\":{\\"style\\":{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},\\"source\\":{\\"uri\\":\\"https://open.rocket.chat/avatar/rocket.cat?format=png&size=56\\",\\"headers\\":{\\"User-Agent\\":\\"RC Mobile; ios unknown; vunknown (unknown)\\"},\\"priority\\":\\"high\\"},\\"resizeMode\\":\\"cover\\"},\\"children\\":null}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"marginRight\\":8,\\"maxWidth\\":120}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"500\\"},{\\"color\\":\\"#2f343d\\"}],\\"numberOfLines\\":1},\\"children\\":[\\"Rocket.Cat\\"]}]},{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":16,\\"color\\":\\"#6C727A\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]}]}]}"`;
exports[`Storyshots Chip Chip With Short Text 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flex\\":1,\\"alignItems\\":\\"flex-start\\",\\"padding\\":16}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"accessible\\":true,\\"accessibilityState\\":{\\"disabled\\":false},\\"focusable\\":true,\\"style\\":[{\\"paddingHorizontal\\":8,\\"marginRight\\":8,\\"borderRadius\\":4,\\"justifyContent\\":\\"center\\",\\"maxWidth\\":192},{\\"backgroundColor\\":\\"#efeff4\\"},null],\\"collapsable\\":false},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\"}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":28,\\"height\\":28,\\"borderRadius\\":4},{\\"marginRight\\":8,\\"marginVertical\\":8}],\\"testID\\":\\"avatar\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"overflow\\":\\"hidden\\"},{\\"width\\":28,\\"height\\":28,\\"borderRadius\\":4}]},\\"children\\":[{\\"type\\":\\"FastImageView\\",\\"props\\":{\\"style\\":{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},\\"source\\":{\\"uri\\":\\"https://open.rocket.chat/avatar/rocket.cat?format=png&size=56\\",\\"headers\\":{\\"User-Agent\\":\\"RC Mobile; ios unknown; vunknown (unknown)\\"},\\"priority\\":\\"high\\"},\\"resizeMode\\":\\"cover\\"},\\"children\\":null}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"marginRight\\":8,\\"maxWidth\\":120}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"500\\"},{\\"color\\":\\"#2f343d\\"}],\\"numberOfLines\\":1},\\"children\\":[\\"Short\\"]}]},{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":16,\\"color\\":\\"#6C727A\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]}]}]}"`;
exports[`Storyshots Chip Chip Without Avatar 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flex\\":1,\\"alignItems\\":\\"flex-start\\",\\"padding\\":16}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"accessible\\":true,\\"accessibilityState\\":{\\"disabled\\":false},\\"focusable\\":true,\\"style\\":[{\\"paddingHorizontal\\":8,\\"marginRight\\":8,\\"borderRadius\\":4,\\"justifyContent\\":\\"center\\",\\"maxWidth\\":192},{\\"backgroundColor\\":\\"#efeff4\\"},null],\\"collapsable\\":false},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\"}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"marginRight\\":8,\\"maxWidth\\":120}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"500\\"},{\\"color\\":\\"#2f343d\\"}],\\"numberOfLines\\":1},\\"children\\":[\\"Without Avatar\\"]}]},{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":16,\\"color\\":\\"#6C727A\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]}]}]}"`;
exports[`Storyshots Chip Chip Without Avatar And Icon 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flex\\":1,\\"alignItems\\":\\"flex-start\\",\\"padding\\":16}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"accessible\\":true,\\"accessibilityState\\":{\\"disabled\\":true},\\"focusable\\":true,\\"style\\":[{\\"paddingHorizontal\\":8,\\"marginRight\\":8,\\"borderRadius\\":4,\\"justifyContent\\":\\"center\\",\\"maxWidth\\":192},{\\"backgroundColor\\":\\"#efeff4\\"},null],\\"collapsable\\":false},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\"}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"marginRight\\":8,\\"maxWidth\\":120}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"500\\"},{\\"color\\":\\"#2f343d\\"}],\\"numberOfLines\\":1},\\"children\\":[\\"Without Avatar and Icon\\"]}]}]}]}]}"`;
exports[`Storyshots Chip Chip Without Icon 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flex\\":1,\\"alignItems\\":\\"flex-start\\",\\"padding\\":16}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"accessible\\":true,\\"accessibilityState\\":{\\"disabled\\":true},\\"focusable\\":true,\\"style\\":[{\\"paddingHorizontal\\":8,\\"marginRight\\":8,\\"borderRadius\\":4,\\"justifyContent\\":\\"center\\",\\"maxWidth\\":192},{\\"backgroundColor\\":\\"#efeff4\\"},null],\\"collapsable\\":false},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\"}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":28,\\"height\\":28,\\"borderRadius\\":4},{\\"marginRight\\":8,\\"marginVertical\\":8}],\\"testID\\":\\"avatar\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"overflow\\":\\"hidden\\"},{\\"width\\":28,\\"height\\":28,\\"borderRadius\\":4}]},\\"children\\":[{\\"type\\":\\"FastImageView\\",\\"props\\":{\\"style\\":{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},\\"source\\":{\\"uri\\":\\"https://open.rocket.chat/avatar/rocket.cat?format=png&size=56\\",\\"headers\\":{\\"User-Agent\\":\\"RC Mobile; ios unknown; vunknown (unknown)\\"},\\"priority\\":\\"high\\"},\\"resizeMode\\":\\"cover\\"},\\"children\\":null}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"marginRight\\":8,\\"maxWidth\\":120}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"500\\"},{\\"color\\":\\"#2f343d\\"}],\\"numberOfLines\\":1},\\"children\\":[\\"Without Icon\\"]}]}]}]}]}"`;

View File

@ -0,0 +1,11 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`Storyshots HeaderButtons Badge 1`] = `"{\\"type\\":\\"RNCSafeAreaProvider\\",\\"props\\":{\\"style\\":[{\\"flex\\":1},null]},\\"children\\":null}"`;
exports[`Storyshots HeaderButtons Common 1`] = `"{\\"type\\":\\"RNCSafeAreaProvider\\",\\"props\\":{\\"style\\":[{\\"flex\\":1},null]},\\"children\\":null}"`;
exports[`Storyshots HeaderButtons Icons 1`] = `"{\\"type\\":\\"RNCSafeAreaProvider\\",\\"props\\":{\\"style\\":[{\\"flex\\":1},null]},\\"children\\":null}"`;
exports[`Storyshots HeaderButtons Themes 1`] = `"{\\"type\\":\\"RNCSafeAreaProvider\\",\\"props\\":{\\"style\\":[{\\"flex\\":1},null]},\\"children\\":null}"`;
exports[`Storyshots HeaderButtons Title 1`] = `"{\\"type\\":\\"RNCSafeAreaProvider\\",\\"props\\":{\\"style\\":[{\\"flex\\":1},null]},\\"children\\":null}"`;

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,5 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`Storyshots Login Services Separators 1`] = `"[{\\"type\\":\\"View\\",\\"props\\":{\\"accessible\\":true,\\"accessibilityLabel\\":\\"More options\\",\\"accessibilityState\\":{\\"disabled\\":false},\\"focusable\\":true,\\"collapsable\\":false,\\"style\\":{\\"paddingHorizontal\\":14,\\"justifyContent\\":\\"center\\",\\"height\\":48,\\"borderRadius\\":4,\\"marginBottom\\":0,\\"backgroundColor\\":\\"#ffffff\\",\\"opacity\\":1}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"textAlign\\":\\"center\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"500\\"},{\\"color\\":\\"#1d74f5\\",\\"fontSize\\":16},null],\\"accessibilityLabel\\":\\"More options\\"},\\"children\\":[\\"More options\\"]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\",\\"marginVertical\\":24}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"height\\":1,\\"flex\\":1},{\\"backgroundColor\\":\\"#e1e5e8\\"}]},\\"children\\":null},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":14,\\"marginLeft\\":14,\\"marginRight\\":14,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"500\\"},{\\"color\\":\\"#9ca2a8\\"}]},\\"children\\":[\\"OR\\"]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"height\\":1,\\"flex\\":1},{\\"backgroundColor\\":\\"#e1e5e8\\"}]},\\"children\\":null}]},{\\"type\\":\\"View\\",\\"props\\":{\\"accessible\\":true,\\"accessibilityLabel\\":\\"Less options\\",\\"accessibilityState\\":{\\"disabled\\":false},\\"focusable\\":true,\\"collapsable\\":false,\\"style\\":{\\"paddingHorizontal\\":14,\\"justifyContent\\":\\"center\\",\\"height\\":48,\\"borderRadius\\":4,\\"marginBottom\\":0,\\"backgroundColor\\":\\"#ffffff\\",\\"opacity\\":1}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"textAlign\\":\\"center\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"500\\"},{\\"color\\":\\"#1d74f5\\",\\"fontSize\\":16},null],\\"accessibilityLabel\\":\\"Less options\\"},\\"children\\":[\\"Less options\\"]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\",\\"marginVertical\\":24}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"height\\":1,\\"flex\\":1},{\\"backgroundColor\\":\\"#e1e5e8\\"}]},\\"children\\":null},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":14,\\"marginLeft\\":14,\\"marginRight\\":14,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"500\\"},{\\"color\\":\\"#9ca2a8\\"}]},\\"children\\":[\\"OR\\"]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"height\\":1,\\"flex\\":1},{\\"backgroundColor\\":\\"#e1e5e8\\"}]},\\"children\\":null}]}]"`;
exports[`Storyshots Login Services Service List 1`] = `"[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"borderRadius\\":4,\\"width\\":\\"100%\\",\\"height\\":48,\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\",\\"justifyContent\\":\\"center\\",\\"paddingHorizontal\\":15}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":24,\\"color\\":\\"#0d0e12\\"},{\\"position\\":\\"absolute\\",\\"left\\":15,\\"top\\":12,\\"width\\":24,\\"height\\":24},{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\",\\"fontSize\\":16},{\\"color\\":\\"#0d0e12\\"}]},\\"children\\":[\\"Continue with\\",\\" \\",{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"600\\"}},\\"children\\":[\\"github\\"]}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"borderRadius\\":4,\\"width\\":\\"100%\\",\\"height\\":48,\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\",\\"justifyContent\\":\\"center\\",\\"paddingHorizontal\\":15}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":24,\\"color\\":\\"#0d0e12\\"},{\\"position\\":\\"absolute\\",\\"left\\":15,\\"top\\":12,\\"width\\":24,\\"height\\":24},{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\",\\"fontSize\\":16},{\\"color\\":\\"#0d0e12\\"}]},\\"children\\":[\\"Continue with\\",\\" \\",{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"600\\"}},\\"children\\":[\\"gitlab\\"]}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"borderRadius\\":4,\\"width\\":\\"100%\\",\\"height\\":48,\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\",\\"justifyContent\\":\\"center\\",\\"paddingHorizontal\\":15}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":24,\\"color\\":\\"#0d0e12\\"},{\\"position\\":\\"absolute\\",\\"left\\":15,\\"top\\":12,\\"width\\":24,\\"height\\":24},{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\",\\"fontSize\\":16},{\\"color\\":\\"#0d0e12\\"}]},\\"children\\":[\\"Continue with\\",\\" \\",{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"600\\"}},\\"children\\":[\\"google\\"]}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"borderRadius\\":4,\\"width\\":\\"100%\\",\\"height\\":48,\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\",\\"justifyContent\\":\\"center\\",\\"paddingHorizontal\\":15}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":24,\\"color\\":\\"#0d0e12\\"},{\\"position\\":\\"absolute\\",\\"left\\":15,\\"top\\":12,\\"width\\":24,\\"height\\":24},{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\",\\"fontSize\\":16},{\\"color\\":\\"#0d0e12\\"}]},\\"children\\":[\\"Continue with\\",\\" \\",{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":{\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"600\\"}},\\"children\\":[\\"apple\\"]}]}]}]"`;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,3 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`Storyshots SearchBox Basic 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"testID\\":\\"searchbox\\",\\"style\\":{\\"backgroundColor\\":\\"#ffffff\\"}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"marginBottom\\":10},{\\"margin\\":16,\\"marginBottom\\":16}]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"position\\":\\"relative\\",\\"justifyContent\\":\\"center\\"}},\\"children\\":[{\\"type\\":\\"TextInput\\",\\"props\\":{\\"style\\":[{\\"color\\":\\"#0d0e12\\"},[{\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\",\\"height\\":48,\\"fontSize\\":16,\\"paddingHorizontal\\":16,\\"paddingVertical\\":10,\\"borderWidth\\":1,\\"borderRadius\\":4},null,{\\"paddingRight\\":45},{\\"backgroundColor\\":\\"#ffffff\\",\\"borderColor\\":\\"#cbcbcc\\",\\"color\\":\\"#0d0e12\\"},null,null],{\\"textAlign\\":\\"auto\\"}],\\"placeholderTextColor\\":\\"#9ca2a8\\",\\"keyboardAppearance\\":\\"light\\",\\"autoCorrect\\":false,\\"autoCapitalize\\":\\"none\\",\\"underlineColorAndroid\\":\\"transparent\\",\\"accessibilityLabel\\":\\"Search\\",\\"placeholder\\":\\"Search\\",\\"value\\":\\"\\",\\"blurOnSubmit\\":true,\\"returnKeyType\\":\\"search\\"},\\"children\\":null},{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":20,\\"color\\":\\"#2f343d\\"},[{\\"position\\":\\"absolute\\"},{\\"right\\":12}],{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]}]}]}"`;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,27 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`Storyshots UIKit/UiKitMessage Action - Buttons 1`] = `"{\\"type\\":\\"RCTScrollView\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"backgroundColor\\":\\"#fff\\"},{\\"paddingHorizontal\\":16}],\\"keyboardShouldPersistTaps\\":\\"always\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":null}]}"`;
exports[`Storyshots UIKit/UiKitMessage Action - Select 1`] = `"{\\"type\\":\\"RCTScrollView\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"backgroundColor\\":\\"#fff\\"},{\\"paddingHorizontal\\":16}],\\"keyboardShouldPersistTaps\\":\\"always\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":null}]}"`;
exports[`Storyshots UIKit/UiKitMessage Context 1`] = `"{\\"type\\":\\"RCTScrollView\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"backgroundColor\\":\\"#fff\\"},{\\"paddingHorizontal\\":16}],\\"keyboardShouldPersistTaps\\":\\"always\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":null}]}"`;
exports[`Storyshots UIKit/UiKitMessage Fields 1`] = `"{\\"type\\":\\"RCTScrollView\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"backgroundColor\\":\\"#fff\\"},{\\"paddingHorizontal\\":16}],\\"keyboardShouldPersistTaps\\":\\"always\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":null}]}"`;
exports[`Storyshots UIKit/UiKitMessage Image 1`] = `"{\\"type\\":\\"RCTScrollView\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"backgroundColor\\":\\"#fff\\"},{\\"paddingHorizontal\\":16}],\\"keyboardShouldPersistTaps\\":\\"always\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":null}]}"`;
exports[`Storyshots UIKit/UiKitMessage Section + DatePicker 1`] = `"{\\"type\\":\\"RCTScrollView\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"backgroundColor\\":\\"#fff\\"},{\\"paddingHorizontal\\":16}],\\"keyboardShouldPersistTaps\\":\\"always\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":null}]}"`;
exports[`Storyshots UIKit/UiKitMessage Section + Markdown List 1`] = `"{\\"type\\":\\"RCTScrollView\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"backgroundColor\\":\\"#fff\\"},{\\"paddingHorizontal\\":16}],\\"keyboardShouldPersistTaps\\":\\"always\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":null}]}"`;
exports[`Storyshots UIKit/UiKitMessage Section + Multi Select 1`] = `"{\\"type\\":\\"RCTScrollView\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"backgroundColor\\":\\"#fff\\"},{\\"paddingHorizontal\\":16}],\\"keyboardShouldPersistTaps\\":\\"always\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":null}]}"`;
exports[`Storyshots UIKit/UiKitMessage Section + Overflow 1`] = `"{\\"type\\":\\"RCTScrollView\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"backgroundColor\\":\\"#fff\\"},{\\"paddingHorizontal\\":16}],\\"keyboardShouldPersistTaps\\":\\"always\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":null}]}"`;
exports[`Storyshots UIKit/UiKitMessage Section + Select 1`] = `"{\\"type\\":\\"RCTScrollView\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"backgroundColor\\":\\"#fff\\"},{\\"paddingHorizontal\\":16}],\\"keyboardShouldPersistTaps\\":\\"always\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":null}]}"`;
exports[`Storyshots UIKit/UiKitMessage Section + button 1`] = `"{\\"type\\":\\"RCTScrollView\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"backgroundColor\\":\\"#fff\\"},{\\"paddingHorizontal\\":16}],\\"keyboardShouldPersistTaps\\":\\"always\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":null}]}"`;
exports[`Storyshots UIKit/UiKitMessage Section + image 1`] = `"{\\"type\\":\\"RCTScrollView\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"backgroundColor\\":\\"#fff\\"},{\\"paddingHorizontal\\":16}],\\"keyboardShouldPersistTaps\\":\\"always\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":null}]}"`;
exports[`Storyshots UIKit/UiKitMessage Section 1`] = `"{\\"type\\":\\"RCTScrollView\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"backgroundColor\\":\\"#fff\\"},{\\"paddingHorizontal\\":16}],\\"keyboardShouldPersistTaps\\":\\"always\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":null}]}"`;

View File

@ -0,0 +1,21 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`Storyshots UIKit/UiKitModal Modal - Actions 1`] = `"{\\"type\\":\\"RCTScrollView\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"backgroundColor\\":\\"#fff\\"},{\\"paddingHorizontal\\":16}],\\"keyboardShouldPersistTaps\\":\\"always\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":null}]}"`;
exports[`Storyshots UIKit/UiKitModal Modal - Contexts and Dividers 1`] = `"{\\"type\\":\\"RCTScrollView\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"backgroundColor\\":\\"#fff\\"},{\\"paddingHorizontal\\":16}],\\"keyboardShouldPersistTaps\\":\\"always\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":null}]}"`;
exports[`Storyshots UIKit/UiKitModal Modal - DatePicker with error 1`] = `"{\\"type\\":\\"RCTScrollView\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"backgroundColor\\":\\"#fff\\"},{\\"paddingHorizontal\\":16}],\\"keyboardShouldPersistTaps\\":\\"always\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":null}]}"`;
exports[`Storyshots UIKit/UiKitModal Modal - Form Input 1`] = `"{\\"type\\":\\"RCTScrollView\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"backgroundColor\\":\\"#fff\\"},{\\"paddingHorizontal\\":16}],\\"keyboardShouldPersistTaps\\":\\"always\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":null}]}"`;
exports[`Storyshots UIKit/UiKitModal Modal - Form TextArea 1`] = `"{\\"type\\":\\"RCTScrollView\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"backgroundColor\\":\\"#fff\\"},{\\"paddingHorizontal\\":16}],\\"keyboardShouldPersistTaps\\":\\"always\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":null}]}"`;
exports[`Storyshots UIKit/UiKitModal Modal - Images 1`] = `"{\\"type\\":\\"RCTScrollView\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"backgroundColor\\":\\"#fff\\"},{\\"paddingHorizontal\\":16}],\\"keyboardShouldPersistTaps\\":\\"always\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":null}]}"`;
exports[`Storyshots UIKit/UiKitModal Modal - Input with error 1`] = `"{\\"type\\":\\"RCTScrollView\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"backgroundColor\\":\\"#fff\\"},{\\"paddingHorizontal\\":16}],\\"keyboardShouldPersistTaps\\":\\"always\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":null}]}"`;
exports[`Storyshots UIKit/UiKitModal Modal - Multilne with error 1`] = `"{\\"type\\":\\"RCTScrollView\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"backgroundColor\\":\\"#fff\\"},{\\"paddingHorizontal\\":16}],\\"keyboardShouldPersistTaps\\":\\"always\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":null}]}"`;
exports[`Storyshots UIKit/UiKitModal Modal - Section and Accessories 1`] = `"{\\"type\\":\\"RCTScrollView\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"backgroundColor\\":\\"#fff\\"},{\\"paddingHorizontal\\":16}],\\"keyboardShouldPersistTaps\\":\\"always\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":null}]}"`;
exports[`Storyshots UIKit/UiKitModal Modal - Section and Selects 1`] = `"{\\"type\\":\\"RCTScrollView\\",\\"props\\":{\\"style\\":[{\\"flex\\":1,\\"backgroundColor\\":\\"#fff\\"},{\\"paddingHorizontal\\":16}],\\"keyboardShouldPersistTaps\\":\\"always\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{},\\"children\\":null}]}"`;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,3 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`Storyshots CollapsibleQuote Item 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"padding\\":10}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"accessible\\":true,\\"testID\\":\\"collapsibleQuoteTouchable-Engineering (9 today)\\",\\"hitSlop\\":{\\"top\\":4,\\"right\\":4,\\"bottom\\":4,\\"left\\":4},\\"focusable\\":true,\\"collapsable\\":false,\\"style\\":{\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\",\\"marginTop\\":6,\\"borderWidth\\":1,\\"borderRadius\\":4,\\"minHeight\\":40,\\"backgroundColor\\":\\"#f3f4f5\\",\\"borderLeftColor\\":\\"#CBCED1\\",\\"borderTopColor\\":\\"#e1e5e8\\",\\"borderRightColor\\":\\"#e1e5e8\\",\\"borderBottomColor\\":\\"#e1e5e8\\",\\"borderLeftWidth\\":2,\\"opacity\\":1}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flexDirection\\":\\"row\\"}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flex\\":1,\\"borderRadius\\":4,\\"padding\\":8}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flexDirection\\":\\"row\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"500\\"},{\\"color\\":\\"#6C727A\\"}]},\\"children\\":[\\"Engineering (9 today)\\"]}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"width\\":20,\\"height\\":20,\\"right\\":8,\\"top\\":8,\\"justifyContent\\":\\"center\\",\\"alignItems\\":\\"center\\"}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":22,\\"color\\":\\"#6C727A\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]}]}]}]}"`;

File diff suppressed because one or more lines are too long

View File

@ -1,23 +1,6 @@
import initStoryshots, { Stories2SnapsConverter } from '@storybook/addon-storyshots'; import initStoryshots, { Stories2SnapsConverter } from '@storybook/addon-storyshots';
import { render } from '@testing-library/react-native'; import { render } from '@testing-library/react-native';
jest.mock('rn-fetch-blob', () => ({
fs: {
dirs: {
DocumentDir: '/data/com.rocket.chat/documents',
DownloadDir: '/data/com.rocket.chat/downloads'
},
exists: jest.fn(() => null)
},
fetch: jest.fn(() => null),
config: jest.fn(() => null)
}));
jest.mock('react-native-file-viewer', () => ({
open: jest.fn(() => null)
}));
jest.mock('../app/lib/database', () => jest.fn(() => null));
global.Date.now = jest.fn(() => new Date('2019-10-10').getTime()); global.Date.now = jest.fn(() => new Date('2019-10-10').getTime());
const converter = new Stories2SnapsConverter(); const converter = new Stories2SnapsConverter();

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,3 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`Storyshots SwitchItem Switch 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flex\\":1,\\"alignItems\\":\\"flex-start\\",\\"padding\\":16}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"minHeight\\":54,\\"alignItems\\":\\"center\\",\\"justifyContent\\":\\"space-between\\",\\"flexDirection\\":\\"row\\",\\"maxHeight\\":80,\\"marginBottom\\":12},{\\"backgroundColor\\":\\"#ffffff\\"}]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flex\\":1,\\"marginRight\\":8}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":14,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"500\\"},{\\"color\\":\\"#0d0e12\\"}]},\\"children\\":[\\"Welcome to Rocket.Chat\\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"testID\\":\\"create-channel-switch-id-hint\\",\\"style\\":[{\\"fontSize\\":14,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#9ca2a8\\"}]},\\"children\\":[\\"Only authorized users can write new messages\\"]}]},{\\"type\\":\\"RCTSwitch\\",\\"props\\":{\\"testID\\":\\"create-channel-switch-id\\",\\"disabled\\":false,\\"onTintColor\\":\\"#2de0a5\\",\\"style\\":{\\"height\\":31,\\"width\\":51},\\"tintColor\\":\\"#f5455c\\",\\"value\\":false,\\"accessibilityRole\\":\\"switch\\"},\\"children\\":null}]}]}"`;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,78 +1,102 @@
GEM GEM
remote: https://rubygems.org/ remote: https://rubygems.org/
specs: specs:
CFPropertyList (3.0.2) CFPropertyList (3.0.5)
addressable (2.7.0) rexml
addressable (2.8.0)
public_suffix (>= 2.0.2, < 5.0) public_suffix (>= 2.0.2, < 5.0)
artifactory (3.0.15)
atomos (0.1.3) atomos (0.1.3)
aws-eventstream (1.0.3) aws-eventstream (1.2.0)
aws-partitions (1.294.0) aws-partitions (1.600.0)
aws-sdk-core (3.92.0) aws-sdk-core (3.131.2)
aws-eventstream (~> 1.0, >= 1.0.2) aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.239.0) aws-partitions (~> 1, >= 1.525.0)
aws-sigv4 (~> 1.1) aws-sigv4 (~> 1.1)
jmespath (~> 1.0) jmespath (~> 1, >= 1.6.1)
aws-sdk-kms (1.30.0) aws-sdk-kms (1.57.0)
aws-sdk-core (~> 3, >= 3.71.0) aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1) aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.61.2) aws-sdk-s3 (1.114.0)
aws-sdk-core (~> 3, >= 3.83.0) aws-sdk-core (~> 3, >= 3.127.0)
aws-sdk-kms (~> 1) aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.1) aws-sigv4 (~> 1.4)
aws-sigv4 (1.1.1) aws-sigv4 (1.5.0)
aws-eventstream (~> 1.0, >= 1.0.2) aws-eventstream (~> 1, >= 1.0.2)
babosa (1.0.3) babosa (1.0.4)
claide (1.0.3) claide (1.1.0)
colored (1.2) colored (1.2)
colored2 (3.1.2) colored2 (3.1.2)
commander-fastlane (4.4.6) commander (4.6.0)
highline (~> 1.7.2) highline (~> 2.0.0)
declarative (0.0.10) declarative (0.0.20)
declarative-option (0.1.0) digest-crc (0.6.4)
digest-crc (0.5.1) rake (>= 12.0.0, < 14.0.0)
domain_name (0.5.20190701) domain_name (0.5.20190701)
unf (>= 0.0.5, < 1.0.0) unf (>= 0.0.5, < 1.0.0)
dotenv (2.7.5) dotenv (2.7.6)
emoji_regex (1.0.1) emoji_regex (3.2.3)
excon (0.73.0) excon (0.92.3)
faraday (0.17.3) faraday (1.10.0)
multipart-post (>= 1.2, < 3) faraday-em_http (~> 1.0)
faraday-cookie_jar (0.0.6) faraday-em_synchrony (~> 1.0)
faraday (>= 0.7.4) faraday-excon (~> 1.1)
faraday-httpclient (~> 1.0)
faraday-multipart (~> 1.0)
faraday-net_http (~> 1.0)
faraday-net_http_persistent (~> 1.0)
faraday-patron (~> 1.0)
faraday-rack (~> 1.0)
faraday-retry (~> 1.0)
ruby2_keywords (>= 0.0.4)
faraday-cookie_jar (0.0.7)
faraday (>= 0.8.0)
http-cookie (~> 1.0.0) http-cookie (~> 1.0.0)
faraday_middleware (0.13.1) faraday-em_http (1.0.0)
faraday (>= 0.7.4, < 1.0) faraday-em_synchrony (1.0.0)
fastimage (2.1.7) faraday-excon (1.1.0)
fastlane (2.145.0) faraday-httpclient (1.0.1)
faraday-multipart (1.0.4)
multipart-post (~> 2)
faraday-net_http (1.0.1)
faraday-net_http_persistent (1.2.0)
faraday-patron (1.0.0)
faraday-rack (1.0.0)
faraday-retry (1.0.3)
faraday_middleware (1.2.0)
faraday (~> 1.0)
fastimage (2.2.6)
fastlane (2.206.2)
CFPropertyList (>= 2.3, < 4.0.0) CFPropertyList (>= 2.3, < 4.0.0)
addressable (>= 2.3, < 3.0.0) addressable (>= 2.8, < 3.0.0)
artifactory (~> 3.0)
aws-sdk-s3 (~> 1.0) aws-sdk-s3 (~> 1.0)
babosa (>= 1.0.2, < 2.0.0) babosa (>= 1.0.3, < 2.0.0)
bundler (>= 1.12.0, < 3.0.0) bundler (>= 1.12.0, < 3.0.0)
colored colored
commander-fastlane (>= 4.4.6, < 5.0.0) commander (~> 4.6)
dotenv (>= 2.1.1, < 3.0.0) dotenv (>= 2.1.1, < 3.0.0)
emoji_regex (>= 0.1, < 2.0) emoji_regex (>= 0.1, < 4.0)
excon (>= 0.71.0, < 1.0.0) excon (>= 0.71.0, < 1.0.0)
faraday (~> 0.17) faraday (~> 1.0)
faraday-cookie_jar (~> 0.0.6) faraday-cookie_jar (~> 0.0.6)
faraday_middleware (~> 0.13.1) faraday_middleware (~> 1.0)
fastimage (>= 2.1.0, < 3.0.0) fastimage (>= 2.1.0, < 3.0.0)
gh_inspector (>= 1.1.2, < 2.0.0) gh_inspector (>= 1.1.2, < 2.0.0)
google-api-client (>= 0.29.2, < 0.37.0) google-apis-androidpublisher_v3 (~> 0.3)
google-cloud-storage (>= 1.15.0, < 2.0.0) google-apis-playcustomapp_v1 (~> 0.1)
highline (>= 1.7.2, < 2.0.0) google-cloud-storage (~> 1.31)
highline (~> 2.0)
json (< 3.0.0) json (< 3.0.0)
jwt (~> 2.1.0) jwt (>= 2.1.0, < 3)
mini_magick (>= 4.9.4, < 5.0.0) mini_magick (>= 4.9.4, < 5.0.0)
multi_xml (~> 0.5)
multipart-post (~> 2.0.0) multipart-post (~> 2.0.0)
naturally (~> 2.2)
optparse (~> 0.1.1)
plist (>= 3.1.0, < 4.0.0) plist (>= 3.1.0, < 4.0.0)
public_suffix (~> 2.0.0) rubyzip (>= 2.0.0, < 3.0.0)
rubyzip (>= 1.3.0, < 2.0.0)
security (= 0.1.3) security (= 0.1.3)
simctl (~> 1.6.3) simctl (~> 1.6.3)
slack-notifier (>= 2.0.0, < 3.0.0)
terminal-notifier (>= 2.0.0, < 3.0.0) terminal-notifier (>= 2.0.0, < 3.0.0)
terminal-table (>= 1.4.5, < 2.0.0) terminal-table (>= 1.4.5, < 2.0.0)
tty-screen (>= 0.6.3, < 1.0.0) tty-screen (>= 0.6.3, < 1.0.0)
@ -82,92 +106,106 @@ GEM
xcpretty (~> 0.3.0) xcpretty (~> 0.3.0)
xcpretty-travis-formatter (>= 0.0.3) xcpretty-travis-formatter (>= 0.0.3)
gh_inspector (1.1.3) gh_inspector (1.1.3)
google-api-client (0.36.4) google-apis-androidpublisher_v3 (0.22.0)
google-apis-core (>= 0.5, < 2.a)
google-apis-core (0.6.0)
addressable (~> 2.5, >= 2.5.1) addressable (~> 2.5, >= 2.5.1)
googleauth (~> 0.9) googleauth (>= 0.16.2, < 2.a)
httpclient (>= 2.8.1, < 3.0) httpclient (>= 2.8.1, < 3.a)
mini_mime (~> 1.0) mini_mime (~> 1.0)
representable (~> 3.0) representable (~> 3.0)
retriable (>= 2.0, < 4.0) retriable (>= 2.0, < 4.a)
signet (~> 0.12) rexml
google-cloud-core (1.5.0) webrick
google-apis-iamcredentials_v1 (0.12.0)
google-apis-core (>= 0.6, < 2.a)
google-apis-playcustomapp_v1 (0.9.0)
google-apis-core (>= 0.6, < 2.a)
google-apis-storage_v1 (0.15.0)
google-apis-core (>= 0.5, < 2.a)
google-cloud-core (1.6.0)
google-cloud-env (~> 1.0) google-cloud-env (~> 1.0)
google-cloud-errors (~> 1.0) google-cloud-errors (~> 1.0)
google-cloud-env (1.3.1) google-cloud-env (1.6.0)
faraday (>= 0.17.3, < 2.0) faraday (>= 0.17.3, < 3.0)
google-cloud-errors (1.0.0) google-cloud-errors (1.2.0)
google-cloud-storage (1.25.1) google-cloud-storage (1.36.2)
addressable (~> 2.5) addressable (~> 2.8)
digest-crc (~> 0.4) digest-crc (~> 0.4)
google-api-client (~> 0.33) google-apis-iamcredentials_v1 (~> 0.1)
google-cloud-core (~> 1.2) google-apis-storage_v1 (~> 0.1)
googleauth (~> 0.9) google-cloud-core (~> 1.6)
googleauth (>= 0.16.2, < 2.a)
mini_mime (~> 1.0) mini_mime (~> 1.0)
googleauth (0.11.0) googleauth (1.2.0)
faraday (>= 0.17.3, < 2.0) faraday (>= 0.17.3, < 3.a)
jwt (>= 1.4, < 3.0) jwt (>= 1.4, < 3.0)
memoist (~> 0.16) memoist (~> 0.16)
multi_json (~> 1.11) multi_json (~> 1.11)
os (>= 0.9, < 2.0) os (>= 0.9, < 2.0)
signet (~> 0.12) signet (>= 0.16, < 2.a)
highline (1.7.10) highline (2.0.3)
http-cookie (1.0.3) http-cookie (1.0.5)
domain_name (~> 0.5) domain_name (~> 0.5)
httpclient (2.8.3) httpclient (2.8.3)
jmespath (1.4.0) jmespath (1.6.1)
json (2.3.0) json (2.6.2)
jwt (2.1.0) jwt (2.4.1)
memoist (0.16.2) memoist (0.16.2)
mini_magick (4.10.1) mini_magick (4.11.0)
mini_mime (1.0.2) mini_mime (1.1.2)
multi_json (1.14.1) multi_json (1.15.0)
multi_xml (0.6.0)
multipart-post (2.0.0) multipart-post (2.0.0)
nanaimo (0.2.6) nanaimo (0.3.0)
naturally (2.2.0) naturally (2.2.1)
os (1.1.0) optparse (0.1.1)
plist (3.5.0) os (1.1.4)
public_suffix (2.0.5) plist (3.6.0)
representable (3.0.4) public_suffix (4.0.7)
rake (13.0.6)
representable (3.2.0)
declarative (< 0.1.0) declarative (< 0.1.0)
declarative-option (< 0.2.0) trailblazer-option (>= 0.1.1, < 0.2.0)
uber (< 0.2.0) uber (< 0.2.0)
retriable (3.1.2) retriable (3.1.2)
rexml (3.2.5)
rouge (2.0.7) rouge (2.0.7)
rubyzip (1.3.0) ruby2_keywords (0.0.5)
rubyzip (2.3.2)
security (0.1.3) security (0.1.3)
signet (0.14.0) signet (0.17.0)
addressable (~> 2.3) addressable (~> 2.8)
faraday (>= 0.17.3, < 2.0) faraday (>= 0.17.5, < 3.a)
jwt (>= 1.5, < 3.0) jwt (>= 1.5, < 3.0)
multi_json (~> 1.10) multi_json (~> 1.10)
simctl (1.6.8) simctl (1.6.8)
CFPropertyList CFPropertyList
naturally naturally
slack-notifier (2.3.2)
terminal-notifier (2.0.0) terminal-notifier (2.0.0)
terminal-table (1.8.0) terminal-table (1.8.0)
unicode-display_width (~> 1.1, >= 1.1.1) unicode-display_width (~> 1.1, >= 1.1.1)
trailblazer-option (0.1.2)
tty-cursor (0.7.1) tty-cursor (0.7.1)
tty-screen (0.7.1) tty-screen (0.8.1)
tty-spinner (0.9.3) tty-spinner (0.9.3)
tty-cursor (~> 0.7) tty-cursor (~> 0.7)
uber (0.1.0) uber (0.1.0)
unf (0.1.4) unf (0.1.4)
unf_ext unf_ext
unf_ext (0.0.7.7) unf_ext (0.0.8.2)
unf_ext (0.0.7.7-x64-mingw32) unicode-display_width (1.8.0)
unicode-display_width (1.7.0) webrick (1.7.0)
word_wrap (1.0.0) word_wrap (1.0.0)
xcodeproj (1.15.0) xcodeproj (1.22.0)
CFPropertyList (>= 2.3.3, < 4.0) CFPropertyList (>= 2.3.3, < 4.0)
atomos (~> 0.1.3) atomos (~> 0.1.3)
claide (>= 1.0.2, < 2.0) claide (>= 1.0.2, < 2.0)
colored2 (~> 3.1) colored2 (~> 3.1)
nanaimo (~> 0.2.6) nanaimo (~> 0.3.0)
rexml (~> 3.2.4)
xcpretty (0.3.0) xcpretty (0.3.0)
rouge (~> 2.0.7) rouge (~> 2.0.7)
xcpretty-travis-formatter (1.0.0) xcpretty-travis-formatter (1.0.1)
xcpretty (~> 0.2, >= 0.0.7) xcpretty (~> 0.2, >= 0.0.7)
PLATFORMS PLATFORMS
@ -178,4 +216,4 @@ DEPENDENCIES
fastlane fastlane
BUNDLED WITH BUNDLED WITH
2.0.2 2.3.11

View File

@ -93,7 +93,6 @@ project.ext.react = [
] ]
apply from: "../../node_modules/react-native/react.gradle" apply from: "../../node_modules/react-native/react.gradle"
apply from: '../../node_modules/react-native-unimodules/gradle.groovy'
/** /**
* Set this to true to create two separate APKs instead of one: * Set this to true to create two separate APKs instead of one:
@ -131,20 +130,24 @@ def jscFlavor = 'org.webkit:android-jsc:+'
*/ */
def enableHermes = project.ext.react.get("enableHermes", false); def enableHermes = project.ext.react.get("enableHermes", false);
android { /**
compileSdkVersion rootProject.ext.compileSdkVersion * Architectures to build native code for.
*/
compileOptions { def reactNativeArchitectures() {
sourceCompatibility JavaVersion.VERSION_1_8 def value = project.getProperties().get("reactNativeArchitectures")
targetCompatibility JavaVersion.VERSION_1_8 return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"]
} }
android {
ndkVersion rootProject.ext.ndkVersion
compileSdkVersion rootProject.ext.compileSdkVersion
defaultConfig { defaultConfig {
applicationId APPLICATION_ID applicationId APPLICATION_ID
minSdkVersion rootProject.ext.minSdkVersion minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion
versionCode VERSIONCODE as Integer versionCode VERSIONCODE as Integer
versionName "4.26.0" versionName "4.37.0"
vectorDrawables.useSupportLibrary = true vectorDrawables.useSupportLibrary = true
if (!isFoss) { if (!isFoss) {
manifestPlaceholders = [BugsnagAPIKey: BugsnagAPIKey as String] manifestPlaceholders = [BugsnagAPIKey: BugsnagAPIKey as String]
@ -153,6 +156,76 @@ android {
resValue "string", "rn_config_reader_custom_package", "chat.rocket.reactnative" resValue "string", "rn_config_reader_custom_package", "chat.rocket.reactnative"
testBuildType System.getProperty('testBuildType', 'debug') testBuildType System.getProperty('testBuildType', 'debug')
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner' testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString()
if (isNewArchitectureEnabled()) {
// We configure the NDK build only if you decide to opt-in for the New Architecture.
externalNativeBuild {
ndkBuild {
arguments "APP_PLATFORM=android-21",
"APP_STL=c++_shared",
"NDK_TOOLCHAIN_VERSION=clang",
"GENERATED_SRC_DIR=$buildDir/generated/source",
"PROJECT_BUILD_DIR=$buildDir",
"REACT_ANDROID_DIR=$rootDir/../node_modules/react-native/ReactAndroid",
"REACT_ANDROID_BUILD_DIR=$rootDir/../node_modules/react-native/ReactAndroid/build"
cFlags "-Wall", "-Werror", "-fexceptions", "-frtti", "-DWITH_INSPECTOR=1"
cppFlags "-std=c++17"
// Make sure this target name is the same you specify inside the
// src/main/jni/Android.mk file for the `LOCAL_MODULE` variable.
targets "rndiffapp_appmodules"
// Fix for windows limit on number of character in file paths and in command lines
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
arguments "NDK_APP_SHORT_COMMANDS=true"
}
}
}
if (!enableSeparateBuildPerCPUArchitecture) {
ndk {
abiFilters (*reactNativeArchitectures())
}
}
}
}
if (isNewArchitectureEnabled()) {
// We configure the NDK build only if you decide to opt-in for the New Architecture.
externalNativeBuild {
ndkBuild {
path "$projectDir/src/main/jni/Android.mk"
}
}
def reactAndroidProjectDir = project(':ReactAndroid').projectDir
def packageReactNdkDebugLibs = tasks.register("packageReactNdkDebugLibs", Copy) {
dependsOn(":ReactAndroid:packageReactNdkDebugLibsForBuck")
from("$reactAndroidProjectDir/src/main/jni/prebuilt/lib")
into("$buildDir/react-ndk/exported")
}
def packageReactNdkReleaseLibs = tasks.register("packageReactNdkReleaseLibs", Copy) {
dependsOn(":ReactAndroid:packageReactNdkReleaseLibsForBuck")
from("$reactAndroidProjectDir/src/main/jni/prebuilt/lib")
into("$buildDir/react-ndk/exported")
}
afterEvaluate {
// If you wish to add a custom TurboModule or component locally,
// you should uncomment this line.
// preBuild.dependsOn("generateCodegenArtifactsFromSchema")
preDebugBuild.dependsOn(packageReactNdkDebugLibs)
preReleaseBuild.dependsOn(packageReactNdkReleaseLibs)
// Due to a bug inside AGP, we have to explicitly set a dependency
// between configureNdkBuild* tasks and the preBuild tasks.
// This can be removed once this is solved: https://issuetracker.google.com/issues/207403732
configureNdkBuildRelease.dependsOn(preReleaseBuild)
configureNdkBuildDebug.dependsOn(preDebugBuild)
reactNativeArchitectures().each { architecture ->
tasks.findByName("configureNdkBuildDebug[${architecture}]")?.configure {
dependsOn("preDebugBuild")
}
tasks.findByName("configureNdkBuildRelease[${architecture}]")?.configure {
dependsOn("preReleaseBuild")
}
}
}
} }
signingConfigs { signingConfigs {
@ -170,17 +243,20 @@ android {
reset() reset()
enable enableSeparateBuildPerCPUArchitecture enable enableSeparateBuildPerCPUArchitecture
universalApk false // If true, also generate a universal APK universalApk false // If true, also generate a universal APK
include "armeabi-v7a", "x86", "arm64-v8a", "x86_64" include (*reactNativeArchitectures())
} }
} }
buildTypes { buildTypes {
release { release {
minifyEnabled enableProguardInReleaseBuilds minifyEnabled enableProguardInReleaseBuilds
setProguardFiles([getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro']) setProguardFiles([getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'])
proguardFile "${rootProject.projectDir}/../node_modules/detox/android/detox/proguard-rules-app.pro"
signingConfig signingConfigs.release signingConfig signingConfigs.release
if (!isFoss) { if (!isFoss) {
firebaseCrashlytics { firebaseCrashlytics {
nativeSymbolUploadEnabled true nativeSymbolUploadEnabled true
strippedNativeLibsDir 'build/intermediates/stripped_native_libs/release/out/lib'
unstrippedNativeLibsDir 'build/intermediates/merged_native_libs/release/out/lib'
} }
} }
} }
@ -193,6 +269,11 @@ android {
// pickFirst '**/x86_64/libc++_shared.so' // pickFirst '**/x86_64/libc++_shared.so'
// } // }
// FIXME: Remove when we update RN
packagingOptions {
pickFirst '**/*.so'
}
// applicationVariants are e.g. debug, release // applicationVariants are e.g. debug, release
flavorDimensions "app", "type" flavorDimensions "app", "type"
@ -205,10 +286,6 @@ android {
dimension = "app" dimension = "app"
buildConfigField "boolean", "IS_OFFICIAL", "false" buildConfigField "boolean", "IS_OFFICIAL", "false"
} }
e2e {
dimension = "app"
buildConfigField "boolean", "IS_OFFICIAL", "false"
}
foss { foss {
dimension = "type" dimension = "type"
buildConfigField "boolean", "FDROID_BUILD", "true" buildConfigField "boolean", "FDROID_BUILD", "true"
@ -236,16 +313,6 @@ android {
java.srcDirs = ['src/main/java', 'src/play/java'] java.srcDirs = ['src/main/java', 'src/play/java']
manifest.srcFile 'src/play/AndroidManifest.xml' manifest.srcFile 'src/play/AndroidManifest.xml'
} }
e2ePlayDebug {
java.srcDirs = ['src/main/java', 'src/play/java']
res.srcDirs = ['src/experimental/res']
manifest.srcFile 'src/play/AndroidManifest.xml'
}
e2ePlayRelease {
java.srcDirs = ['src/main/java', 'src/play/java']
res.srcDirs = ['src/experimental/res']
manifest.srcFile 'src/play/AndroidManifest.xml'
}
} }
applicationVariants.all { variant -> applicationVariants.all { variant ->
@ -275,22 +342,24 @@ android {
} }
dependencies { dependencies {
addUnimodulesDependencies()
implementation project(':@react-native-community_viewpager') implementation project(':@react-native-community_viewpager')
playImplementation project(':reactnativenotifications') implementation "androidx.core:core-splashscreen:1.0.0"
playImplementation project(':react-native-notifications')
playImplementation 'com.google.firebase:firebase-core:16.0.0'
playImplementation project(':@react-native-firebase_app') playImplementation project(':@react-native-firebase_app')
playImplementation project(':@react-native-firebase_analytics') playImplementation project(':@react-native-firebase_analytics')
playImplementation project(':@react-native-firebase_crashlytics') playImplementation project(':@react-native-firebase_crashlytics')
implementation fileTree(dir: "libs", include: ["*.jar"]) implementation fileTree(dir: "libs", include: ["*.jar"])
//noinspection GradleDynamicVersion //noinspection GradleDynamicVersion
implementation "com.facebook.react:react-native:+" // From node_modules implementation "com.facebook.react:react-native:+" // From node_modules
playImplementation "com.google.firebase:firebase-messaging:18.0.0"
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0" implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"
debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") { debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
exclude group:'com.facebook.fbjni' exclude group:'com.facebook.fbjni'
} }
debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") { debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {
exclude group:'com.facebook.flipper' exclude group:'com.facebook.flipper'
exclude group:'com.squareup.okhttp3', module:'okhttp'
} }
debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") { debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") {
exclude group:'com.facebook.flipper' exclude group:'com.facebook.flipper'
@ -304,20 +373,31 @@ dependencies {
implementation jscFlavor implementation jscFlavor
} }
implementation "com.google.code.gson:gson:2.8.5" implementation "com.google.code.gson:gson:2.8.9"
implementation "com.github.bumptech.glide:glide:4.9.0" implementation "com.github.bumptech.glide:glide:4.9.0"
annotationProcessor "com.github.bumptech.glide:compiler:4.9.0" annotationProcessor "com.github.bumptech.glide:compiler:4.9.0"
implementation "com.tencent:mmkv-static:1.2.1" implementation "com.tencent:mmkv-static:1.2.10"
implementation 'com.squareup.okhttp3:okhttp:4.9.0' androidTestImplementation('com.wix:detox:+')
implementation "com.squareup.okhttp3:okhttp-urlconnection:4.9.0" implementation 'androidx.appcompat:appcompat:1.1.0'
androidTestImplementation('com.wix:detox:+') { transitive = true } implementation 'com.facebook.soloader:soloader:0.10.4'
androidTestImplementation 'junit:junit:4.12' }
if (isNewArchitectureEnabled()) {
// If new architecture is enabled, we let you build RN from source
// Otherwise we fallback to a prebuilt .aar bundled in the NPM package.
// This will be applied to all the imported transtitive dependency.
configurations.all {
resolutionStrategy.dependencySubstitution {
substitute(module("com.facebook.react:react-native"))
.using(project(":ReactAndroid")).because("On New Architecture we're building React Native from source")
}
}
} }
// Run this once to be able to run the application with BUCK // Run this once to be able to run the application with BUCK
// puts all compile dependencies into folder libs for BUCK to use // puts all compile dependencies into folder libs for BUCK to use
task copyDownloadableDepsToLibs(type: Copy) { task copyDownloadableDepsToLibs(type: Copy) {
from configurations.compile from configurations.implementation
into 'libs' into 'libs'
} }
@ -325,3 +405,11 @@ apply from: file("../../node_modules/@react-native-community/cli-platform-androi
if (!isFoss) { if (!isFoss) {
apply plugin: 'com.google.gms.google-services' apply plugin: 'com.google.gms.google-services'
} }
def isNewArchitectureEnabled() {
// To opt-in for the New Architecture, you can either:
// - Set `newArchEnabled` to true inside the `gradle.properties` file
// - Invoke gradle with `-newArchEnabled=true`
// - Set an environment variable `ORG_GRADLE_PROJECT_newArchEnabled=true`
return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true"
}

View File

@ -18,7 +18,7 @@ public class DetoxTest {
@Rule @Rule
// Replace 'MainActivity' with the value of android:name entry in // Replace 'MainActivity' with the value of android:name entry in
// <activity> in AndroidManifest.xml // <activity> in AndroidManifest.xml
public ActivityTestRule<MainActivity> mActivityRule = new ActivityTestRule<>(MainActivity.class, false, false); public ActivityTestRule<chat.rocket.reactnative.MainActivity> mActivityRule = new ActivityTestRule<>(chat.rocket.reactnative.MainActivity.class, false, false);
@Test @Test
public void runDetoxTests() { public void runDetoxTests() {

View File

@ -8,7 +8,7 @@
tools:replace="android:name" tools:replace="android:name"
tools:targetApi="28" tools:targetApi="28"
android:networkSecurityConfig="@xml/network_security_config"> android:networkSecurityConfig="@xml/network_security_config">
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity" /> <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" android:exported="true" />
</application> </application>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

View File

@ -1,25 +0,0 @@
package chat.rocket.reactnative;
import android.content.Context;
import com.facebook.react.ReactInstanceManager;
public class MainDebugApplication extends MainApplication {
@Override
public void onCreate() {
super.onCreate();
initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
}
/**
* Loads Flipper in React Native templates. Call this in the onCreate method with something like
* initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
*
* @param context
* @param reactInstanceManager
*/
private static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) {
ReactNativeFlipper.initializeFlipper(context, reactInstanceManager);
}
}

View File

@ -18,6 +18,7 @@ import com.facebook.flipper.plugins.network.FlipperOkhttpInterceptor;
import com.facebook.flipper.plugins.network.NetworkFlipperPlugin; import com.facebook.flipper.plugins.network.NetworkFlipperPlugin;
import com.facebook.flipper.plugins.react.ReactFlipperPlugin; import com.facebook.flipper.plugins.react.ReactFlipperPlugin;
import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin; import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin;
import com.facebook.react.ReactInstanceEventListener;
import com.facebook.react.ReactInstanceManager; import com.facebook.react.ReactInstanceManager;
import com.facebook.react.bridge.ReactContext; import com.facebook.react.bridge.ReactContext;
import com.facebook.react.modules.network.NetworkingModule; import com.facebook.react.modules.network.NetworkingModule;
@ -47,7 +48,7 @@ public class ReactNativeFlipper {
ReactContext reactContext = reactInstanceManager.getCurrentReactContext(); ReactContext reactContext = reactInstanceManager.getCurrentReactContext();
if (reactContext == null) { if (reactContext == null) {
reactInstanceManager.addReactInstanceEventListener( reactInstanceManager.addReactInstanceEventListener(
new ReactInstanceManager.ReactInstanceEventListener() { new ReactInstanceEventListener() {
@Override @Override
public void onReactContextInitialized(ReactContext reactContext) { public void onReactContextInitialized(ReactContext reactContext) {
reactInstanceManager.removeReactInstanceEventListener(this); reactInstanceManager.removeReactInstanceEventListener(this);

View File

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<network-security-config xmlns:tools="http://schemas.android.com/tools">
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system" />
<certificates src="user"
tools:ignore="AcceptsUserCertificates" />
</trust-anchors>
</base-config>
</network-security-config>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

View File

@ -5,6 +5,15 @@
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.VIDEO_CAPTURE" />
<uses-permission android:name="android.permission.AUDIO_CAPTURE" />
<!-- permissions related to jitsi call -->
<uses-permission android:name="android.permission.BLUETOOTH" />
<application <application
android:name="chat.rocket.reactnative.MainApplication" android:name="chat.rocket.reactnative.MainApplication"
android:allowBackup="false" android:allowBackup="false"
@ -13,19 +22,12 @@
android:networkSecurityConfig="@xml/network_security_config" android:networkSecurityConfig="@xml/network_security_config"
android:requestLegacyExternalStorage="true" android:requestLegacyExternalStorage="true"
android:supportsRtl="true" android:supportsRtl="true"
android:theme="@style/AppTheme" android:theme="@style/BootTheme"
android:hardwareAccelerated="true"
tools:replace="android:allowBackup"> tools:replace="android:allowBackup">
<activity
android:name="com.zoontek.rnbootsplash.RNBootSplashActivity"
android:theme="@style/BootTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity <activity
android:name="chat.rocket.reactnative.MainActivity" android:name="chat.rocket.reactnative.MainActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|screenSize|smallestScreenSize|uiMode"
android:exported="true" android:exported="true"
android:label="@string/app_name" android:label="@string/app_name"
android:launchMode="singleTask" android:launchMode="singleTask"
@ -55,6 +57,10 @@
android:host="jitsi.rocket.chat" android:host="jitsi.rocket.chat"
android:scheme="rocketchat" /> android:scheme="rocketchat" />
</intent-filter> </intent-filter>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity> </activity>
<activity <activity
android:name="chat.rocket.reactnative.share.ShareActivity" android:name="chat.rocket.reactnative.share.ShareActivity"
@ -62,7 +68,8 @@
android:label="@string/share_extension_name" android:label="@string/share_extension_name"
android:noHistory="true" android:noHistory="true"
android:screenOrientation="portrait" android:screenOrientation="portrait"
android:theme="@style/AppTheme"> android:theme="@style/ShareTheme"
android:exported="true">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.SEND" /> <action android:name="android.intent.action.SEND" />
<action android:name="android.intent.action.SEND_MULTIPLE" /> <action android:name="android.intent.action.SEND_MULTIPLE" />
@ -72,5 +79,10 @@
</intent-filter> </intent-filter>
</activity> </activity>
</application> </application>
<queries>
<package android:name="org.jitsi.meet" />
<intent>
<action android:name="android.intent.action.SEND" />
</intent>
</queries>
</manifest> </manifest>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,40 +1,23 @@
package chat.rocket.reactnative; package chat.rocket.reactnative;
import android.os.Bundle;
import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.res.Configuration; import android.content.res.Configuration;
import android.content.SharedPreferences; import android.os.Bundle;
import com.facebook.react.bridge.Arguments; import com.facebook.react.ReactActivity;
import com.facebook.react.bridge.WritableMap;
import com.facebook.react.ReactRootView;
import com.facebook.react.ReactActivityDelegate; import com.facebook.react.ReactActivityDelegate;
import com.facebook.react.ReactFragmentActivity; import com.facebook.react.ReactRootView;
import com.swmansion.gesturehandler.react.RNGestureHandlerEnabledRootView;
import com.zoontek.rnbootsplash.RNBootSplash; import com.zoontek.rnbootsplash.RNBootSplash;
import com.google.gson.Gson;
class ThemePreferences { import expo.modules.ReactActivityDelegateWrapper;
String currentTheme;
String darkLevel;
}
class SortPreferences { public class MainActivity extends ReactActivity {
String sortBy;
Boolean groupByType;
Boolean showFavorites;
Boolean showUnread;
}
public class MainActivity extends ReactFragmentActivity {
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
RNBootSplash.init(this);
// https://github.com/software-mansion/react-native-screens/issues/17#issuecomment-424704067 // https://github.com/software-mansion/react-native-screens/issues/17#issuecomment-424704067
super.onCreate(null); super.onCreate(null);
RNBootSplash.init(R.drawable.launch_screen, MainActivity.this);
} }
@Override @Override
@ -51,16 +34,6 @@ public class MainActivity extends ReactFragmentActivity {
return "RocketChatRN"; return "RocketChatRN";
} }
@Override
protected ReactActivityDelegate createReactActivityDelegate() {
return new ReactActivityDelegate(this, getMainComponentName()) {
@Override
protected ReactRootView createRootView() {
return new RNGestureHandlerEnabledRootView(MainActivity.this);
}
};
}
// from react-native-orientation // from react-native-orientation
@Override @Override
public void onConfigurationChanged(Configuration newConfig) { public void onConfigurationChanged(Configuration newConfig) {
@ -69,5 +42,27 @@ public class MainActivity extends ReactFragmentActivity {
intent.putExtra("newConfig", newConfig); intent.putExtra("newConfig", newConfig);
this.sendBroadcast(intent); this.sendBroadcast(intent);
} }
/**
* Returns the instance of the {@link ReactActivityDelegate}. There the RootView is created and
* you can specify the rendered you wish to use (Fabric or the older renderer).
*/
@Override
protected ReactActivityDelegate createReactActivityDelegate() {
return new ReactActivityDelegateWrapper(this, new MainActivityDelegate(this, getMainComponentName()));
} }
public static class MainActivityDelegate extends ReactActivityDelegate {
public MainActivityDelegate(ReactActivity activity, String mainComponentName) {
super(activity, mainComponentName);
}
@Override
protected ReactRootView createRootView() {
ReactRootView reactRootView = new ReactRootView(getContext());
// If you opted-in for the New Architecture, we enable the Fabric Renderer.
reactRootView.setIsFabric(BuildConfig.IS_NEW_ARCHITECTURE_ENABLED);
return reactRootView;
}
}
}

View File

@ -8,25 +8,27 @@ import com.facebook.react.PackageList;
import com.facebook.react.ReactApplication; import com.facebook.react.ReactApplication;
import com.facebook.react.ReactNativeHost; import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage; import com.facebook.react.ReactPackage;
import com.facebook.react.config.ReactFeatureFlags;
import com.facebook.react.ReactInstanceManager;
import com.facebook.soloader.SoLoader; import com.facebook.soloader.SoLoader;
import com.reactnativecommunity.viewpager.RNCViewPagerPackage; import com.reactnativecommunity.viewpager.RNCViewPagerPackage;
import com.facebook.react.bridge.JSIModulePackage; import com.facebook.react.bridge.JSIModulePackage;
import com.swmansion.reanimated.ReanimatedJSIModulePackage; import com.swmansion.reanimated.ReanimatedJSIModulePackage;
import android.content.Context;
import org.unimodules.adapters.react.ModuleRegistryAdapter; import android.content.res.Configuration;
import org.unimodules.adapters.react.ReactModuleRegistryProvider; import expo.modules.ApplicationLifecycleDispatcher;
import expo.modules.ReactNativeHostWrapper;
import java.lang.reflect.InvocationTargetException;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import chat.rocket.reactnative.generated.BasePackageList; import chat.rocket.reactnative.newarchitecture.MainApplicationReactNativeHost;
import chat.rocket.reactnative.networking.SSLPinningPackage; import chat.rocket.reactnative.networking.SSLPinningPackage;
public class MainApplication extends Application implements ReactApplication { public class MainApplication extends Application implements ReactApplication {
private final ReactModuleRegistryProvider mModuleRegistryProvider = new ReactModuleRegistryProvider(new BasePackageList().getPackageList(), null); private final ReactNativeHost mReactNativeHost = new ReactNativeHostWrapper(this, new ReactNativeHost(this) {
private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
@Override @Override
public boolean getUseDeveloperSupport() { public boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG; return BuildConfig.DEBUG;
@ -38,10 +40,6 @@ public class MainApplication extends Application implements ReactApplication {
List<ReactPackage> packages = new PackageList(this).getPackages(); List<ReactPackage> packages = new PackageList(this).getPackages();
packages.add(new RNCViewPagerPackage()); packages.add(new RNCViewPagerPackage());
packages.add(new SSLPinningPackage()); packages.add(new SSLPinningPackage());
List<ReactPackage> unimodules = Arrays.<ReactPackage>asList(
new ModuleRegistryAdapter(mModuleRegistryProvider)
);
packages.addAll(unimodules);
List<ReactPackage> additionalModules = new AdditionalModules().getAdditionalModules(MainApplication.this); List<ReactPackage> additionalModules = new AdditionalModules().getAdditionalModules(MainApplication.this);
packages.addAll(additionalModules); packages.addAll(additionalModules);
return packages; return packages;
@ -54,23 +52,71 @@ public class MainApplication extends Application implements ReactApplication {
@Override @Override
protected JSIModulePackage getJSIModulePackage() { protected JSIModulePackage getJSIModulePackage() {
return new ReanimatedJSIModulePackage(); // <- add return new ReanimatedJSIModulePackage();
} }
@Override @Override
protected @Nullable String getBundleAssetName() { protected @Nullable String getBundleAssetName() {
return "app.bundle"; return "app.bundle";
} }
}; });
private final ReactNativeHost mNewArchitectureNativeHost =
new ReactNativeHostWrapper(this, new MainApplicationReactNativeHost(this));
@Override @Override
public ReactNativeHost getReactNativeHost() { public ReactNativeHost getReactNativeHost() {
if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {
return mNewArchitectureNativeHost;
} else {
return mReactNativeHost; return mReactNativeHost;
} }
}
@Override @Override
public void onCreate() { public void onCreate() {
super.onCreate(); super.onCreate();
// If you opted-in for the New Architecture, we enable the TurboModule system
ReactFeatureFlags.useTurboModules = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;
SoLoader.init(this, /* native exopackage */ false); SoLoader.init(this, /* native exopackage */ false);
initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
ApplicationLifecycleDispatcher.onApplicationCreate(this);
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig);
}
/**
* Loads Flipper in React Native templates. Call this in the onCreate method with something like
* initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
*
* @param context
* @param reactInstanceManager
*/
private static void initializeFlipper(
Context context, ReactInstanceManager reactInstanceManager) {
if (BuildConfig.DEBUG) {
try {
/*
We use reflection here to pick up the class that initializes Flipper,
since Flipper library is not available in release mode
*/
Class<?> aClass = Class.forName("chat.rocket.reactnative.ReactNativeFlipper");
aClass
.getMethod("initializeFlipper", Context.class, ReactInstanceManager.class)
.invoke(null, context, reactInstanceManager);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
} }
} }

View File

@ -1,21 +0,0 @@
package chat.rocket.reactnative.generated;
import java.util.Arrays;
import java.util.List;
import org.unimodules.core.interfaces.Package;
public class BasePackageList {
public List<Package> getPackageList() {
return Arrays.<Package>asList(
new expo.modules.av.AVPackage(),
new expo.modules.constants.ConstantsPackage(),
new expo.modules.filesystem.FileSystemPackage(),
new expo.modules.haptics.HapticsPackage(),
new expo.modules.imageloader.ImageLoaderPackage(),
new expo.modules.keepawake.KeepAwakePackage(),
new expo.modules.localauthentication.LocalAuthenticationPackage(),
new expo.modules.videothumbnails.VideoThumbnailsPackage(),
new expo.modules.webbrowser.WebBrowserPackage()
);
}
}

View File

@ -0,0 +1,116 @@
package chat.rocket.reactnative.newarchitecture;
import android.app.Application;
import androidx.annotation.NonNull;
import com.facebook.react.PackageList;
import com.facebook.react.ReactInstanceManager;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.react.ReactPackageTurboModuleManagerDelegate;
import com.facebook.react.bridge.JSIModulePackage;
import com.facebook.react.bridge.JSIModuleProvider;
import com.facebook.react.bridge.JSIModuleSpec;
import com.facebook.react.bridge.JSIModuleType;
import com.facebook.react.bridge.JavaScriptContextHolder;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.UIManager;
import com.facebook.react.fabric.ComponentFactory;
import com.facebook.react.fabric.CoreComponentsRegistry;
import com.facebook.react.fabric.EmptyReactNativeConfig;
import com.facebook.react.fabric.FabricJSIModuleProvider;
import com.facebook.react.uimanager.ViewManagerRegistry;
import chat.rocket.reactnative.BuildConfig;
import chat.rocket.reactnative.newarchitecture.components.MainComponentsRegistry;
import chat.rocket.reactnative.newarchitecture.modules.MainApplicationTurboModuleManagerDelegate;
import java.util.ArrayList;
import java.util.List;
/**
* A {@link ReactNativeHost} that helps you load everything needed for the New Architecture, both
* TurboModule delegates and the Fabric Renderer.
*
* <p>Please note that this class is used ONLY if you opt-in for the New Architecture (see the
* `newArchEnabled` property). Is ignored otherwise.
*/
public class MainApplicationReactNativeHost extends ReactNativeHost {
public MainApplicationReactNativeHost(Application application) {
super(application);
}
@Override
public boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected List<ReactPackage> getPackages() {
List<ReactPackage> packages = new PackageList(this).getPackages();
// Packages that cannot be autolinked yet can be added manually here, for example:
// packages.add(new MyReactNativePackage());
// TurboModules must also be loaded here providing a valid TurboReactPackage implementation:
// packages.add(new TurboReactPackage() { ... });
// If you have custom Fabric Components, their ViewManagers should also be loaded here
// inside a ReactPackage.
return packages;
}
@Override
protected String getJSMainModuleName() {
return "index";
}
@NonNull
@Override
protected ReactPackageTurboModuleManagerDelegate.Builder
getReactPackageTurboModuleManagerDelegateBuilder() {
// Here we provide the ReactPackageTurboModuleManagerDelegate Builder. This is necessary
// for the new architecture and to use TurboModules correctly.
return new MainApplicationTurboModuleManagerDelegate.Builder();
}
@Override
protected JSIModulePackage getJSIModulePackage() {
return new JSIModulePackage() {
@Override
public List<JSIModuleSpec> getJSIModules(
final ReactApplicationContext reactApplicationContext,
final JavaScriptContextHolder jsContext) {
final List<JSIModuleSpec> specs = new ArrayList<>();
// Here we provide a new JSIModuleSpec that will be responsible of providing the
// custom Fabric Components.
specs.add(
new JSIModuleSpec() {
@Override
public JSIModuleType getJSIModuleType() {
return JSIModuleType.UIManager;
}
@Override
public JSIModuleProvider<UIManager> getJSIModuleProvider() {
final ComponentFactory componentFactory = new ComponentFactory();
CoreComponentsRegistry.register(componentFactory);
// Here we register a Components Registry.
// The one that is generated with the template contains no components
// and just provides you the one from React Native core.
MainComponentsRegistry.register(componentFactory);
final ReactInstanceManager reactInstanceManager = getReactInstanceManager();
ViewManagerRegistry viewManagerRegistry =
new ViewManagerRegistry(
reactInstanceManager.getOrCreateViewManagers(reactApplicationContext));
return new FabricJSIModuleProvider(
reactApplicationContext,
componentFactory,
new EmptyReactNativeConfig(),
viewManagerRegistry);
}
});
return specs;
}
};
}
}

View File

@ -0,0 +1,36 @@
package chat.rocket.reactnative.newarchitecture.components;
import com.facebook.jni.HybridData;
import com.facebook.proguard.annotations.DoNotStrip;
import com.facebook.react.fabric.ComponentFactory;
import com.facebook.soloader.SoLoader;
/**
* Class responsible to load the custom Fabric Components. This class has native methods and needs a
* corresponding C++ implementation/header file to work correctly (already placed inside the jni/
* folder for you).
*
* <p>Please note that this class is used ONLY if you opt-in for the New Architecture (see the
* `newArchEnabled` property). Is ignored otherwise.
*/
@DoNotStrip
public class MainComponentsRegistry {
static {
SoLoader.loadLibrary("fabricjni");
}
@DoNotStrip private final HybridData mHybridData;
@DoNotStrip
private native HybridData initHybrid(ComponentFactory componentFactory);
@DoNotStrip
private MainComponentsRegistry(ComponentFactory componentFactory) {
mHybridData = initHybrid(componentFactory);
}
@DoNotStrip
public static MainComponentsRegistry register(ComponentFactory componentFactory) {
return new MainComponentsRegistry(componentFactory);
}
}

View File

@ -0,0 +1,48 @@
package chat.rocket.reactnative.newarchitecture.modules;
import com.facebook.jni.HybridData;
import com.facebook.react.ReactPackage;
import com.facebook.react.ReactPackageTurboModuleManagerDelegate;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.soloader.SoLoader;
import java.util.List;
/**
* Class responsible to load the TurboModules. This class has native methods and needs a
* corresponding C++ implementation/header file to work correctly (already placed inside the jni/
* folder for you).
*
* <p>Please note that this class is used ONLY if you opt-in for the New Architecture (see the
* `newArchEnabled` property). Is ignored otherwise.
*/
public class MainApplicationTurboModuleManagerDelegate
extends ReactPackageTurboModuleManagerDelegate {
private static volatile boolean sIsSoLibraryLoaded;
protected MainApplicationTurboModuleManagerDelegate(
ReactApplicationContext reactApplicationContext, List<ReactPackage> packages) {
super(reactApplicationContext, packages);
}
protected native HybridData initHybrid();
native boolean canCreateTurboModule(String moduleName);
public static class Builder extends ReactPackageTurboModuleManagerDelegate.Builder {
protected MainApplicationTurboModuleManagerDelegate build(
ReactApplicationContext context, List<ReactPackage> packages) {
return new MainApplicationTurboModuleManagerDelegate(context, packages);
}
}
@Override
protected synchronized void maybeLoadOtherSoLibraries() {
if (!sIsSoLibraryLoaded) {
// If you change the name of your application .so file in the Android.mk file,
// make sure you update the name here as well.
SoLoader.loadLibrary("rocketchat_appmodules");
sIsSoLibraryLoaded = true;
}
}
}

View File

@ -1,23 +1,10 @@
package chat.rocket.reactnative.share; package chat.rocket.reactnative.share;
import com.facebook.react.ReactActivity; import com.facebook.react.ReactActivity;
import com.facebook.react.ReactActivityDelegate;
import com.facebook.react.ReactRootView;
import com.swmansion.gesturehandler.react.RNGestureHandlerEnabledRootView;
public class ShareActivity extends ReactActivity { public class ShareActivity extends ReactActivity {
@Override @Override
protected String getMainComponentName() { protected String getMainComponentName() {
return "ShareRocketChatRN"; return "ShareRocketChatRN";
} }
@Override
protected ReactActivityDelegate createReactActivityDelegate() {
return new ReactActivityDelegate(this, getMainComponentName()) {
@Override
protected ReactRootView createRootView() {
return new RNGestureHandlerEnabledRootView(ShareActivity.this);
}
};
}
} }

View File

@ -0,0 +1,49 @@
THIS_DIR := $(call my-dir)
include $(REACT_ANDROID_DIR)/Android-prebuilt.mk
# If you wish to add a custom TurboModule or Fabric component in your app you
# will have to include the following autogenerated makefile.
# include $(GENERATED_SRC_DIR)/codegen/jni/Android.mk
include $(CLEAR_VARS)
LOCAL_PATH := $(THIS_DIR)
# You can customize the name of your application .so file here.
LOCAL_MODULE := rocketchat_appmodules
LOCAL_C_INCLUDES := $(LOCAL_PATH)
LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp)
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)
# If you wish to add a custom TurboModule or Fabric component in your app you
# will have to uncomment those lines to include the generated source
# files from the codegen (placed in $(GENERATED_SRC_DIR)/codegen/jni)
#
# LOCAL_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni
# LOCAL_SRC_FILES += $(wildcard $(GENERATED_SRC_DIR)/codegen/jni/*.cpp)
# LOCAL_EXPORT_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni
# Here you should add any native library you wish to depend on.
LOCAL_SHARED_LIBRARIES := \
libfabricjni \
libfbjni \
libfolly_futures \
libfolly_json \
libglog \
libjsi \
libreact_codegen_rncore \
libreact_debug \
libreact_nativemodule_core \
libreact_render_componentregistry \
libreact_render_core \
libreact_render_debug \
libreact_render_graphics \
librrc_view \
libruntimeexecutor \
libturbomodulejsijni \
libyoga
LOCAL_CFLAGS := -DLOG_TAG=\"ReactNative\" -fexceptions -frtti -std=c++17 -Wall
include $(BUILD_SHARED_LIBRARY)

View File

@ -0,0 +1,24 @@
#include "MainApplicationModuleProvider.h"
#include <rncore.h>
namespace facebook {
namespace react {
std::shared_ptr<TurboModule> MainApplicationModuleProvider(
const std::string moduleName,
const JavaTurboModule::InitParams &params) {
// Here you can provide your own module provider for TurboModules coming from
// either your application or from external libraries. The approach to follow
// is similar to the following (for a library called `samplelibrary`:
//
// auto module = samplelibrary_ModuleProvider(moduleName, params);
// if (module != nullptr) {
// return module;
// }
// return rncore_ModuleProvider(moduleName, params);
return rncore_ModuleProvider(moduleName, params);
}
} // namespace react
} // namespace facebook

View File

@ -0,0 +1,16 @@
#pragma once
#include <memory>
#include <string>
#include <ReactCommon/JavaTurboModule.h>
namespace facebook {
namespace react {
std::shared_ptr<TurboModule> MainApplicationModuleProvider(
const std::string moduleName,
const JavaTurboModule::InitParams &params);
} // namespace react
} // namespace facebook

View File

@ -0,0 +1,45 @@
#include "MainApplicationTurboModuleManagerDelegate.h"
#include "MainApplicationModuleProvider.h"
namespace facebook {
namespace react {
jni::local_ref<MainApplicationTurboModuleManagerDelegate::jhybriddata>
MainApplicationTurboModuleManagerDelegate::initHybrid(
jni::alias_ref<jhybridobject>) {
return makeCxxInstance();
}
void MainApplicationTurboModuleManagerDelegate::registerNatives() {
registerHybrid({
makeNativeMethod(
"initHybrid", MainApplicationTurboModuleManagerDelegate::initHybrid),
makeNativeMethod(
"canCreateTurboModule",
MainApplicationTurboModuleManagerDelegate::canCreateTurboModule),
});
}
std::shared_ptr<TurboModule>
MainApplicationTurboModuleManagerDelegate::getTurboModule(
const std::string name,
const std::shared_ptr<CallInvoker> jsInvoker) {
// Not implemented yet: provide pure-C++ NativeModules here.
return nullptr;
}
std::shared_ptr<TurboModule>
MainApplicationTurboModuleManagerDelegate::getTurboModule(
const std::string name,
const JavaTurboModule::InitParams &params) {
return MainApplicationModuleProvider(name, params);
}
bool MainApplicationTurboModuleManagerDelegate::canCreateTurboModule(
std::string name) {
return getTurboModule(name, nullptr) != nullptr ||
getTurboModule(name, {.moduleName = name}) != nullptr;
}
} // namespace react
} // namespace facebook

View File

@ -0,0 +1,38 @@
#include <memory>
#include <string>
#include <ReactCommon/TurboModuleManagerDelegate.h>
#include <fbjni/fbjni.h>
namespace facebook {
namespace react {
class MainApplicationTurboModuleManagerDelegate
: public jni::HybridClass<
MainApplicationTurboModuleManagerDelegate,
TurboModuleManagerDelegate> {
public:
// Adapt it to the package you used for your Java class.
static constexpr auto kJavaDescriptor =
"Lchat/rocket/reactnative/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate;";
static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject>);
static void registerNatives();
std::shared_ptr<TurboModule> getTurboModule(
const std::string name,
const std::shared_ptr<CallInvoker> jsInvoker) override;
std::shared_ptr<TurboModule> getTurboModule(
const std::string name,
const JavaTurboModule::InitParams &params) override;
/**
* Test-only method. Allows user to verify whether a TurboModule can be
* created by instances of this class.
*/
bool canCreateTurboModule(std::string name);
};
} // namespace react
} // namespace facebook

View File

@ -0,0 +1,61 @@
#include "MainComponentsRegistry.h"
#include <CoreComponentsRegistry.h>
#include <fbjni/fbjni.h>
#include <react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h>
#include <react/renderer/components/rncore/ComponentDescriptors.h>
namespace facebook {
namespace react {
MainComponentsRegistry::MainComponentsRegistry(ComponentFactory *delegate) {}
std::shared_ptr<ComponentDescriptorProviderRegistry const>
MainComponentsRegistry::sharedProviderRegistry() {
auto providerRegistry = CoreComponentsRegistry::sharedProviderRegistry();
// Custom Fabric Components go here. You can register custom
// components coming from your App or from 3rd party libraries here.
//
// providerRegistry->add(concreteComponentDescriptorProvider<
// AocViewerComponentDescriptor>());
return providerRegistry;
}
jni::local_ref<MainComponentsRegistry::jhybriddata>
MainComponentsRegistry::initHybrid(
jni::alias_ref<jclass>,
ComponentFactory *delegate) {
auto instance = makeCxxInstance(delegate);
auto buildRegistryFunction =
[](EventDispatcher::Weak const &eventDispatcher,
ContextContainer::Shared const &contextContainer)
-> ComponentDescriptorRegistry::Shared {
auto registry = MainComponentsRegistry::sharedProviderRegistry()
->createComponentDescriptorRegistry(
{eventDispatcher, contextContainer});
auto mutableRegistry =
std::const_pointer_cast<ComponentDescriptorRegistry>(registry);
mutableRegistry->setFallbackComponentDescriptor(
std::make_shared<UnimplementedNativeViewComponentDescriptor>(
ComponentDescriptorParameters{
eventDispatcher, contextContainer, nullptr}));
return registry;
};
delegate->buildRegistryFunction = buildRegistryFunction;
return instance;
}
void MainComponentsRegistry::registerNatives() {
registerHybrid({
makeNativeMethod("initHybrid", MainComponentsRegistry::initHybrid),
});
}
} // namespace react
} // namespace facebook

View File

@ -0,0 +1,32 @@
#pragma once
#include <ComponentFactory.h>
#include <fbjni/fbjni.h>
#include <react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h>
#include <react/renderer/componentregistry/ComponentDescriptorRegistry.h>
namespace facebook {
namespace react {
class MainComponentsRegistry
: public facebook::jni::HybridClass<MainComponentsRegistry> {
public:
// Adapt it to the package you used for your Java class.
constexpr static auto kJavaDescriptor =
"Lchat/rocket/reactnative/newarchitecture/components/MainComponentsRegistry;";
static void registerNatives();
MainComponentsRegistry(ComponentFactory *delegate);
private:
static std::shared_ptr<ComponentDescriptorProviderRegistry const>
sharedProviderRegistry();
static jni::local_ref<jhybriddata> initHybrid(
jni::alias_ref<jclass>,
ComponentFactory *delegate);
};
} // namespace react
} // namespace facebook

View File

@ -0,0 +1,11 @@
#include <fbjni/fbjni.h>
#include "MainApplicationTurboModuleManagerDelegate.h"
#include "MainComponentsRegistry.h"
JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) {
return facebook::jni::initialize(vm, [] {
facebook::react::MainApplicationTurboModuleManagerDelegate::
registerNatives();
facebook::react::MainComponentsRegistry::registerNatives();
});
}

View File

@ -1,12 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:opacity="opaque">
<!-- the background color. it can be a system color or a custom one defined in colors.xml -->
<item android:drawable="@color/splashBackground" />
<item>
<!-- the app logo, centered horizontally and vertically -->
<bitmap
android:src="@drawable/splash"
android:gravity="center" />
</item>
</layer-list>

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2014 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:insetLeft="@dimen/abc_edit_text_inset_horizontal_material"
android:insetRight="@dimen/abc_edit_text_inset_horizontal_material"
android:insetTop="@dimen/abc_edit_text_inset_top_material"
android:insetBottom="@dimen/abc_edit_text_inset_bottom_material">
<selector>
<!--
This file is a copy of abc_edit_text_material (https://bit.ly/3k8fX7I).
The item below with state_pressed="false" and state_focused="false" causes a NullPointerException.
NullPointerException:tempt to invoke virtual method 'android.graphics.drawable.Drawable android.graphics.drawable.Drawable$ConstantState.newDrawable(android.content.res.Resources)'
<item android:state_pressed="false" android:state_focused="false" android:drawable="@drawable/abc_textfield_default_mtrl_alpha"/>
For more info, see https://bit.ly/3CdLStv (react-native/pull/29452) and https://bit.ly/3nxOMoR.
-->
<item android:state_enabled="false" android:drawable="@drawable/abc_textfield_default_mtrl_alpha"/>
<item android:drawable="@drawable/abc_textfield_activated_mtrl_alpha"/>
</selector>
</inset>

View File

@ -4,27 +4,19 @@
<item name="colorPrimaryDark">@color/splashBackground</item> <item name="colorPrimaryDark">@color/splashBackground</item>
<item name="android:navigationBarColor">@color/splashBackground</item> <item name="android:navigationBarColor">@color/splashBackground</item>
<item name="android:forceDarkAllowed">false</item> <item name="android:forceDarkAllowed">false</item>
<!-- RN 0.68.2 -->
<item name="android:editTextBackground">@drawable/rn_edit_text_material</item>
</style> </style>
<style name="Share.Window" parent="android:Theme"> <style name="ShareTheme" parent="AppTheme">
<item name="android:windowEnterAnimation">@null</item> <item name="android:navigationBarColor">@android:color/transparent</item>
<item name="android:windowExitAnimation">@null</item> <item name="android:statusBarColor">@android:color/transparent</item>
</style> </style>
<style name="Theme.Share.Transparent" parent="android:Theme"> <style name="BootTheme" parent="Theme.SplashScreen">
<item name="android:windowIsTranslucent">true</item> <item name="windowSplashScreenBackground">@color/splashBackground</item>
<item name="android:windowBackground">@color/primary_dark</item> <item name="windowSplashScreenAnimatedIcon">@drawable/ic_launcher_foreground</item>
<item name="android:windowContentOverlay">@null</item> <item name="postSplashScreenTheme">@style/AppTheme</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:backgroundDimEnabled">true</item>
<item name="android:windowAnimationStyle">@style/Share.Window</item>
</style>
<style name="BootTheme" parent="AppTheme">
<item name="android:background">@drawable/launch_screen</item>
<item name="colorPrimaryDark">@color/splashBackground</item>
<item name="android:navigationBarColor">@color/splashBackground</item>
</style> </style>
<!-- https://github.com/facebook/react-native/blob/d1ab03235cb4b93304150878d2b9057ab45bba77/ReactAndroid/src/main/res/views/modal/values/themes.xml#L5 --> <!-- https://github.com/facebook/react-native/blob/d1ab03235cb4b93304150878d2b9057ab45bba77/ReactAndroid/src/main/res/views/modal/values/themes.xml#L5 -->

View File

@ -7,4 +7,8 @@
tools:ignore="AcceptsUserCertificates" /> tools:ignore="AcceptsUserCertificates" />
</trust-anchors> </trust-anchors>
</base-config> </base-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">10.0.2.2</domain>
<domain includeSubdomains="true">localhost</domain>
</domain-config>
</network-security-config> </network-security-config>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 KiB

View File

@ -1,12 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:opacity="opaque">
<!-- the background color. it can be a system color or a custom one defined in colors.xml -->
<item android:drawable="@color/splashBackground" />
<item>
<!-- the app logo, centered horizontally and vertically -->
<bitmap
android:src="@drawable/splash"
android:gravity="center" />
</item>
</layer-list>

View File

@ -6,18 +6,17 @@
android:name="chat.rocket.reactnative.MainPlayApplication" android:name="chat.rocket.reactnative.MainPlayApplication"
android:label="@string/app_name" android:label="@string/app_name"
android:icon="@mipmap/ic_launcher" android:icon="@mipmap/ic_launcher"
android:theme="@style/AppTheme"
android:networkSecurityConfig="@xml/network_security_config" android:networkSecurityConfig="@xml/network_security_config"
tools:replace="android:name" tools:replace="android:name"
> >
<receiver <receiver
android:name="chat.rocket.reactnative.ReplyBroadcast" android:name="chat.rocket.reactnative.ReplyBroadcast"
android:enabled="true" android:enabled="true"
android:exported="false" /> android:exported="true" />
<receiver <receiver
android:name="chat.rocket.reactnative.DismissNotification" android:name="chat.rocket.reactnative.DismissNotification"
android:enabled="true" android:enabled="true"
android:exported="false" > android:exported="true" >
</receiver> </receiver>
<meta-data <meta-data
android:name="com.bugsnag.android.API_KEY" android:name="com.bugsnag.android.API_KEY"

View File

@ -3,7 +3,6 @@ package chat.rocket.reactnative;
import android.app.Application; import android.app.Application;
import com.facebook.react.ReactPackage; import com.facebook.react.ReactPackage;
import com.wix.reactnativenotifications.RNNotificationsPackage;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
@ -17,8 +16,7 @@ public class AdditionalModules {
return Arrays.<ReactPackage>asList( return Arrays.<ReactPackage>asList(
new ReactNativeFirebaseAnalyticsPackage(), new ReactNativeFirebaseAnalyticsPackage(),
new ReactNativeFirebaseAppPackage(), new ReactNativeFirebaseAppPackage(),
new ReactNativeFirebaseCrashlyticsPackage(), new ReactNativeFirebaseCrashlyticsPackage()
new RNNotificationsPackage(application)
); );
} }
} }

View File

@ -1,5 +1,7 @@
package chat.rocket.reactnative; package chat.rocket.reactnative;
import static com.wix.reactnativenotifications.Defs.NOTIFICATION_RECEIVED_EVENT_NAME;
import android.app.Notification; import android.app.Notification;
import android.app.NotificationChannel; import android.app.NotificationChannel;
import android.app.NotificationManager; import android.app.NotificationManager;
@ -35,8 +37,6 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutionException;
import static com.wix.reactnativenotifications.Defs.NOTIFICATION_RECEIVED_EVENT_NAME;
public class CustomPushNotification extends PushNotification { public class CustomPushNotification extends PushNotification {
public static ReactApplicationContext reactApplicationContext; public static ReactApplicationContext reactApplicationContext;
final NotificationManager notificationManager; final NotificationManager notificationManager;
@ -322,7 +322,12 @@ public class CustomPushNotification extends PushNotification {
replyIntent.setAction(KEY_REPLY); replyIntent.setAction(KEY_REPLY);
replyIntent.putExtra("pushNotification", bundle); replyIntent.putExtra("pushNotification", bundle);
PendingIntent replyPendingIntent = PendingIntent.getBroadcast(mContext, notificationId, replyIntent, PendingIntent.FLAG_UPDATE_CURRENT); PendingIntent replyPendingIntent;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
replyPendingIntent = PendingIntent.getBroadcast(mContext, notificationId, replyIntent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_MUTABLE);
} else {
replyPendingIntent = PendingIntent.getBroadcast(mContext, notificationId, replyIntent, PendingIntent.FLAG_UPDATE_CURRENT);
}
RemoteInput remoteInput = new RemoteInput.Builder(KEY_REPLY) RemoteInput remoteInput = new RemoteInput.Builder(KEY_REPLY)
.setLabel(label) .setLabel(label)
@ -343,12 +348,13 @@ public class CustomPushNotification extends PushNotification {
Intent intent = new Intent(mContext, DismissNotification.class); Intent intent = new Intent(mContext, DismissNotification.class);
intent.putExtra(NOTIFICATION_ID, notificationId); intent.putExtra(NOTIFICATION_ID, notificationId);
PendingIntent dismissPendingIntent = PendingIntent.getBroadcast(mContext, notificationId, intent, 0); PendingIntent dismissPendingIntent = PendingIntent.getBroadcast(mContext, notificationId, intent, PendingIntent.FLAG_ONE_SHOT | PendingIntent.FLAG_IMMUTABLE);
notification.setDeleteIntent(dismissPendingIntent); notification.setDeleteIntent(dismissPendingIntent);
} }
private void notificationLoad(Ejson ejson, Callback callback) { private void notificationLoad(Ejson ejson, Callback callback) {
LoadNotification.load(reactApplicationContext, ejson, callback); LoadNotification loadNotification = new LoadNotification();
loadNotification.load(reactApplicationContext, ejson, callback);
} }
} }

View File

@ -53,17 +53,9 @@ public class Ejson {
String alias = Utils.toHex("com.MMKV.default"); String alias = Utils.toHex("com.MMKV.default");
// Retrieve container password // Retrieve container password
secureKeystore.getSecureKey(alias, new RNCallback() { String password = secureKeystore.getSecureKey(alias);
@Override
public void invoke(Object... args) {
String error = (String) args[0];
if (error == null) {
String password = (String) args[1];
mmkv = MMKV.mmkvWithID("default", MMKV.SINGLE_PROCESS_MODE, password); mmkv = MMKV.mmkvWithID("default", MMKV.SINGLE_PROCESS_MODE, password);
} }
}
});
}
public String getAvatarUri() { public String getAvatarUri() {
if (type == null) { if (type == null) {

View File

@ -1,20 +1,14 @@
package chat.rocket.reactnative; package chat.rocket.reactnative;
import android.os.Bundle; import android.os.Bundle;
import android.content.Context;
import okhttp3.Call;
import okhttp3.OkHttpClient;
import okhttp3.HttpUrl;
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.Interceptor;
import com.google.gson.Gson;
import java.io.IOException;
import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactApplicationContext;
import com.google.gson.Gson;
import okhttp3.HttpUrl;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
class JsonResponse { class JsonResponse {
Data data; Data data;
@ -49,11 +43,11 @@ class JsonResponse {
} }
public class LoadNotification { public class LoadNotification {
private static int RETRY_COUNT = 0; private int RETRY_COUNT = 0;
private static int[] TIMEOUT = new int[]{0, 1, 3, 5, 10}; private int[] TIMEOUT = new int[]{0, 1, 3, 5, 10};
private static String TOKEN_KEY = "reactnativemeteor_usertoken-"; private String TOKEN_KEY = "reactnativemeteor_usertoken-";
public static void load(ReactApplicationContext reactApplicationContext, final Ejson ejson, Callback callback) { public void load(ReactApplicationContext reactApplicationContext, final Ejson ejson, Callback callback) {
final OkHttpClient client = new OkHttpClient(); final OkHttpClient client = new OkHttpClient();
HttpUrl.Builder url = HttpUrl.parse(ejson.serverURL().concat("/api/v1/push.get")).newBuilder(); HttpUrl.Builder url = HttpUrl.parse(ejson.serverURL().concat("/api/v1/push.get")).newBuilder();
@ -73,7 +67,7 @@ public class LoadNotification {
runRequest(client, request, callback); runRequest(client, request, callback);
} }
private static void runRequest(OkHttpClient client, Request request, Callback callback) { private void runRequest(OkHttpClient client, Request request, Callback callback) {
try { try {
Thread.sleep(TIMEOUT[RETRY_COUNT] * 1000); Thread.sleep(TIMEOUT[RETRY_COUNT] * 1000);

View File

@ -1,6 +1,4 @@
def safeExtGet(prop, fallback) { import org.apache.tools.ant.taskdefs.condition.Os
rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
}
// Top-level build file where you can add configuration options common to all sub-projects/modules. // Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript { buildscript {
@ -8,35 +6,42 @@ buildscript {
def isPlay = !taskRequests.contains("foss") def isPlay = !taskRequests.contains("foss")
ext { ext {
buildToolsVersion = "29.0.3" buildToolsVersion = "31.0.0"
minSdkVersion = 23 minSdkVersion = 23
compileSdkVersion = 30 compileSdkVersion = 31
targetSdkVersion = 30 targetSdkVersion = 31
ndkVersion = "20.1.5948944" if (System.properties['os.arch'] == "aarch64") {
// For M1 Users we need to use the NDK 24 which added support for aarch64
ndkVersion = "24.0.8215888"
} else {
// Otherwise we default to the side-by-side NDK version from AGP.
ndkVersion = "21.4.7075529"
}
glideVersion = "4.11.0" glideVersion = "4.11.0"
kotlin_version = "1.3.50" kotlin_version = "1.6.10"
kotlinVersion = '1.6.10'
supportLibVersion = "28.0.0" supportLibVersion = "28.0.0"
libre_build = !(isPlay.toBoolean()) libre_build = !(isPlay.toBoolean())
jitsi_url = isPlay ? "https://github.com/RocketChat/jitsi-maven-repository/raw/master/releases" : "https://github.com/RocketChat/jitsi-maven-repository/raw/libre/releases"
jitsi_version = isPlay ? "3.6.0" : "3.6.0-libre"
} }
repositories { repositories {
mavenLocal() mavenLocal()
google() google()
jcenter()
maven { maven {
url 'https://maven.fabric.io/public' url 'https://maven.fabric.io/public'
} }
mavenCentral()
} }
dependencies { dependencies {
if (isPlay) { if (isPlay) {
classpath 'com.google.gms:google-services:4.2.0' classpath 'com.google.gms:google-services:4.3.8'
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.0.0' classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.0'
classpath 'com.bugsnag:bugsnag-android-gradle-plugin:5.+' classpath 'com.bugsnag:bugsnag-android-gradle-plugin:7.+'
} }
classpath 'com.android.tools.build:gradle:4.1.0' classpath("com.android.tools.build:gradle:7.0.4")
classpath("com.facebook.react:react-native-gradle-plugin")
classpath("de.undercouch:gradle-download-task:4.1.2")
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
} }
} }
@ -57,31 +62,45 @@ allprojects {
url "$rootDir/../node_modules/detox/Detox-android" url "$rootDir/../node_modules/detox/Detox-android"
} }
maven { mavenCentral {
url jitsi_url content {
excludeGroup "com.facebook.react"
}
} }
google() google()
jcenter()
maven { url 'https://maven.google.com' } maven { url 'https://maven.google.com' }
maven { url 'https://www.jitpack.io' } maven { url 'https://www.jitpack.io' }
// https://stackoverflow.com/a/74333788/5447468
// TODO: remove once we update RN
exclusiveContent {
// We get React Native's Android binaries exclusively through npm,
// from a local Maven repo inside node_modules/react-native/.
// (The use of exclusiveContent prevents looking elsewhere like Maven Central
// and potentially getting a wrong version.)
filter {
includeGroup "com.facebook.react"
}
forRepository {
maven {
// NOTE: if you are in a monorepo, you may have "$rootDir/../../../node_modules/react-native/android"
url "$rootDir/../node_modules/react-native/android"
}
}
}
} }
} }
subprojects { subproject -> subprojects { subproject ->
afterEvaluate { afterEvaluate {
if ((subproject.plugins.hasPlugin('android') || subproject.plugins.hasPlugin('android-library'))) { if (!project.name.equalsIgnoreCase("app") && project.hasProperty("android")) {
android { android {
compileSdkVersion 30 compileSdkVersion 31
buildToolsVersion "29.0.3" buildToolsVersion "31.0.0"
defaultConfig { defaultConfig {
targetSdkVersion 30 minSdkVersion 23
} targetSdkVersion 31
variantFilter { variant ->
def names = variant.flavors*.name
if (names.contains("reactNative59")) {
setIgnore(true)
}
} }
} }
} }

View File

@ -9,16 +9,12 @@
# Specifies the JVM arguments used for the daemon process. # Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings. # The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx10248m -XX:MaxPermSize=256m # Default value: -Xmx512m -XX:MaxMetaspaceSize=256m
# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m
# When configured, Gradle will run in incubating parallel mode. # When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit # This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true # org.gradle.parallel=true
# android.enableAapt2=false # commenting this makes notifications to stop working
# android.useDeprecatedNdk=true
org.gradle.jvmargs=-Xmx2048M -XX\:MaxHeapSize\=32g
# AndroidX package structure to make it clearer which packages are bundled with the # AndroidX package structure to make it clearer which packages are bundled with the
# Android operating system, and which are packaged with your app's APK # Android operating system, and which are packaged with your app's APK
# https://developer.android.com/topic/libraries/support-library/androidx-rn # https://developer.android.com/topic/libraries/support-library/androidx-rn
@ -27,7 +23,19 @@ android.useAndroidX=true
android.enableJetifier=true android.enableJetifier=true
# Version of flipper SDK to use with React Native # Version of flipper SDK to use with React Native
FLIPPER_VERSION=0.75.1 FLIPPER_VERSION=0.175.0
# Use this property to specify which architecture you want to build.
# You can also override it from the CLI using
# ./gradlew <task> -PreactNativeArchitectures=x86_64
reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64
# Use this property to enable support to the new architecture.
# This will allow you to use TurboModules and the Fabric render in
# your application. You should enable this flag either if you want
# to write custom TurboModules/Fabric components OR use libraries that
# are providing them.
newArchEnabled=false
# Application ID # Application ID
APPLICATION_ID=chat.rocket.reactnative APPLICATION_ID=chat.rocket.reactnative

View File

@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists

269
android/gradlew vendored
View File

@ -1,7 +1,7 @@
#!/usr/bin/env sh #!/bin/sh
# #
# Copyright 2015 the original author or authors. # Copyright © 2015-2021 the original authors.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
@ -17,67 +17,101 @@
# #
############################################################################## ##############################################################################
## #
## Gradle start up script for UN*X # Gradle start up script for POSIX generated by Gradle.
## #
# Important for running:
#
# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
# noncompliant, but you have some other compliant shell such as ksh or
# bash, then to run this script, type that shell name before the whole
# command line, like:
#
# ksh Gradle
#
# Busybox and similar reduced shells will NOT work, because this script
# requires all of these POSIX shell features:
# * functions;
# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
# * compound commands having a testable exit status, especially «case»;
# * various built-in commands including «command», «set», and «ulimit».
#
# Important for patching:
#
# (2) This script targets any POSIX shell, so it avoids extensions provided
# by Bash, Ksh, etc; in particular arrays are avoided.
#
# The "traditional" practice of packing multiple parameters into a
# space-separated string is a well documented source of bugs and security
# problems, so this is (mostly) avoided, by progressively accumulating
# options in "$@", and eventually passing that to Java.
#
# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
# see the in-line comments for details.
#
# There are tweaks for specific operating systems such as AIX, CygWin,
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.
#
############################################################################## ##############################################################################
# Attempt to set APP_HOME # Attempt to set APP_HOME
# Resolve links: $0 may be a link # Resolve links: $0 may be a link
PRG="$0" app_path=$0
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do # Need this for daisy-chained symlinks.
ls=`ls -ld "$PRG"` while
link=`expr "$ls" : '.*-> \(.*\)$'` APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
if expr "$link" : '/.*' > /dev/null; then [ -h "$app_path" ]
PRG="$link" do
else ls=$( ls -ld "$app_path" )
PRG=`dirname "$PRG"`"/$link" link=${ls#*' -> '}
fi case $link in #(
/*) app_path=$link ;; #(
*) app_path=$APP_HOME$link ;;
esac
done done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >/dev/null APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
APP_HOME="`pwd -P`"
cd "$SAVED" >/dev/null
APP_NAME="Gradle" APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"` APP_BASE_NAME=${0##*/}
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Use the maximum available, or set MAX_FD != -1 to use that value. # Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum" MAX_FD=maximum
warn () { warn () {
echo "$*" echo "$*"
} } >&2
die () { die () {
echo echo
echo "$*" echo "$*"
echo echo
exit 1 exit 1
} } >&2
# OS specific support (must be 'true' or 'false'). # OS specific support (must be 'true' or 'false').
cygwin=false cygwin=false
msys=false msys=false
darwin=false darwin=false
nonstop=false nonstop=false
case "`uname`" in case "$( uname )" in #(
CYGWIN* ) CYGWIN* ) cygwin=true ;; #(
cygwin=true Darwin* ) darwin=true ;; #(
;; MSYS* | MINGW* ) msys=true ;; #(
Darwin* ) NONSTOP* ) nonstop=true ;;
darwin=true
;;
MINGW* )
msys=true
;;
NONSTOP* )
nonstop=true
;;
esac esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
@ -87,9 +121,9 @@ CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
if [ -n "$JAVA_HOME" ] ; then if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables # IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java" JAVACMD=$JAVA_HOME/jre/sh/java
else else
JAVACMD="$JAVA_HOME/bin/java" JAVACMD=$JAVA_HOME/bin/java
fi fi
if [ ! -x "$JAVACMD" ] ; then if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
@ -98,7 +132,7 @@ Please set the JAVA_HOME variable in your environment to match the
location of your Java installation." location of your Java installation."
fi fi
else else
JAVACMD="java" JAVACMD=java
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the Please set the JAVA_HOME variable in your environment to match the
@ -106,80 +140,95 @@ location of your Java installation."
fi fi
# Increase the maximum file descriptors if we can. # Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
MAX_FD_LIMIT=`ulimit -H -n` case $MAX_FD in #(
if [ $? -eq 0 ] ; then max*)
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then MAX_FD=$( ulimit -H -n ) ||
MAX_FD="$MAX_FD_LIMIT" warn "Could not query maximum file descriptor limit"
fi esac
ulimit -n $MAX_FD case $MAX_FD in #(
if [ $? -ne 0 ] ; then '' | soft) :;; #(
warn "Could not set maximum file descriptor limit: $MAX_FD" *)
fi ulimit -n "$MAX_FD" ||
else warn "Could not set maximum file descriptor limit to $MAX_FD"
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
fi
fi
# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
# For Cygwin or MSYS, switch paths to Windows format before running java
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
SEP=""
for dir in $ROOTDIRSRAW ; do
ROOTDIRS="$ROOTDIRS$SEP$dir"
SEP="|"
done
OURCYGPATTERN="(^($ROOTDIRS))"
# Add a user-defined pattern to the cygpath arguments
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i=0
for arg in "$@" ; do
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
else
eval `echo args$i`="\"$arg\""
fi
i=`expr $i + 1`
done
case $i in
0) set -- ;;
1) set -- "$args0" ;;
2) set -- "$args0" "$args1" ;;
3) set -- "$args0" "$args1" "$args2" ;;
4) set -- "$args0" "$args1" "$args2" "$args3" ;;
5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac esac
fi fi
# Escape application args # Collect all arguments for the java command, stacking in reverse order:
save () { # * args from the command line
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done # * the main class name
echo " " # * -classpath
} # * -D...appname settings
APP_ARGS=`save "$@"` # * --module-path (only if needed)
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
# Collect all arguments for the java command, following the shell quoting and substitution rules # For Cygwin or MSYS, switch paths to Windows format before running java
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" if "$cygwin" || "$msys" ; then
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
JAVACMD=$( cygpath --unix "$JAVACMD" )
# Now convert the arguments - kludge to limit ourselves to /bin/sh
for arg do
if
case $arg in #(
-*) false ;; # don't mess with options #(
/?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
[ -e "$t" ] ;; #(
*) false ;;
esac
then
arg=$( cygpath --path --ignore --mixed "$arg" )
fi
# Roll the args list around exactly as many times as the number of
# args, so each arg winds up back in the position where it started, but
# possibly modified.
#
# NB: a `for` loop captures its iteration list before it begins, so
# changing the positional parameters here affects neither the number of
# iterations, nor the values presented in `arg`.
shift # remove old arg
set -- "$@" "$arg" # push replacement arg
done
fi
# Collect all arguments for the java command;
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
# shell script including quotes and variable substitutions, so put them in
# double quotes to make sure that they get re-expanded; and
# * put everything else in single quotes, so that it's not re-expanded.
set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \
-classpath "$CLASSPATH" \
org.gradle.wrapper.GradleWrapperMain \
"$@"
# Use "xargs" to parse quoted args.
#
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
#
# In Bash we could simply go:
#
# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
# set -- "${ARGS[@]}" "$@"
#
# but POSIX shell has neither arrays nor command substitution, so instead we
# post-process each arg (as a line of input to sed) to backslash-escape any
# character that might be a shell metacharacter, then use eval to reverse
# that process (while maintaining the separation between arguments), and wrap
# the whole thing up as a single "set" statement.
#
# This will of course break if any of these variables contains a newline or
# an unmatched quote.
#
eval "set -- $(
printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
xargs -n1 |
sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
tr '\n' ' '
)" '"$@"'
exec "$JAVACMD" "$@" exec "$JAVACMD" "$@"

View File

@ -1,9 +1,4 @@
apply from: '../node_modules/react-native-unimodules/gradle.groovy'
includeUnimodulesProjects()
rootProject.name = 'RocketChatRN' rootProject.name = 'RocketChatRN'
include ':reactnativenotifications'
project(':reactnativenotifications').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-notifications/android/app')
include ':@react-native-community_viewpager' include ':@react-native-community_viewpager'
project(':@react-native-community_viewpager').projectDir = new File(rootProject.projectDir, '../node_modules/@react-native-community/viewpager/android') project(':@react-native-community_viewpager').projectDir = new File(rootProject.projectDir, '../node_modules/@react-native-community/viewpager/android')
include ':@react-native-firebase_app' include ':@react-native-firebase_app'
@ -14,3 +9,12 @@ include ':@react-native-firebase_crashlytics'
project(':@react-native-firebase_crashlytics').projectDir = new File(rootProject.projectDir, '../node_modules/@react-native-firebase/crashlytics/android') project(':@react-native-firebase_crashlytics').projectDir = new File(rootProject.projectDir, '../node_modules/@react-native-firebase/crashlytics/android')
apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings) apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
include ':app' include ':app'
includeBuild('../node_modules/react-native-gradle-plugin')
if (settings.hasProperty("newArchEnabled") && settings.newArchEnabled == "true") {
include(":ReactAndroid")
project(":ReactAndroid").projectDir = file('../node_modules/react-native/ReactAndroid')
}
apply from: new File(["node", "--print", "require.resolve('expo/package.json')"].execute(null, rootDir).text.trim(), "../scripts/autolinking.gradle")
useExpoModules()

View File

@ -1,11 +1,11 @@
import React from 'react'; import React, { useContext, memo, useEffect } from 'react';
import { NavigationContainer } from '@react-navigation/native'; import { NavigationContainer } from '@react-navigation/native';
import { createStackNavigator } from '@react-navigation/stack'; import { createStackNavigator } from '@react-navigation/stack';
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import { SetUsernameStackParamList, StackParamList } from './definitions/navigationTypes'; import { SetUsernameStackParamList, StackParamList } from './definitions/navigationTypes';
import Navigation from './lib/Navigation'; import Navigation from './lib/navigation/appNavigation';
import { defaultHeader, getActiveRouteName, navigationTheme } from './utils/navigation'; import { defaultHeader, getActiveRouteName, navigationTheme } from './lib/methods/helpers/navigation';
import { RootEnum } from './definitions'; import { RootEnum } from './definitions';
// Stacks // Stacks
import AuthLoadingView from './views/AuthLoadingView'; import AuthLoadingView from './views/AuthLoadingView';
@ -15,7 +15,7 @@ import OutsideStack from './stacks/OutsideStack';
import InsideStack from './stacks/InsideStack'; import InsideStack from './stacks/InsideStack';
import MasterDetailStack from './stacks/MasterDetailStack'; import MasterDetailStack from './stacks/MasterDetailStack';
import { ThemeContext } from './theme'; import { ThemeContext } from './theme';
import { setCurrentScreen } from './utils/log'; import { setCurrentScreen } from './lib/methods/helpers/log';
// SetUsernameStack // SetUsernameStack
const SetUsername = createStackNavigator<SetUsernameStackParamList>(); const SetUsername = createStackNavigator<SetUsernameStackParamList>();
@ -27,20 +27,22 @@ const SetUsernameStack = () => (
// App // App
const Stack = createStackNavigator<StackParamList>(); const Stack = createStackNavigator<StackParamList>();
const App = React.memo(({ root, isMasterDetail }: { root: string; isMasterDetail: boolean }) => { const App = memo(({ root, isMasterDetail }: { root: string; isMasterDetail: boolean }) => {
if (!root) { const { theme } = useContext(ThemeContext);
return null; useEffect(() => {
} if (root) {
const { theme } = React.useContext(ThemeContext);
const navTheme = navigationTheme(theme);
React.useEffect(() => {
const state = Navigation.navigationRef.current?.getRootState(); const state = Navigation.navigationRef.current?.getRootState();
const currentRouteName = getActiveRouteName(state); const currentRouteName = getActiveRouteName(state);
Navigation.routeNameRef.current = currentRouteName; Navigation.routeNameRef.current = currentRouteName;
setCurrentScreen(currentRouteName); setCurrentScreen(currentRouteName);
}, []); }
}, [root]);
if (!root) {
return null;
}
const navTheme = navigationTheme(theme);
return ( return (
<NavigationContainer <NavigationContainer
@ -53,7 +55,8 @@ const App = React.memo(({ root, isMasterDetail }: { root: string; isMasterDetail
setCurrentScreen(currentRouteName); setCurrentScreen(currentRouteName);
} }
Navigation.routeNameRef.current = currentRouteName; Navigation.routeNameRef.current = currentRouteName;
}}> }}
>
<Stack.Navigator screenOptions={{ headerShown: false, animationEnabled: false }}> <Stack.Navigator screenOptions={{ headerShown: false, animationEnabled: false }}>
<> <>
{root === RootEnum.ROOT_LOADING ? <Stack.Screen name='AuthLoading' component={AuthLoadingView} /> : null} {root === RootEnum.ROOT_LOADING ? <Stack.Screen name='AuthLoading' component={AuthLoadingView} /> : null}

View File

@ -1,23 +1,24 @@
/* eslint-disable */ import AsyncStorage from '@react-native-async-storage/async-storage';
import AsyncStorage from '@react-native-community/async-storage'; import { NativeModules, LogBox } from 'react-native';
import { NativeModules } from 'react-native';
import Reactotron from 'reactotron-react-native'; import Reactotron from 'reactotron-react-native';
import { reactotronRedux } from 'reactotron-redux'; import { reactotronRedux } from 'reactotron-redux';
import sagaPlugin from 'reactotron-redux-saga'; import sagaPlugin from 'reactotron-redux-saga';
if (__DEV__) { if (__DEV__) {
const scriptURL = NativeModules.SourceCode.scriptURL; const { scriptURL } = NativeModules.SourceCode;
const scriptHostname = scriptURL.split('://')[1].split(':')[0]; const scriptHostname = scriptURL.split('://')[1].split(':')[0];
Reactotron.setAsyncStorageHandler(AsyncStorage) Reactotron.setAsyncStorageHandler?.(AsyncStorage)
.configure({ host: scriptHostname }) .configure({ host: scriptHostname })
.useReactNative() .useReactNative()
.use(reactotronRedux()) .use(reactotronRedux())
.use(sagaPlugin()) .use(sagaPlugin({}))
.connect(); .connect();
// Running on android device // Running on android device
// $ adb reverse tcp:9090 tcp:9090 // $ adb reverse tcp:9090 tcp:9090
Reactotron.clear(); Reactotron.clear?.();
// @ts-ignore
console.warn = Reactotron.log; console.warn = Reactotron.log;
// @ts-ignore
console.log = Reactotron.log; console.log = Reactotron.log;
console.disableYellowBox = true; LogBox.ignoreAllLogs(true);
} }

View File

@ -11,7 +11,7 @@ function createRequestTypes(base = {}, types = defaultTypes): Record<string, str
// Login events // Login events
export const LOGIN = createRequestTypes('LOGIN', [...defaultTypes, 'SET_SERVICES', 'SET_PREFERENCE', 'SET_LOCAL_AUTHENTICATED']); export const LOGIN = createRequestTypes('LOGIN', [...defaultTypes, 'SET_SERVICES', 'SET_PREFERENCE', 'SET_LOCAL_AUTHENTICATED']);
export const SHARE = createRequestTypes('SHARE', ['SELECT_SERVER', 'SET_USER', 'SET_SETTINGS', 'SET_SERVER_INFO']); export const SHARE = createRequestTypes('SHARE', ['SELECT_SERVER', 'SET_USER', 'SET_SETTINGS', 'SET_SERVER_INFO']);
export const USER = createRequestTypes('USER', ['SET']); export const USER = createRequestTypes('USER', ['SET', 'CLEAR']);
export const ROOMS = createRequestTypes('ROOMS', [ export const ROOMS = createRequestTypes('ROOMS', [
...defaultTypes, ...defaultTypes,
'REFRESH', 'REFRESH',
@ -27,9 +27,10 @@ export const ROOM = createRequestTypes('ROOM', [
'LEAVE', 'LEAVE',
'DELETE', 'DELETE',
'REMOVED', 'REMOVED',
'CLOSE',
'FORWARD', 'FORWARD',
'USER_TYPING' 'USER_TYPING',
'HISTORY_REQUEST',
'HISTORY_FINISHED'
]); ]);
export const INQUIRY = createRequestTypes('INQUIRY', [ export const INQUIRY = createRequestTypes('INQUIRY', [
...defaultTypes, ...defaultTypes,
@ -39,7 +40,14 @@ export const INQUIRY = createRequestTypes('INQUIRY', [
'QUEUE_UPDATE', 'QUEUE_UPDATE',
'QUEUE_REMOVE' 'QUEUE_REMOVE'
]); ]);
export const APP = createRequestTypes('APP', ['START', 'READY', 'INIT', 'INIT_LOCAL_SETTINGS', 'SET_MASTER_DETAIL']); export const APP = createRequestTypes('APP', [
'START',
'READY',
'INIT',
'INIT_LOCAL_SETTINGS',
'SET_MASTER_DETAIL',
'SET_NOTIFICATION_PRESENCE_CAP'
]);
export const MESSAGES = createRequestTypes('MESSAGES', ['REPLY_BROADCAST']); export const MESSAGES = createRequestTypes('MESSAGES', ['REPLY_BROADCAST']);
export const CREATE_CHANNEL = createRequestTypes('CREATE_CHANNEL', [...defaultTypes]); export const CREATE_CHANNEL = createRequestTypes('CREATE_CHANNEL', [...defaultTypes]);
export const CREATE_DISCUSSION = createRequestTypes('CREATE_DISCUSSION', [...defaultTypes]); export const CREATE_DISCUSSION = createRequestTypes('CREATE_DISCUSSION', [...defaultTypes]);
@ -54,6 +62,7 @@ export const SERVER = createRequestTypes('SERVER', [
]); ]);
export const METEOR = createRequestTypes('METEOR_CONNECT', [...defaultTypes, 'DISCONNECT']); export const METEOR = createRequestTypes('METEOR_CONNECT', [...defaultTypes, 'DISCONNECT']);
export const LOGOUT = 'LOGOUT'; // logout is always success export const LOGOUT = 'LOGOUT'; // logout is always success
export const DELETE_ACCOUNT = 'DELETE_ACCOUNT';
export const SNIPPETED_MESSAGES = createRequestTypes('SNIPPETED_MESSAGES', ['OPEN', 'READY', 'CLOSE', 'MESSAGES_RECEIVED']); export const SNIPPETED_MESSAGES = createRequestTypes('SNIPPETED_MESSAGES', ['OPEN', 'READY', 'CLOSE', 'MESSAGES_RECEIVED']);
export const DEEP_LINKING = createRequestTypes('DEEP_LINKING', ['OPEN']); export const DEEP_LINKING = createRequestTypes('DEEP_LINKING', ['OPEN']);
export const SORT_PREFERENCES = createRequestTypes('SORT_PREFERENCES', ['SET_ALL', 'SET']); export const SORT_PREFERENCES = createRequestTypes('SORT_PREFERENCES', ['SET_ALL', 'SET']);

View File

@ -12,7 +12,11 @@ interface ISetMasterDetail extends Action {
isMasterDetail: boolean; isMasterDetail: boolean;
} }
export type TActionApp = IAppStart & ISetMasterDetail; interface ISetNotificationPresenceCap extends Action {
show: boolean;
}
export type TActionApp = IAppStart & ISetMasterDetail & ISetNotificationPresenceCap;
interface Params { interface Params {
root: RootEnum; root: RootEnum;
@ -51,3 +55,10 @@ export function setMasterDetail(isMasterDetail: boolean): ISetMasterDetail {
isMasterDetail isMasterDetail
}; };
} }
export function setNotificationPresenceCap(show: boolean): ISetNotificationPresenceCap {
return {
type: APP.SET_NOTIFICATION_PRESENCE_CAP,
show
};
}

View File

@ -2,8 +2,16 @@ import { Action } from 'redux';
import { CREATE_DISCUSSION } from './actionsTypes'; import { CREATE_DISCUSSION } from './actionsTypes';
export interface ICreateDiscussionRequestData {
prid: string;
pmid?: string;
t_name?: string;
reply?: string;
users: string[];
encrypted?: boolean;
}
interface ICreateDiscussionRequest extends Action { interface ICreateDiscussionRequest extends Action {
data: any; data: ICreateDiscussionRequestData;
} }
interface ICreateDiscussionSuccess extends Action { interface ICreateDiscussionSuccess extends Action {

View File

@ -1,7 +1,7 @@
import { Action } from 'redux'; import { Action } from 'redux';
import { ICustomEmojis } from '../reducers/customEmojis';
import { SET_CUSTOM_EMOJIS } from './actionsTypes'; import { SET_CUSTOM_EMOJIS } from './actionsTypes';
import { ICustomEmojis } from '../definitions';
export interface ISetCustomEmojis extends Action { export interface ISetCustomEmojis extends Action {
emojis: ICustomEmojis; emojis: ICustomEmojis;

Some files were not shown because too many files have changed in this diff Show More