* Remove watermelondb limitation on updating an already updated model
* Add logic to handle different prepare states and improve logging
* fix tests
---------
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
* Fetch & Save granular data retention policies through REST
* Init Data cleanup
* Run the clean up
* Deleting posts in patches and running across other servers
* fetch on graphql & refactor
* Feedback changes
* Added try catch for deletePosts function
* Feedback changes
* Changed to 'for of' loop
* Misc
* app/actions
* Date cutoff fox
* Prevent showing loading bar when request fails
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Co-authored-by: Mattermost Build <build@mattermost.com>
* Fix several issues around team join
* Open in modal and fix channel list
* Add joining states and fix issues
* i18n-extract
* add specific message for group related failures on joining teams
* Address feedback
* Address feedback
* Use error from server response
* Init
* Test fix
* New sync implementation
* misc
* Includes migration and other servers sync
* Misc
* Migration fix
* Migration is done version 7
* Update app/queries/servers/thread.ts
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
* Update app/database/operator/server_data_operator/handlers/team_threads_sync.ts
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
* Feedback changes
* Fixes when old thread gets a reply
* Fix
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
* Fix crash on Android when session expired notification is presented
* react-native-notification patch for schedule fix on android and open local notification on iOS
* Fix android scheduled session notification crash
* patch react-native-navigation to support blur/focus AppState on Android
* remove schedule session expired notification from login entry point
* schedule session expired notification actions
* add session manager
* Handle open session expired notification
* First approach
* Lint
* Fixes and adding monitoring console statements (to be removed later)
* Add pagination and apply graphQL also to login
* Get all entry points to use the same GQL call
* Unify gql handling
* Use graphQL on websocket reconnect
* Handle latest changes regarding categories
* Use graphQL to properly fetch channel members on other servers
* Remove logs and fetch unreads from other teams
* Minor fixes
* Final fixes
* Address feedback, minor refactoring, and fixes around the refactor
* Fix custom status duration types
* Add missing fields and some reordering
* Add timeout to fetch posts for unread channels
* fix animation on LoadingUnreads component
* code clean up
* clean up
* revert change to action/websocket/index
* Update loading_unreads.tsx
* fix loader stop spinning on second server removal
* fix for stopping loader on addition of new server
* Update loading_unreads.tsx
* WIP
* Actions updated to fetch remote first, and local on error
* Groups fetch and save
* PR Feedback: prepare vs store and undefined fix
* Forgot to add file
* Groups Mention WIP
* Groups highlight!
* Merge, PR Feedback
* PR Feedback
* PR Feedback: Try/Catch blocks
* PR Feedback
* Rebased with PR feedback
* Exclusion fix, plus id order
* Tidies up iterations
* Loops updated
* Update app/database/operator/server_data_operator/handlers/group.ts
Co-authored-by: Avinash Lingaloo <avinashlng1080@gmail.com>
* PR Feedback: Remove unnecessary prepare/store methods
* Newline ESLint error
* Extracts out id generation for group-associations
* Batches if not fetchOnly
Co-authored-by: Avinash Lingaloo <avinashlng1080@gmail.com>
* MM-37110: handle toggling of CRT feature
When a user toggles CRT on/off the app should truncate affected tables,
and re-fetch data.
Truncated tables:
- POST
- POSTS_IN_CHANNEL
- POSTS_IN_THREAD
- THREAD
- THREADS_IN_TEAM
- THREAD_PARTICIPANT
- MY_CHANNEL
After truncation `entry` is called again. We must make sure though that
we save the CRT change before calling `entry` again, or we end up with
infinite recursion.
PS the UI seems to handle the change rather good
* Fixes appEntry and popToRoot
* Small refactor
* Fixes since param on appEntry
* Further refactoring
* Delete unneeded return type
* Removes shouldPopToRoot from appEntry
* Addresses review comments
* Add column last_fetched_at to MyChannel & Thread tables and the migration
* Fix schema tests
* Handle lastFetchAt, retrieve threads on init and properly observe thread unreads (#6436)
* [Gekidou] Set lastFetchAt when fetching posts for a channel (#6437)
* Set lastFetchAt when fetching posts for a channel
* When resetting _preparedState set always to null
* Revert changes in WS
* Handle and set lastFetchedAt for MyChannel in iOS push notification
* feedback review
* iOS fallback to last post createAt if no lastFetchAt set
* Handle lastFetchAt on Android push notifications
* create storePostsForChannel local action
* Fix iOS fallback to last post create_at
Co-authored-by: Daniel Espino García <larkox@gmail.com>
* Open CRT notification
* Changes
* fix own DM
* Removed unwanted functions
* WS post commit createThreadFromNewPost as soon as possible
* Addressing the feedback
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
* Improve handlers to only create/update needed recors and add loading indicator while posts are being loaded
* Tweak team handlers
* check for delete_at as falsey
* more handler tweaks
* Preference handler
* Small refactor on category body
* Add WS reconnect FETCHING_POSTS event
* Fix handleChannelViewedEvent when channel screen is not visible
* Replace blinking dot with spinner
* update snapshots to reflect the new spinner
* Improve loading display name of direct channels
* Improve team switching
* Improve perceived performance when opening the app with an active session
* Fix upgrade path from v1
* Set moment locale while formatting date
* feedback review
* CRT fixes for MM-44210 & MM-44156
* Covered other conditions and renamed variables to be consistent
Co-authored-by: Anurag Shivarathri <anurag6713@gmail.com>
* Unify entry functions
* Handle switched to channel on websocket reconnect
* Simplify global threads by moving it to switchByChannelId
* Keep in mind team when changing to global threads view
* Avoid unneeded channel switches on notification entry
* Fix effects on home screen
* Address feedback
* Add verification for push proxy and related interface
* Fix lint and extract i18n
* Be specific about undefined equalities.
* Fix test
* Address feedback
* Fix long server names styles
* Fix tests and typo
* Global threads
* Added translations
* User avatar stack
* In-Channel experience
* Misc Fixes
* Fixed fetchPostThread & added observer
* using the observable for participants & check fix
* Test case fix
* Fix tablet view thread screen switching
* No back button for tablets
* folders for thread options only if needed
* Using the existing observable
* Users stack refactor fix
* Reusing the user component
* Refactor fix
* Fixes double loaders when empty threads
* Feedback
* Moved some post options to common post options
* Combined follow/unfollow functions
* Feedback fixes
* Addressing Feedback
* Merge fix
* Threads button component moved
* Addressing feedbackk
* Not rendering message when it's empty, removed unwanted Props exports
* Addressing feedbac
* Updated snapshot
* Added emoji to removemarkdown component
* Moved MD rendering into the component
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Co-authored-by: koox00 <3829551+koox00@users.noreply.github.com>
* Unreads on top
* Feedback addressed
* WIP: Using a lastUnreadChannelId to maintain an Active State on selected channel
* Pair programming session
* Pair programming #2
* Pair programming #3
* Test fix
* MM-40093: adds remote action to sync threads
Syncing threads fetches all unread threads if there are no threads in
the DB.
If there are threads in the DB it fetches all threads newest than the
newest one we have stored.
Fetching happens in batches of 60 threads at a time.
* Fixes querying for all threads list
* Syncs threads on WS reconnection
* Addresses review comments
* Addresses review comments
* Fix add DM screen and some other database related issues
* Minor style fixes
* Handle create DM/GM websocket by using the teammate ids
* Address feedback
* Fix search bar style
* MM-42983 Align mention badge on channel list item
* MM-42985 polish channel intro UI
* MM-42984 update fonts on 'Show' bottom sheet
* MM-42982 Increase tap area of back button on channel view
* Set StatusBar style based on theme sidebarBg
* Reconnect other WS after 20 seconds insted of 5
* Only fetch missing profiles for DM/GMs
* Database prepare records optimization
* Do not use fallbackUsername for storing GM/DM in the database
* fix filter for fetching missing dm/gm
* remove use of indexOf inside another loop
* remove use of includes inside another loop
* remove use of find inside another loop
* Add missing translations
* disable Flipper on iOS
* Remove Flipper code from AppDelegate
* feedback review
* trim DM display name to make sure is not empty
* fixing missing direct channels display name
* UI/UX feedback
* fix WS channel viewed and mark as unread
* Remove duplicate emojis from reaction bar