Commit graph

120 commits

Author SHA1 Message Date
Elias Nahum
79d2d7b31d
MM-28968 Fix redux-persist serializer (#4918) 2020-10-23 15:12:06 -07:00
Elias Nahum
043b3a0e8e
Refactor Android Share extension (js) (#4893)
* Refactor Android Share extension (js)

* Feedback review
2020-10-19 21:39:59 -03:00
Elias Nahum
96bf1db243
MM-28295 Do not remove the Channel screen from the stack tracking (#4793)
* Do not remove the Channel screen from the stack tracking

* Reset stack for select server & when no teams are present
2020-09-09 13:15:09 -03:00
Elias Nahum
e40d0e4c8a
MM-28295 Android fix opening sidebar after closing setting screen (#4777) 2020-09-08 16:34:30 -03:00
Elias Nahum
8816953e43
MM-26699 Track open modals (#4539) 2020-07-08 10:43:20 -07:00
Elias Nahum
cfbb7d4d55
Avoid throwing when purging (#4489)
* Avoid throwing when purging

* Update app/store/index.ts

Co-authored-by: Miguel Alatzar <migbot@users.noreply.github.com>

Co-authored-by: Miguel Alatzar <migbot@users.noreply.github.com>
2020-06-26 16:14:03 -04:00
Miguel Alatzar
363810f708
Various fixes: (#4474)
* Fix map call on Set
* Ensure we don't destructure non-iterable values
* Include error message and stack in Alert
2020-06-23 16:39:49 -07:00
Miguel Alatzar
73f5bc20eb
Various fixes: (#4465)
* Dispatch REHYDRATED if already hydrated after getStoredState call
* Empty/null prev version is valid
* Update iOS target to 11.0
2020-06-22 15:24:54 -07:00
Miguel Alatzar
f6611f7093
[MM-26318] Improve cold start and channel switching times (#4452)
* Remove withEncryption

* Remove warm up

* Downgrade react-native-keychain
2020-06-19 16:12:15 -07:00
Elias Nahum
195011d678
Ensure previous state is cleared when logout (#4390) 2020-06-08 13:43:53 -04:00
Miguel Alatzar
4178816350
Incrase redux-persist timeout to 1 min (#4322) 2020-05-21 14:04:08 -07:00
Elias Nahum
012eb08fde
Fix infinite skeleton in different use cases and do not scroll to messages already seen (#4304)
* Fix infinite skeleton in different use cases

* Apply suggestions from code review

Co-authored-by: Miguel Alatzar <migbot@users.noreply.github.com>

* Update app/utils/teams.js

Co-authored-by: Miguel Alatzar <migbot@users.noreply.github.com>
2020-05-19 18:54:34 -04:00
Elias Nahum
c0a763e9e0
Set previous app version on persist store migration (#4294) 2020-05-13 19:24:44 -03:00
Elias Nahum
36e55c95a2
MM-23570 Migrate from Segment to Rudder (#4293)
* Replace Segment with Rudder (ios not working)

* Update @assets reference and fix tests
2020-05-13 16:54:07 -04:00
Miguel Alatzar
86737a70c6
[MM-24639] Set rehydrated values to true on store cleanup. (#4258)
* Set rehydration values to true on clean up

* Remove extra line

* Update app/store/middlewares/helpers.js

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>

* Fix setting of views.root.hydrationComplete

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2020-05-05 18:16:49 -04:00
Amit Uttam
4d391c36a0
Serialize/Deserialize state as string in store, instead of map (#4253)
* Serialize/Deserialize state as string in store, instead of map

To see if this positively impacts performance lag issues (channel sidebar opening, etc.)

* Update app/store/mmkv_adapter.ts

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>

* Update app/store/mmkv_adapter.ts

* Typescript fixes

Co-authored-by: Miguel Alatzar <migbot@users.noreply.github.com>
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
Co-authored-by: Miguel Alatzar <this.migbot@gmail.com>
2020-04-30 11:17:58 -07:00
Elias Nahum
9af108026e
MM-24285 Use FastImage instead of Image (#4218)
* Enable ESLint no-unused-vars

* Use FastImage instead of Image

* Update fast-image patch to support multiple cookies

* Fix ESLint errors

* Have jest run timers for post_textbox tests

* Feedback review

* Update snapshots
2020-04-28 23:23:39 +08:00
Amit Uttam
35bb4b6b28
[MM-24463] Run message retention cleanup off of pre-existing state (#4222)
* MM-24463 Run message retention cleanup off of pre-existing state

Instead of a reconstructed "zero" state.

Only posts in channels, searched posts and flag posts are recalculated (as per data retention policy, if applicable). The rest of state is cloned from existing state.

* Mark hydrationComplete only if _persist state is undefined

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2020-04-27 13:27:21 -03:00
Elias Nahum
f94c09d54e
MM-24451 Set prev app version to current on logout/reset cache (#4225)
* MM-24451 Set prev app version to current on logout/reset cache

* Fix unit tests for master
2020-04-24 11:07:08 -07:00
Miguel Alatzar
135dc8c9bd
[MM-24426] [MM-24451] Set previous app version in redux store (#4197)
* Set previous app version in redux store

* Handle setting previousVersion on login and clearing data

* Set previous version on logout instead

* Remove action arg
2020-04-23 05:42:35 -04:00
Elias Nahum
fda4948c8c
MM-23848 consolidate store, upgrade mmkv and fix logout (#4145)
* MM-23848 consolidate store, upgrade mmkv and fix logout

* Feedback review

* Add store.ts to modulesPath
2020-04-16 09:02:47 -04:00
Elias Nahum
4ad4b3b103
Validate previous app version (#4151)
* Validate previous app version

* Update snapshot and fix typo in constant
2020-04-14 13:22:43 -04:00
Miguel Alatzar
7afa9aed01
[MM-23698] [MM-19559] Remove redux-offline and updated redux-persist (#4120)
* Remove redux-offline and configure redux-persist

* Fix typo

* Fix configure store

* Upgrade to redux-persist 6.0.0

* Add migration from redux-persist v4 to v6

* Replace AsyncStorage with MMKVStorage to boost storage speed

* Mock RNFastStorage

* Fix reactions test

* Fix clearing the store on logout

* Remove the need for LOGOUT_SUCCESS

* No need to pass persistConfig to middlewares()

* Remove unused imports

* Export connection

Accidentally removed this export.

* Add batch action name

Co-Authored-By: Elias Nahum <nahumhbl@gmail.com>

* Add batch action name

Co-Authored-By: Elias Nahum <nahumhbl@gmail.com>

* Add batch action name

Co-Authored-By: Elias Nahum <nahumhbl@gmail.com>

* Add batch action name

Co-Authored-By: Elias Nahum <nahumhbl@gmail.com>

* Fix delete post

* Fix leave channel

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2020-04-08 13:44:54 -07:00
Amit Uttam
725992941c
[MM-23490] Save state to file via async middleware vs store subscription (#4059)
* MM-23490 Save state to file via async middleware vs store subscription

Currently for iOS, a subset of store state is saved to an on-device file, so that the Share Extension can have access to information it needs (teams and channels) to function.

This file saving would happen via a store subscription which triggers a file save for every dispatched action. By moving this logic to a middleware function, when this function gets invoked is now limited to a configurable set of action dispatches. (e.g. `LOGIN`, `CONNECTION_CHANGED`, `WEBSOCKET_SUCCESS`), etc.

* MM-23493 Move app cache purge from store subscription to middleware (#4069)

* MM-23493 Move app cache purge from store subscription to middleware

This commit exposes persistence configuration as a static reference, so that cache purging can be invoked on demand anywhere else in the codebase.
While middleware still may not be the best spot for this singular "action", existing functionality (reacting to `OFFLINE_STORE_PURGE`) is maintained.

The change also removes the need for `state.views.root.purge` to exist in the state tree.

* PR feedback: Inject config dependency for purging app cache

Previously, `middleware` imported the config back from `store` (i.e. cyclic import).

* PR feedback: No need to export config, now that it's passed as argument

* Fix tests after refactoring middleware call from array -> function

* PR feedback: Let parent continue to pass down initial store state
2020-03-31 20:01:13 -07:00
Miguel Alatzar
ece9b6f1d9
[MM-22671] [MM-22935] Fetch posts for unread channels on loadChannelsForTeam (#4078)
* Fetch posts for unread channels on loadChannelsForTeam

* Add unit tests

* Remove unneeded setRetryFailed and getState

* Update getChannelSinceValue comment

* Move to post.js and pass in channels and channelMembers

* Exclude current channel

* Address PR review comments

* Fix import

* Fix mm-redux references
2020-03-31 18:41:11 -03:00
Miguel Alatzar
ee4b85edcf
[MM-23520] Port mattermost-redux (#4088)
* Remove mattermost-redux

* Move mm-redux files into app/redux

* Add @redux path to tsconfig.json

* Fix imports

* Install missing dependencies

* Fix tsc errors

* Fix i18n_utils test

* Fix more imports

* Remove redux websocket

* Fix tests

* Rename @redux

* Apply changes from mattermost-redux PR 1103

* Remove mattermost-redux mention in template

* Add missing imports

* Rename app/redux/ to app/mm-redux/

* Remove test file

* Fix fetching Sidebar GM profiles

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2020-03-31 11:09:26 -07:00
Elias Nahum
3c73e8ec89
Fix post in channel batching order (#4090)
* Fix post in channel batching order

* Preserve preferences on reset cache
2020-03-30 19:02:05 -03:00
Elias Nahum
7bb162b07a
MM-22292 Don't use redux to store username and password (#4072)
* MM-22292 Don't use redux to store username and password

* Set login and password MFA props
2020-03-26 23:57:58 -03:00
Elias Nahum
10d433cfab
Port WebSocket from mm-redux and batch actions (#4060)
* Port WebSocket from mm-redux and batch actions

* Update mm-redux and fix tests

* Change action name

* Naming batch actions

* Fix unit tests

* Dispatch connection change only if its different

* Remove comment

* Add Lint to TypeScript and fix linting errors

* Add WebSocket Unit Tests

* Revert from unwanted RN 0.62
2020-03-26 21:23:50 -03:00
Elias Nahum
8fbc988c90
Upgrade Dependencies (#4034)
* Upgrade Navigation library

* Fix background color on Select Server

* Upgrade Navigation library

* Apply patch to nav lib

* Upgrade RNN to 6.1.1

* Update Dependencies

* Feedback review

* Call clearNavigationComponents when reset to channel
2020-03-18 19:05:49 -03:00
Miguel Alatzar
898b59ab27
Fix app hanging when switching to a team after opening push notification (#4013) 2020-03-05 09:52:56 -07:00
Miguel Alatzar
55ebf4f5e4
[MM-20950] Don't reset the navigation root when clearing data (#3929)
* No need to resetToChannel on clearing data

* Don't use componentWillReceiveProps

* Dismiss all modals on iOS too

* Use centerChannelBg when channel as root

* Fix resetToChannel test

* Fix removal of loadChannels call when rebasing with master

* Add new line

* Address PR review comments
2020-02-27 17:15:45 -03:00
Elias Nahum
334a07aabe
Performance improvements (#3911)
* Improve sidebar performance on first load

* Initial work for switch channel

* Revert android changes

* Split Sidebar per Platform

* Fix waitForHydration executing the callback more than once

* Fix custom emoji not showing on Android

* Finalize Channel Switch

* Enable Android Ram Bundles

* Select the right team for lastChannelForTeam

* Channel loading post indicator

* Fix main sidebar base intl provider

* Update mm-redux

* No need to request configAndLicense on launch

* Load channel member roles

* Rename closeChannelDrawer to closeMainSidebar

* do not throw errors when console is called while running tests

* constant for LOADING_POSTS_HEIGHT

* Remove show more if a long post is edited and no longer long

* Update mm-redux#batch-actions branch

* Code review

* Clear notifications if channel was switched

* Import Platform

Co-authored-by: Miguel Alatzar <migbot@users.noreply.github.com>
2020-02-17 21:18:09 -07:00
Elias Nahum
696d6eef08
Re-enable ram-bundles (#3907) 2020-02-10 11:20:45 -07:00
Elias Nahum
7c09334dc4
Deps update (#3806)
* Dependecy updates

* Update dependencies
2020-01-20 13:20:03 -03:00
Elias Nahum
1e42a87826
Fix iOS Share extension alert message when file size is larger than allowed (#3792) 2020-01-10 07:41:48 -03:00
CJ
1ac82b8df2 MM-21085 Updated waitHydration (#3677)
* MM-21085 Updated waitHydration

Updated the hydration of hte store to first check if it completed as this was being caused due to a race condition.

* MM-21085 Updated for callback

MM-21085 Updated for callback
2019-12-09 16:54:41 -03:00
Miguel Alatzar
0b3ba08030
Pass callback to waitForHydration (#3667) 2019-12-06 12:07:11 -07:00
Elias Nahum
75e0854411 MM-20694 Fix race condition when the store has not rehydrated (#3610)
* MM-20694 Fix race condition when the store has not rehydrated

* Making waitForHydration re-usable
2019-11-27 08:03:50 -07:00
Miguel Alatzar
f2c47def31
[MM-19841] Keep currentTeamId and team theme preferences when resetting state (#3519)
* Keep currentTeamId and team theme preferences

* Missing semicolon

* Update mattermost-redux commit
2019-11-06 15:00:50 -07:00
Miguel Alatzar
1bde8ed4dc [MM-18983] Store insets in ephemeral store (#3457)
* Store insets in ephemeral store

* Address PR review
2019-10-25 14:50:13 +03:00
Elias Nahum
d4c682bddd
MM-17157 Only send notification receipt if server url and session token are set (#3375) 2019-10-10 08:48:38 +03:00
Miguel Alatzar
459801d10b
[MM-17560] Await dismissAllModals and popToRoot prior to calling showSearchModal (#3298)
* Patch react-native-navigation

* Make navigation actions regular functions

* Fix unhandled promise rejection warning

* Missing semicolons

* Mock navigation actions

* Add unit tests for navigation actions

* Place all patches in patches directory

* Fix channel_info snapshot test
2019-09-25 15:23:45 -07:00
Miguel Alatzar
ffbae7589f Apply setNavigatorStyles to all navigation components (#3121) 2019-08-15 02:00:21 +08:00
Miguel Alatzar
6cf6e51457 [MM-17709] Avoid async getSource (#3115)
* Await getSource

* Use server url from EphemeralStore

* Set currentServerUrl in getAppCredentials too
2019-08-14 16:07:12 +05:30
Elias Nahum
e87858d7af Various fixes (#3078)
* MM-17588 Remove navigation component from stack

* MM-175986 Fix Clock Display Settings on iOS

* Fix markdown and team icon currentServerUrl

* Fix closing permalink logs out the user

* Fix file attachment document ref

* Fix applyTheme when changing a theme in the app

* Feedback review

* remove / when fetching the image on the markdown table on relative paths
2019-08-08 22:28:07 +08:00
Miguel Alatzar
59e948f06a Apply new theme to all navigation components (#3005) 2019-07-23 12:21:35 -04:00
Miguel Alatzar
51aac1e6e7 Merge branch 'master' into rnn-v2 2019-07-02 18:15:19 -07:00
Harrison Healey
0ff6dba3c8
MM-16477 Check for modified users on reconnect (#2936)
* MM-16477 Move websocket status to redux

* MM-16477 Check for modified users on reconnect

* Update mattermost-redux

* Update mattermost-redux
2019-07-02 14:20:48 -04:00
Elias Nahum
89b96d51db MM-16430 refactor app entry point (#2924)
* MM-16430 refactor app entry point

* iOS Extensions to use session token from KeyChain

* Remove token from general credentials entity

* Fix mattermost-managed.ios to return the cachedConfig

* Migrate server based keychain for android push notifications

* remove unneeded async

* Remove unneeded android InitializationModule
2019-06-26 15:21:20 -04:00