Commit Graph

74 Commits

Author SHA1 Message Date
Elias Nahum
f19c3b3b6c Enable Hermes on iOS (#5800) 2021-11-03 11:14:00 -03:00
Elias Nahum
9372bb7c04 [Gekidou] Unique servers (#5798)
* Disallow the same server from being added the twice

* Add Default Server name config & EMM managed config

* Update android/app/src/main/res/values/strings.xml

Co-authored-by: Jason Frerich <jason.frerich@mattermost.com>

Co-authored-by: Jason Frerich <jason.frerich@mattermost.com>
2021-11-03 11:12:52 -03:00
Jason Frerich
a5254992d3 Draft - Add Server Screen Gekidou Updates (#5663)
* initial checkin

* all text is added

* add fonts

* wip

* get fonts from differnt site suggestion from matt

* use actual apostrophe

* add react-native-paper dependency

* wip

* add project info for metropolis fonts

* correct the display name help text alignment with stretch
use paper theme to color and make the the placeholder opaque
remove placeholder prop because spec wants the box to be empty on focus

* fix Metropolis font reference

* Add more styling.  Clean up code later

* input box text theme color

* separate padding for two textinput boxes
share the input theme

* Use ActivityIndicator from react-native-paper

* wrap formatText components in a view so they scroll up inline with the
text inputs and button

* clean up styles section. no empty lines and no comments

* Use Colors library instead of harcoding #FFFFFF

* Move error message into helper directly under the server url input box

* need to handle the error so it can be presented in the modal

* set state for button is disabled or not
reset errors before every connect attempt

* when url is not valid show the error message and disable the connect
button until some text in display or the url input changes

* s/generic/default/

* group formatted messages together

* Add icon to the error message
fix clipped helper messages

* when urlError is not '', make the input border red
after connecting creates an error, typing in the input boxes will
   * enable the connect button
   * reset the error messages
   * change outline from red to blue

* After connecting and the server url has an error, allow the user to
click the display input and keep the url border red.  The only time the
red border and error reset is when the user types in that field again

* remove duplicate button component. only get the prop values and
construct after all values defined

* use correct icon and add spacing between icon and text

* fix styling for Android
New styling from figma

* initial add of background svg.  RHS is off a bit

* sync with gekidou changes

* sync with gekidou

* sync with gekidou

* sync with gekidou

* sync with gekidou

* use new FloatingTextInput component

* Added widgets/text_settings

* wip

* wip

* Update index.tsx

* work in progress

* fix text settings component

* fix text settings component

* crash fix

* code clean up

* Update index.tsx

* Fix testSettings

* Wrap with View so the text moves with the text inputs when keyboard
appears

* update styling
when user starts typing in server url after a failed connect, dismiss
the error

* use utils/buttonStyles

* leave as it was to minimize irrelevant PR diffs

* nit

* Align all components
Add vertical margin to styles
Add subcontainer and container props to text_setting component
Use FormattedText for choosing a display name text instead of
text_setting helper text

* revert midnight change

* reset the connecing error when a user starts modifying the server url

* formatting
remove svg
repalce <Text> with <FormattedText>

* fix lint

* remove svg file

* Listening for appearance to set the theme for non connected screens

* Pass the theme as a prop for TextSettings

* Fix Server screen layout and pass the displayName for DB creation

* Tablet layout

* Persist keyboard on tap

* Change position & opacity for app version

* added background SVG

* Fix non theme control screens status bar color

* Split Server screen into smaller components

* fixed svg background layout for tablet

* Bring back form & header and remove some extra background color and styles

* Remove duplicate font reference in Info.plist

* Final UI tweaks

* Fix error display on url field

* margin bottom to app version

* Add ClientError utility to extract error

* update snapshot

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
Co-authored-by: Avinash Lingaloo <avinashlng1080@gmail.com>
Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>
2021-10-29 19:14:55 -03:00
Elias Nahum
c8d7d4c528 Upgrade deps (#5796) 2021-10-29 14:38:20 -03:00
Elias Nahum
fbd8b92194 [Gekidou] Avoid technical debt (#5795)
* Apply Status bar color

* useIsTablet hook instead of useSplitView in combination with the constant

* Constants clean up
2021-10-28 10:15:17 -03:00
Elias Nahum
f62822fe52 Adjust the selected team border radius 2021-10-27 18:11:10 -03:00
Elias Nahum
790b1beb22 [Gekidou] push notifications (#5779)
* Push notifications entry point

* Process android notification natively only if RN is not initialized

* Database changes to store local channel viewed_at

* EphemeralStore wait until screen removed

* Move schedule session notification to utility

* Fix channel remote & local actions + added actions for markChannelAsViewed & fetchMyChannel

* Add fetchMyTeam remote action

* Add dismissAllModalsAndPopToScreen to navigation

* Improve post list component & add app state to re-trigger queries

* Improve WS implementation

* Handle push notification events

* Fix postsInChannel since handler

* Handle in-app notifications

* Post list to listen to column changes

* Track selected bottom tab in ephemeral store

* add useIsTablet hook

* in-app notifications on tablets
2021-10-27 17:53:11 -03:00
Elias Nahum
c01bcb7559 Generic badge & fixes to home tab & team sidebar items (#5794) 2021-10-27 17:50:41 -03:00
Elias Nahum
458a006cde Properly sync teams (#5793) 2021-10-26 20:48:09 -03:00
Avinash Lingaloo
884dcb1789 Floating text input label (#5775)
* Added react-native-reanimated-text-input

* Fix TS

* removed react-native-reanimated-text-input

* Renamed as per convention

* Update index.tsx

* Review corrections

* Update Compass icon font

* Update FloatingTextInput to follow theme

* Fix android vertical alignment

Co-authored-by: Avinash Lingaloo <>
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2021-10-25 18:29:56 -03:00
Daniel Espino García
d1e0c99c3d Gekidou websockets (#5671)
* Adapt websocket client

* Add Websocket Manager

* Address feedback

* Start websockets on init and login, and invalidate on logout

* Add temporal logging and bug fixing

* Working WS

* Add reconnect actions and periodic updates

* Address feedback

* Add missing change

* Several improvements on websocket reconnect and channel handling

* fix gekidou package-lock.json

* update Podfile.lock

* Address feedback

* Address feedback

* Address feedback

* Fix update channel delete at

* Catch errors on batchRecords

* Update app/queries/servers/channel.ts

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

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2021-10-19 19:16:10 +02:00
Daniel Espino García
e6f9b0e258 Gekidou teamsidebar (#5718) 2021-10-15 04:55:02 -03:00
Elias Nahum
46470e0b5d Fix channel title 2021-10-13 16:11:11 -03:00
Elias Nahum
ecd80fcd4f Add channel model property for shared channels (#5749) 2021-10-13 14:28:09 -03:00
Elias Nahum
fcc6394502 Gekidou fixes (#5748)
* Use Intl based on user locale

* set PROMPT_IN_APP_PIN_CODE_AFTER to wait for 5 mins

* Observables Improvements

* Fix iPad external keyboard listener

* file model description
2021-10-13 14:13:39 -03:00
Avinash Lingaloo
7f91a6a78a Gekidou - Account Screen (#5708)
* Added DrawerItem component

* WIP Account Screen

* Added react-native-paper

* Added StatusLabel Component

* Extracted i18n

* TS fix DrawerItem component

* WIP Account Screen

* Added server name label under log out

* Updated translation

* WIP

* Fixes the Offline text style

* Added Metropolis fonts

* WIP

* Typo clean up

* WIP

* WIP

* WIP

* Added server display name

* Writing OpenSans properly

* WIP

* WIP

* Added OptionsModal

* Opening OptionsModal

* Added translation keys

* Writes status to local db

* Fix missing translation

* Fix OptionModal not dismissing

* Pushing status to server

* Refactored

* Added CustomStatusExpiry component

* Added sub components

* Added CustomLabel

* CustomStatus WIP

* Added Custom Status screen WIP

* WIP - unsetCustomStatus and CustomStatus constant

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* Retrieving RecentCustomStatuses from Preferences table

* WIP

* WIP

* WIP

* Added Clear After Modal

* WIP - Transations

* WIP

* Done with showing modal cst

* wip

* Clear After Modal - DONE

* fix

* Added missing API calls

* wip

* Causing screen refresh

* wip

* WIP

* WIP

* WIP

* Code clean up

* Added OOO alert box

* Refactored Options-Item

* Refactored OptionsModalList component

* Opening 'status' in BottomSheet instead of OptionsModal

* AddReaction screen - WIP

* Add Reaction screen - WIP

* Added EmojiPickerRow

* Added @components/emoji_picker - WIP

* Emoji Picker - WIP

* WIP

* WIP

* WIP

* SectionList - WIP

* Installed react-native-section_list_get_item_layout

* Adding API calls - WIP

* WIP

* Search Bar component - WIP

* WIP

* WIP

* WIP

* Rendering Emoticons now - have to tackle some fixmes

* Code clean up

* Code clean up - WIP

* Code clean up

* WIP

* Major clean up

* wip

* WIP

* Fix rendering issue with SectionIcons and SearchBar

* Tackled the CustomEmojiPage

* Code clean up

* WIP

* Done with loading User Profiles for Custom Emoji

* Code clean up

* Code Clean up

* Fix screen Account

* Added missing sql file for IOS Pod

* Updated Podfile.lock

* Using queryConfig instead of queryCommonSystemValues

* Fix - Custom status

* Fix - Custom Status - Error

* Fix - Clear Pass Status - WIP

* Fix - Custom Status Clear

* Need to fix CST clear

* WIP

* Status clear - working

* Using catchError operator

* remove unnecessary prop

* Status  BottomSheet now has colored indicators

* Added KeyboardTrackingView from 'react-native-keyboard-tracking-view'

* Code clean up

* WIP

* code clean up

* Added a safety check

* Fix - Display suggestions

* Code clean up based on PR Review

* Code clean up

* Code clean up

* Code clean up

* Corrections

* Fix tsc

* TS fix

* Removed unnecessary prop

* Fix SearchBar Ts

* Updated tests

* Delete search_bar.test.js.snap

* Merge branch 'gekidou' into gekidou_account_screen

* Revert "Merge branch 'gekidou' into gekidou_account_screen"

This reverts commit 5defc31321.

* Fix fonts

* Refactor home account screen

* fix theme provider

* refactor bottom sheet

* remove paper provider

* update drawer item snapshots

* Remove options modal screen

* remove react-native-ui-lib dependency

* Refactor & fix custom status & navigation (including tablet)

* Refactor emoji picker

Co-authored-by: Avinash Lingaloo <>
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2021-10-12 19:24:24 +04:00
Elias Nahum
0807a20946 fixed OpenSans, added Metropolis fonts & modified post text styles (#5728) 2021-10-07 17:20:39 -03:00
Elias Nahum
7f1f7110da Exclude initial channel when loading other unread channels post 2021-10-06 20:35:01 -03:00
Elias Nahum
0e4064c758 Enable Adapter JSI 2021-10-04 15:46:04 -03:00
Elias Nahum
907111b45a unify defer entry actions 2021-10-04 15:45:37 -03:00
Elias Nahum
a31a361fca [Gekidou] Upgrade to RN 0.66.0 (#5711)
* Upgrade to RN 0.66.0

* Fix Remove existing credentials on first run

* Fix TS for unusued expect-error
2021-10-03 14:19:16 -03:00
Elias Nahum
2f8160d360 Remove team unreads and rely on channel member instead (#5710) 2021-10-01 16:07:57 -03:00
Elias Nahum
e2ecf2f0f7 Entry point when upgrading from v1 (#5707) 2021-10-01 09:56:28 +04:00
Miguel Alatzar
1d02d6e1e5 [Gekidou] app entry (#5609)
* Add channelEntry action

* Refactor appEntry

* Lint fix

* Some duplication removed

* Refactor app entry

* Refactor app entry and add prepareDestroyPermanentlyWithAssociations

* Handle team deletion

* Sync channels

* Lint fix

* Address review comments, take 1

* Address review comments, take 2

* Set initial channel ID to empty

* Fix types

* sort imports

* clean up app entry point

* Fix post header & highlight reply bar

* Style channel list text

* iOS Pods sync

* Rename goToChannel to goToHome

* Sync ios Gemfile.lock

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2021-09-29 12:38:05 -03:00
Elias Nahum
4e0688aef5 [Gekidou] update dependencies (#5691) 2021-09-23 14:44:50 -03:00
Elias Nahum
a9939ec230 Increase post list initial and batch items to render 2021-09-20 18:01:04 -03:00
Elias Nahum
2c9b74387e Fix Markdown image layout on rotation 2021-09-20 18:00:24 -03:00
Daniel Espino García
1c26f14fdb Add import order lint rules (#5672)
* Add import order lint rules

* Address feedback

* Revert change
2021-09-13 10:18:03 +02:00
Elias Nahum
5700ce7c86 [Gekidou] post component tree and partial postList (#5637) 2021-09-06 08:22:55 -03:00
Elias Nahum
0139773c31 Fix logout on Android 2021-09-04 13:15:54 -04:00
Miguel Alatzar
06dc849c97 iOS - Fetch and store data on push notification receipt (#5645)
* Gekidou package and postNotificationReceipt

* Add back UploadAttachments functions

* ios - Fetch and store Posts

* ios - handle PostsInChannel

* Use queue and group for fetchAndStoreDataForPushNotification

* Handle channel and channel membership

* Handle post props

* Handle reactions

* Handle files

* Handle emojis

* Handle images

* Use notification data

* Credential fixes

* Lint fixes

* Fixes

* Call content handler after requests and db writes

* Handle posts in thread

* Remove comment
2021-08-31 15:43:57 -07:00
Avinash Lingaloo
2c193f2133 [GEKIDOU] Bottom Tab Navigation (#5600)
* Started with bottom tabs layout

* code clean up

* Added animation to bottom tab bar

* returns null if not focused

* code clean up

* Updating layout

* Updated modal screen

* Updated animation

* Updated animation

* Fix SafeArea on Home

* A few clean ups

* code clean up

* Fix issue with navigation on Android

* Use React Navigation in combination of RNN & create bottom tab bar

* Set tab bar line separator height to 0.5

* Fix snapshot tests

* Add home tab mention badge

* Apply new themes

* Home Tab badge

* Remove unused constants

Co-authored-by: Avinash Lingaloo <>
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2021-08-31 14:58:53 -04:00
Miguel Alatzar
c3cedc2901 Fix where clause (#5646) 2021-08-26 21:29:09 -04:00
Daniel Espino García
d02d1922c6 Remove duplicated code on cleanUrlForLogging (#5642) 2021-08-24 08:16:38 -04:00
Elias Nahum
65c3e05fd8 [Gekidou] groups (#5593)
* Rename groups in channel/team to group channel/team

* Redefine groups schema

* Groups action and operator

* Add group at mentions

* fix uni test

* Update types/database/models/servers/group.d.ts

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

Co-authored-by: Avinash Lingaloo <avinashlng1080@gmail.com>
2021-08-05 19:03:46 +04:00
Avinash Lingaloo
0ef1dd44ea Gekidou about screen (#5591)
* Added about screen

* Remove TS error

* Needs clean up

* Testing login flow

* Converted About screen to functional component

* Improvements

* Sort imports

* Prevents double tapping

* Apply suggestions from code review

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

* Code clean up

* Adding translation keys

* Added some keys

* Updated AppVersion component

* Missed translation key

Co-authored-by: Avinash Lingaloo <>
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2021-08-04 21:48:36 -07:00
Elias Nahum
7c5b3a1574 [Gekidou] Allow multiple posts in thread and posts in channel for a specific root or channel (#5594)
* Allow multiple posts in thread and posts in channel for a specific root or channel

* Apply suggestions from code review

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

Co-authored-by: Miguel Alatzar <migbot@users.noreply.github.com>
2021-08-04 15:43:25 -04:00
Elias Nahum
733b10377b [Gekidou] fixes (#5590)
* fix android authorized network requests

* Use default theme if no specific theme for team

* Avoid app from crashing if no team or channel is selected

* Apply suggestions from code review

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

Co-authored-by: Miguel Alatzar <migbot@users.noreply.github.com>
2021-08-03 17:01:45 -07:00
Avinash Lingaloo
e8ce78f39d MM-36721 - [GEKIDOU] Porting Markdown components (#5586)
* Started with Channel Post List

* Added markdown hashtag

* Added TouchableWithFeedback component

* Added utils/bottom_sheet

* Removed BottomSheet in favor of future SlideUpPanel

* Added markdown_block_quote

* Added markdown_list_item

* Added markdown_list

* Added MarkDownTableCell component

* Markdown_table - in progress - need to verify TS

* Added markdown_table

* Update Podfile.lock

* Added deep_linking constant

* Added utils/draft

* Update config to include ExperimentalNormalizeMarkdownLinks

* Added markdown_link

* Added markdown_table_row

* Added ProgressiveImage and RetriableImage components and images utils

* Converted Retriable component to functional component

* Added type definition for commonmark

* Continuing with markdown TS

* Markdown - Typing props [ in progress ]

* Fix boolean flag with mardown block quote

* Adding observable config to markdown_link

* TS Fixes [ in progress ]

* TS fixes

* TS fixes - TextStyles

* Update markdown.tsx

* TS fixes on markdown

* TS Fixes - AtMention component

* AtMention [ IN PROGRESS ]

* Add markdown support

* Fix emoji and jumboEmoji on iOS

* Fix handleMyTeam operator

* Fix navigation style based on theme

* Fix iOS MattermostManaged deleteDatabse return error type

* wrap setNavigationStackStyles under a requestAnimationFrame

* Add preventDoubleTap to channel mention

* Increase double tap to 750ms

* Fix handleReceivedPostsInChannel chunk query

* Set initial navigation theme

* Swizzle FastImage on iOS

* fix preventDoubleTap test

Co-authored-by: Avinash Lingaloo <>
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2021-08-02 20:30:17 +04:00
Elias Nahum
8d2bd32897 [Gekidou] Update dependencies (#5581)
* Update detox deps

* Push notifications (android & launcher)

* Update dependencies
2021-08-01 21:09:19 -04:00
Elias Nahum
c452ef8038 [Gekidou] Login entry point (#5568)
* Login entry point

* feedback review

* sort imports

* Fix model relations

* Handle when no current team or current channel has been selected

* Fix MFA unit test

* update prepareCommonSystemValues arguments
2021-07-26 12:03:43 +04:00
Avinash Lingaloo
64c11580fc MM-36721 [GEKIDOU] Porting Channel Nav Bar (#5550)
* MM_36721 : Added testscript for AppVersion component + Corrected imported Type definition

* Added CompassIcon component

* Adding TextProps to FormattedText component

* Added status bar component

* Added User status component

* Added ProfilePicture, did_update hook and sorted imports

* Added ChannelIcon component

* Added ChannelTitle component

* Added Channel Nav Bar component

* Added channel screen

* Added withSafeAreaInsets HOC and Added font compassIcon to Xcode

* Fix Android crashes as it is looking for MainSidebar and SettingsSidebar

* Revert "Fix Android crashes as it is looking for MainSidebar and SettingsSidebar"

This reverts commit 62ea11ae69.

* Channel Icon clean up

* Updated assets/compass-icons files

* Updated channel title component

* ProfilePicture - Code clean up

* UserStatus component - cleaned

* Channel screen fix

* Fix TS issue

* Update index.tsx

* Removed ProfilePicture component

To be added when needed

* Removed UserStatus component

* Added IS_LANDSCAPE constant

* Code review correction

* Fix ts issue

* Added channel.displayName to reinforce security for findAndObserve on potential null teammate profile

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

* Fix observation on array vs single element

* Refactored ChannelTitle component

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

* Refactored ChannelGuestLabel

* Refactored ChannelDisplayName

* ChannelTitle cleaned up

* Fix roles check

* Removing unused user utils

* Minor clean up

* Fix TS issue

* Code Refactored.

* Fix render bug in channel_display_name

* Added logout button

* refactored code

Co-authored-by: Avinash Lingaloo <>
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2021-07-22 13:41:07 -04:00
Elias Nahum
324dbbd054 [Gekidou] fix database schema and models (#5553)
* fix database schema and models

* fix types
2021-07-20 23:24:42 +04:00
Avinash Lingaloo
bd0f22fcd1 [Gekidou] Awaiting client creation (#5556)
* Awaiting client creation

* Update app/init/network_manager.ts

Co-authored-by: Avinash Lingaloo <>
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2021-07-20 12:04:35 -04:00
Elias Nahum
801c954673 hasPermission role utility (#5554) 2021-07-20 09:58:10 -04:00
Elias Nahum
8cd127a223 [Gekidou] Typings & PostMetadata structure (#5542)
* Typings & PostMetadata structure

* comment out unused code

* Remove duplicate interface

* Fix getPreferenceAsBool defaultValue
2021-07-15 11:49:02 -04:00
Elias Nahum
2dc37f1c92 feat: server_url and theme context (#5540) 2021-07-14 08:12:49 -04:00
Elias Nahum
c64277bdbf Gekidou Update deps (#5530) 2021-07-11 07:52:44 -04:00
Miguel Alatzar
134c4a49c5 Integrate react-native-network-client (#5499)
* fix: handle NSMutableData

* feat: integrate react-native-network-client

* fix: typos

* fix: semicolon

* fix: rename to urlVersion

* fix: add returnDataOnly arg

* fix: configure network client

* fix: headers

* fix: handling of serverVersion

* fix: rename requests to actions

* fix: action imports

* fix: no need to stringify body

* fix: sso flow

* fix: address PR feedback

* fix: invalidate client on logout

* fix: address PR feedback take 2

* fix: address PR feedback take 3

* fix: tsc issues

* fix: get csrf token during client creation

* fix: linter

* fix: invalidate client onLogout

* fix: event emitter

* fix: unit tests

* fix: apply linter fixes

* fix lint

* Modify actions to add / update database values

* Rename clien4.d.ts to client.d.ts

* fix empty & missing translations

* cleanup api client

* Cleanup init & squash some TODO's

* Emit certificate errors in NetworkManager

* cleanup user actions

* Fix NetworkManager invalidate client

* Invalidate client when server screen appears

* Update kotlin to 1.4.30 required by network-client

* patch react-native-keychain to remove cached credential

* update react-native-network-client

* Use app.db instead of default.db in native code

* fix use of rnnc on Android

* Init PushNotifications

* No need to reset serverVersion on logout

* fix logout action

* fix deleteServerDatabase

* fix schedule expired session notification

* use safeParseJSON for db json fields

* unsubscribe when database component unmounts

* cleanup init

* session type

* pass launchprops to entire login flow

* Properly remove third party cookies after SSO login

* recreate network client if sso with redirect fails

* add missing launch props from server screen

* use query prefix for database queries

* Add temporary logout function to channel screen

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2021-07-06 11:16:35 -04:00
Avinash Lingaloo
7ff119fdc1 MM_36721 : Restructure Entities - Global & System (#5504) 2021-07-02 05:08:12 -04:00