Commit Graph

76 Commits

Author SHA1 Message Date
Christopher Poile
6e3b2c2bd9 fix reconnect state; correct new channel state (#6574) 2022-08-12 16:02:04 -04:00
Shaz MJ
ba5c49d9fc [Gekidou] GroupTeams WebSocket Handling (#6529)
* Handles group websocket event

* Fetches data on error

* Handles GroupMember Add/Delete WS Event

* PR Feedback

* Handles GroupTeam add/delete event

* Handles Group Channel associated websocket (#6530)

Co-authored-by: Avinash Lingaloo <avinashlng1080@gmail.com>
2022-08-05 16:06:19 +04:00
Christopher Poile
f61ea842af MM-45746 - Handle call_end ws event and '/call end' slash command (#6542) 2022-08-05 07:39:10 -04:00
Daniel Espino García
a0e1f2dbd6 Fix channel added websocket message (#6546) 2022-08-04 19:04:06 +02:00
Shaz MJ
fe053d96e7 [Gekidou] Handles GroupMember Add/Delete WS Event (#6525)
* Handles group websocket event

* Fetches data on error

* Handles GroupMember Add/Delete WS Event

* PR Feedback
2022-08-02 11:13:35 +02:00
Shaz MJ
793b504b87 [Gekidou] Handle Group Received WebSocket Event (#6524)
* Handles group websocket event

* Fetches data on error
2022-08-01 17:42:49 -04:00
Christopher Poile
17dbfdcb99 MM-45745 - Calls channel info screen options (#6502)
* implement calls_channel_info; joinCall refactoring

* i18n

* Start/Join call as top button; movable copy channel link button

* MM-45971 - Calls v2 PR comments (#6514)

* don't clobber config if api req failed

* combine two loops into one

* update dependencies

* fetch user model on user connected

* fix state exports; spacing; unneeded field in ServerConfig type

* remove useless return in websocket handler

* constant sorting

* move microphone permission request to leave_and_join_alert

* ServerConfig -> ServerCallsConfig

* console.log -> logError

* ternary -> Platform.select

* merge conflicts

* add destructive options to OptionBox; require DismissChannelInfo fn

* add CopyLink option to quick actions list

* showSnackBar on link copied

* adjust quick_options_height

* Screens.Call

* fix CopyLink spacing

* fix observeUsersById, observe needed columns; fix JoinCallBanner mount

* optimized observables; bug fixes

* remove unneeded `return null`

* PR comments

* readable-stream -> 3.6.0

* merge conflicts

* PR comments
2022-07-29 11:10:32 -04:00
Daniel Espino García
bae5477b35 Graph QL POC (#6024)
* 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
2022-07-29 16:28:32 +02:00
Christopher Poile
5bb240dec8 MM-43300: Calls v2 first cut (#6475)
* Android and iOS requirements

* external types

* babel config for calls, package.json for calls dependencies

* state in rxJS; tests

* actions, client/rest, websocket events, constants

* webrtc connection logic

* calls components / screens

* handle peer destroyed gracefully

* PR comments

* remove ViewPropTypes from mocks; no need to ignore error in LogBox

* calls.d.ts -> calls.ts; i18-extract

* @app/products/calls -> @calls

* PR comments; test cleanup

* Revert "remove ViewPropTypes from mocks; no need to ignore error in LogBox"

This reverts commit f9bd171a54.

* working on typing withServerUrl

* added exportedForInternalUse instead of commenting "internal export"

* better switchToThread in call_screen

* i18n

* typed withServerUrl
2022-07-22 15:57:12 -04:00
Anurag Shivarathri
102789bbd9 [Gekidou MM-40089 MM-39318] CRT New Messages Line (#6489)
* New Messages Line + More Messages

* Misc

* Update app/actions/local/thread.ts

Co-authored-by: Avinash Lingaloo <avinashlng1080@gmail.com>

Co-authored-by: Avinash Lingaloo <avinashlng1080@gmail.com>
2022-07-22 17:28:14 +05:30
Kyriakos Z
b2d838d3da MM-37110: handle toggling of CRT feature (#6382)
* 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
2022-07-07 12:19:02 +02:00
Daniel Espino García
e481c07630 Fix at mention that triggers ephemeral message (#6458)
* Fix at mention that triggers ephemeral message

* Properly handle failed posts
2022-07-07 12:12:31 +02:00
Elias Nahum
75ed884e65 Add column last_fetched_at to MyChannel & Thread tables and the migration (#6433)
* 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>
2022-06-29 13:28:50 -04:00
Daniel Espino García
d2e2cf3ec1 Substitute all console.x by an appropiate log util function (#6427)
* Substitute all console.x by an appropiate log util function

* Address feedback
2022-06-24 10:26:40 -04:00
Daniel Espino García
844f2c0393 Let ServerDatabases type hold undefined values (#6423)
* Let ServerDatabases type hold undefined values

* Avoid model.database
2022-06-22 17:51:28 -04:00
Elias Nahum
8795ca85b5 [Gekidou] cleanup fixes (#6376)
* Separate NavigationStore from EphemeralStore

* Prevent WS to mark channel as read while switching to the channel

* Fix mark channel as unread
2022-06-13 08:07:24 -04:00
Anurag Shivarathri
efd259a523 [Gekidou] Open CRT notifications (#6369)
* 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>
2022-06-10 17:27:34 -04:00
Elias Nahum
cfef5332c9 [Gekidou] handlers perf (#6365)
* 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
2022-06-09 13:09:54 -04:00
Elias Nahum
2f07b7afc8 [Gekidou] user profile (#6353)
* User profile

* Access User Profile from reaction list

* Fix threads participants list & open user profile on tap

* Extra bottom padding

* Profile long press tutorial

* Adjust heights

* Reduce label margin from 12 to 8
2022-06-06 11:27:25 -04:00
Elias Nahum
a61d65eb09 [Gekidou] pinned posts (#6336)
* Pinned messages

* Move isCRTEnabled query to be called earlier and only once

* Update Channel stats when post is (un)pinned

* Create svg module type definition

* Add missing localization strings

* feedback review
2022-06-03 09:27:45 -04:00
Elias Nahum
a0f25f0e3b [Gekidou] Channel Info screen (#6330)
* Channel Info screen

* Delete the channel & related data when archiving while viewing archived channels is off

* feedback review

* UX feedback

* Add missing isOptionItem prop
2022-06-02 16:09:12 -04:00
Krm
efeab53d0b [Gekiodu - MM-44156] Channel ordering is different between web and mobile (#6304)
* new approach added queries for sorting channels

* crt reply checking added for post remote actions

* Fix category_body test

* crt replay check fixed for fetchPostsForChannel

* sortedchannels re-rendering fix

* Only fetch Direct channels if there are more/less

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2022-05-26 14:23:40 -04:00
Elias Nahum
a4e4e18445 [Gekidou] perf improvement & fix upgrade path (#6302)
* 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
2022-05-24 08:45:17 -04:00
Elias Nahum
4573732fd2 [Gekidou] channel quick actions (#6288)
* Add hitSlop to navigation header right buttons

* Fix channel_item info muted style

* Fix team switch when global threads

* Wrap WS channel events in try/catch

* Group Box component and Animated Group Box

* SlideUpPanelItem style

* Fix return value of setCurrentTeamAndChannelId

* Add observeChannelSettings and include channel settings in prepareDeleteChannel

* update OPTIONS_HEIGHT reference in find channels quick options

* Fix DM limit in channel list

* Fix category header style and translate default categories

* Add snackbar for unmute/favorite/unfavorite

* Add toggleFavoriteChannel remote action

* Add makeDirectChannelVisible remote action

* Use makeDirectChannelVisible in switchToChannelById and update toggleMuteChannel snackbar

* Add channel actions common components

* Update channel intro to use channel action common components

* Rename ChannelDetails screen to ChannelInfo

* Add channel quick actions

* Update localization strings

* Fix addChannelToDefaultCategory

* Leave channel

* Add localization strings

* Fix snackBar screen event listener

* Feedback review
2022-05-19 14:30:55 -04:00
Daniel Espino García
0464dd34ee Unify entry functions (#6231)
* 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
2022-05-19 11:24:59 +02:00
Daniel Espino García
a4674915c1 Better handle go to location (#6262)
* Better handle go to location

* Improve server check
2022-05-19 09:06:31 +02:00
Avinash Lingaloo
e81e98aa02 MM-42484 - Gekidou - Update DM/GM display name when teammate name display changes (#6254)
* channels update on teamMate display name change

* code clean up

* fixes DM and GM display name

* code clean up

* ts  fix

* removed extra await

* implemented some guard conditions

* code clean up

* config & license ws events - wip

* tested config change on local server

* adding license to the ws event

* fix display name

* fix display name

* replace map + filter with a reduce

* rename function name

* adding missing await

* update following review

* moved differsFromLocalNameFormat to /queries/preference

* fix gm/dm

* Revert "fix gm/dm"

This reverts commit 92905c707d.

* added guard clause on DM channel type

* refactor function signature
2022-05-13 19:12:54 +04:00
Daniel Espino García
75d1c9d228 Try to remove as many as as possible (#6200)
* Try to remove as many ` as ` as possible

* Fix imports
2022-05-12 15:46:11 +02:00
Anurag Shivarathri
1760b75dbf [Gekidou] [MM-43973] Thread footer for recent mentions (#6225)
* Displaying thread footer

* Participants can be empty

* Update thread.ts
2022-05-05 21:03:09 +05:30
Elias Nahum
f973ac8016 [Gekidou] Find channels (remote) (#6203)
* Display local results

* Fix queryPreferencesByCategoryAndName to observeWithColumns value

* Find channels (remote)

* ux feedback review

* dev review

* dev review 2

* Fetch deleted channels from other teams
2022-05-03 14:29:37 -04:00
Daniel Espino García
02b4295464 [Gekidou] [MM-39936] Add Select Team Screen (#6180)
* Add Select Team Screen

* Fixes for iPhone and iPad

* Fix tests

* Address feedback

* Fix tests

* Theme illustration

* Address feedback and fixes

* Remove database warnings by avoiding recalculations on repeated events.

* Address feedback

* Remove unneeded catch

Co-authored-by: Daniel Espino <danielespino@MacBook-Pro-de-Daniel.local>
2022-05-03 17:22:21 +02:00
Daniel Espino García
e047106bac Add AppsForm and Interactive Dialogs (#6142)
* Add AppsForm and Interactive Dialogs

* Add the missing plumbing for Interactive Dialogs and minor fixes

* Remove widgets subfolder

* Fix paths

* Address feedback

* Address feedback

* i18n extract

* Only set the dialog if we are in the same server
2022-04-28 18:26:21 +02:00
Anurag Shivarathri
dad63b87bb Gekidou CRT - Global threads screen (#6140)
* 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>
2022-04-28 09:01:36 -04:00
Daniel Espino García
14d6d53cc9 [Gekidou] Move managers (#6171)
* Move managers to their own folder

* Fix lint

* Fix unit tests

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2022-04-16 09:44:11 -04:00
Daniel Espino García
7a90f2d4a8 Performance improvements in the area of home and channel switch. (#6174)
* Performance improvements

* Revert hidden DM/GMs changes

* Minor fixes related to the revert

* Add observeWithColumns missed in merge
2022-04-14 18:56:48 -04:00
Daniel Espino García
667716fd0f Fix an issue where receiving a DM from a new user does not appear in the channel list (#6175) 2022-04-13 13:19:09 -04:00
Shaz MJ
10ea42c812 Active State for selected Channel (#6163)
* 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
2022-04-13 09:36:47 -04:00
Kyriakos Z
477c7cf1bf MM-40093 [Gekidou]: adds remote action to sync threads (#6135)
* 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
2022-04-12 15:03:05 +03:00
Kyriakos Z
df3ef72a0a [Gekidou CRT] thread mention counts (#6126)
* Sets values on my_channel according to CRT

* Team counts with regard to CRT

* Fixes myChannel.is_unread with regard to CRT

* Include DM/GMs for thread counts on demand

* Incorporate thread mention counts in server/channel

* Channel updates in regard to CRT
2022-04-12 13:27:40 +03:00
Daniel Espino García
26b3fbf87f Fix add DM screen and some other database related issues (#6144)
* 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
2022-04-08 23:10:08 -04:00
Elias Nahum
0950dbd21b [Gekidou] operator handlers improvements (#6136)
* Allow database operator handlers to deal with empty or undefined input values

* Prevent known handler warnings

* Update app/database/operator/server_data_operator/handlers/post.ts

Co-authored-by: Avinash Lingaloo <avinashlng1080@gmail.com>

* feedback review

* remove unnecessary !

Co-authored-by: Avinash Lingaloo <avinashlng1080@gmail.com>
2022-04-07 09:17:57 -04:00
Elias Nahum
28b86e9c24 Use delta for mark as unread (#6127) 2022-04-05 09:00:45 -04:00
Elias Nahum
2621d921d6 [Gekidou] Performance & UI fixes (#6122)
* 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
2022-04-04 17:09:26 -04:00
Jason Frerich
137ba9d191 [Gekidou MM-39728] - Websocket Events - Channels (#6038)
* wip checkin

* wip checkin because my system is messed up again

* correct the add user and remove user from channel functions. THe user and channel ids sometimes come from the broudcast field, not the data object

* remove old comments

* remove old comments

* remove old comments

* add back in unarchive handler. handleChannelUpdateEvent will also update the deleteAt value for a channel, but does not get called when unarchive from the channel view, only through the system console.

* nit remove empty line

* wip

* wip

* remove handleChannelConvertedEvent

* remove handleChannelDirectAddedEvent

* wip

* wip

* wip

* Fix websockets events

* Address feedback

* Ensure categories and some refactoring

* Self review fixes

* Fix category creation bug

* Address feedback and minor improvements

* Address feedback

* Fix lint

Co-authored-by: Daniel Espino García <larkox@gmail.com>
2022-04-04 14:25:42 -04:00
Anurag Shivarathri
8d6fc41dd5 [Gekidou MM-41093] CRT - WS Events, Actions, Queries, Thread Follow, Post Query (#6075)
* WS Events, Actions, Queries, Thread Follow, Post Query

* i18n changes

* Misc

* Only unread threads are marked as read

* Mark threads from WS even as visible in Global threads

* Merge fixes

* Update thread_post_list.tsx

* Merge fix

* Feedback fix

* Make teamId in handleThreads optional for unfollowed threads

* Removed unwated type and return

* Review changes

* Removing unused model

* Merge fix

* Misc fixes

* Following button query change
2022-04-04 19:55:13 +05:30
Elias Nahum
7f9cd287fe feedback review 2022-03-23 11:35:37 -03:00
Daniel Espino García
7c642b1e80 [Gekidou] Extract common observers to queries (#5984)
* Extract common observers to queries

* Separate also queries and more agressive refactoring

* Use query to avoid throws from findAndObserve

* Fix minor error

* Address feedback

* Address feedback

* Address feedback

* Fix model types

* Address feedback
2022-03-23 09:19:29 -03:00
Daniel Espino García
ff952ced2a Fix user added to channel event not correctly getting the channel id (#6053)
* Fix user added to channel event not correctly getting the channel id

* Fix several other websocket problems
2022-03-15 19:55:09 +01:00
Kyriakos Z
2645f7e66e MM-39710: saved posts screen and DB (#6020)
* MM-39710: saved posts screen and DB

- Adds ids of saved posts to the systems table, as we do with recent
mentions.
- Adds a new remote action to fetch saved posts (getFlaggedPosts).
- Adds a new screen to display those in a mobile.
- Displays saved posts in the tablet view next to profile card.

* Uses Preferences instead of System table

Renames to saved posts wherever possible

* Adds text to localization file

* Fixes fetching/saving saved posts

* Refactor mini post to components folder

* Fixes hooks dependencies according to review

* Removes unnecessary 'withObservables'

* Small refactor

* Satisfies linter

* Adds empty state

And fixes empty state icon to be theme sensitive.
Both recent_mentions and saved_posts.

* Fixes empty screen's alignment

* Add missing preference

* add missing translation strings

* remove unused database type definition

* Fetch newly saved post

* Fix return type for client.getSavedPosts

* Remove usage of lodash compose

* Rename get remote actions to fetch

* Include close button for savedPost modal

* fix tablet view for SavePosts and use lottie loading indicator

* Render post with content for save posts and recent mentions

* post list viewable items type definition

* Add layout width to post content for saved post screen

* Use PostWithChannel and viewableItems for saved posts and recent mentions

* Layout margin of 20

* openGraphImage margin

* Fix openGraphImage display

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2022-03-12 16:40:24 -03:00
Daniel Espino García
b27ebce2e0 [Gekidou] [MM-39718] Add Create DM screen (#5900)
* Add Create DM screen

* Add channel toggle and minor improvements

* Fix tests and apply new UI

* Address feedback UX feedback and fix missing menu item by adding another item height

* Add display name to channels and piggyback improvement on fetchUserByIds action and translations fix

* Address feedback

* Fix hardcoded colors

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2022-03-11 12:57:31 -03:00