* 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
* Set previous app version in redux store
* Handle setting previousVersion on login and clearing data
* Set previous version on logout instead
* Remove action arg
* 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>
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
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
* 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>
* Revert "Update mattermost-redux"
This reverts commit 04b3897ecb.
* Revert "[MM-17068] Add set post as unread option to menu (#3202)"
This reverts commit c7a29eea6a.
* [MM-17068] Add set post as unread option to menu
* [MM-17068] Fix tests
* [MM-17068] add english assets
* [MM-17068] Add bookmark icons for marking as unread
* [MM-17068] reorder menu items
* [MM-17068] fix snapshots
* [MM-17068] merge my post options and others post options
* Update mattermost-redux to use latest WS changes
* Properly mark channel as read, keep the new message indicator, and fix push notification flow
* unneeded parameter in setCurrentUserStatusOffline
Co-Authored-By: enahum <nahumhbl@gmail.com>
* Feedback review
* Update mm-redux ref
* Load more posts of a channel by determining the amount of posts shown regardless of how many are in the store
* Feedback review
* do not combine posts when fetching them
* Long post support
* Split file upload component
* Use fetch blob fork
* add progress to file upload
* Remove SERVER.PID from Makefile
* Preview only images
* remove unused prop
* update eslint's `comma-dangle` rule to `always-multiline`
* add check and fix scripts to package.json
* Invoke `yarn fix` to adopt the updated eslint rules. No other changes are included.
* Add async handling of custom emoji to posts and channel info
* Add server request to emoji autocomplete
* Add custom emoji paging and server search to emoji picker
* Fix android
* Update mattermost-redux and revert temp change
* Backwards compatibility fixes
* Updates per feedback
* Set server version when user is not logged in
* Reset section index when search is cleared or cancelled
* Some small fixes and upgrade mattermost-redux
* Minor sorting changes
* Add recently used section and section icons
* Improve section scrolling indication
* Modify Makefile and use onMomentumScrollEnd
* Make sure top section maintains highlight when scrolled to top
* Sort emojis by startsWith then includes when filtering
* Config to enable when clicking on username to fill input with @mention
* Rename to experimental and move tenary from componet to variable
* Use getCurrentChannelId in insertToPostDraft action
* Change to work with rebase
* Refactor thread reducer and blacklist currentThreadId
* Review feedback
* Review feedback 2
* Dispatch retry failed action | fix refreshing state | change postVisibility to 15
* Improve channel switching
* Improve handling of visible tooltip
* Improve watching for status bar height changes
* Remove unnecessary mapStateToProps from code screen
* Use drawer native functions to open/close instead of state
* Feedback review
* RN-379 Added websocket state to device state
* Fixed view store blacklist
* RN-379 Get posts since last websocket disconnect when viewing channel
* Used Date.now instead of new Date().getTime()
* RN-345 Only show refreshing indicator when channel is actually refreshing
* Added getCurrentLocale selector
* Added SwitchTeams component to channel drawer to reduce rerenders
* Reduced number of props passed from ChannelsList into children
* Removed unused prop from FilteredList
* Moved visible post calculation out of render function
* Don't set the channel to loading when not switching channels
* Added most of channel view state to blacklist
* Landscape support
* Fix image rotation on Android
* Fix landscape mode for login and login options
* Fix previewer will receive props
* Move device dimensions and others to redux
* Fix unit tests
* Include orientation and tablet in the store
* Fix offline indicator UI
* Add search screen with recent mentions functionality
* Fix make start
* Add autocomplete to the search box
* Fix search bar in other screens
* Get search results and scroll the list
* Add reply arrow to search result posts
* Search result preview and jump to channel
* Feedback review