Commit graph

2212 commits

Author SHA1 Message Date
Farhan Munshi
87802031f8
[MM-27274] Add and enforce convert public channel to private permission (#4756)
* Update permission check for convert public channel to private using new permission

* Better variable name
2020-09-03 13:41:25 -04:00
Miguel Alatzar
4f4be1b319
[MM-28245] Handle upload files only for top screen (#4761)
* Handle upload files only for top screen

* Return early in handlePasteFiles too
2020-09-01 12:36:51 -07:00
Elias Nahum
dce5675f05
Add word boundaries for (all | channel | here) (#4754)
* Add word boundaries for (all | channel | here)

* do not include underscore in channel wide mention highlight

* Regex suggested in code review

Co-authored-by: Harrison Healey <harrisonmhealey@gmail.com>

* Restyle at_mention suffix

Co-authored-by: Harrison Healey <harrisonmhealey@gmail.com>
2020-09-01 10:13:49 -07:00
Ashish Bhate
0210cc4761
[MM-15477][MM-27540][MM-27541]: fix search inconsistencies using in:@ / in: (#4704)
* [MM-15477] reorder search suggest results

* allow searching dms and gms with 'in:@'

* fix sort order for private before public

* faster than regex

* remove server minimum version prop and checks
2020-09-01 10:08:17 -07:00
Saturnino Abril
f05faaa949
E2E: Initial Detox setup for Mobile UI automation (#4535)
* initial Detox setup for mobile UI automation

* fix iOS allow permission on opening the app, add npm script to root folder, fix test when using longer site URL and add detox dependency to root for android build dependency

* remove detox proguardFile

* update packages and emulator

* change folder build on local and CI

* add test to post a message, ability to have test in isolation, server API commands, server config, dependency updates and update folder structure

* update snapshot

* update detox and do clean up

* update dependencies
2020-08-29 07:18:41 +08:00
Elias Nahum
1d0fc0510c
MM-25684 Highlight at-mention followed by a period (#4733)
* MM-25684 Highlight at-mention followed by a period

* Refactor at_mention to not highlight the period

* Do not add a link for invalid mentions

* Suggested review

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

Co-authored-by: Miguel Alatzar <migbot@users.noreply.github.com>
2020-08-28 12:59:01 -04:00
Elias Nahum
514ba57a8e
Show arrows in calendar (#4745)
* Show arrows in calendar

* Set calendar arrow size platform specific
2020-08-28 09:08:10 -07:00
Miguel Alatzar
288caf5e48
Store value before resetting text input (#4744) 2020-08-28 08:07:13 -04:00
Elias Nahum
7a0b5f982e
SSO: Rebuild the server url without query string and/or hash (#4731) 2020-08-27 08:36:57 -04:00
Farhan Munshi
c21b61bef2
[MM-27132] Handle group mention keys for group synced channels and teams (#4726)
* Handle group synced channel highlighting better

* Add tests

* Dont check if teamRoleFound if no teamId given for haveIChannelPermission

* Pass team id for channel mentions and group mentions checks

* Actually make a selector

* Check for falsey teamId instead of undefined

* Remove true &&

* Iterate over object values instead of for in
2020-08-26 10:00:32 -07:00
Miguel Alatzar
ffb5213b3a
Apply flex style only to empty results (#4728) 2020-08-25 15:31:47 -07:00
Elias Nahum
183eec0fad
Upgrade depdendencies (#4725)
* @react-navigation/*
* react-native-navigation
* react-native-calendars
* react-native-gesture-handler
* react-native-reanimated
* react-native-safe-area-context
* react-native-screens
* react-native-video
2020-08-25 15:34:18 -04:00
Hossein Ahmadian-Yazdi
2800de0922
oauth should not be able to edit full name (#4713) 2020-08-21 15:04:54 -04:00
Elias Nahum
ea4e21de93
Fix soft crash for edge emoji formatting (#4705) 2020-08-20 14:48:48 -04:00
Elias Nahum
3fce45f308
Upgrade react-native-fast-image, react-native-localize, react-native-vector-icons, react-native-video & dev dependencies (#4698) 2020-08-20 08:13:35 -07:00
Elias Nahum
c095d45330
MM-25832 Prevent permalink view from loading posts multiple times (#4696)
* Prevent permalink view from loading posts multiple times

* Android unhandled exception and initial loader indicator

* Fix permalink tests
2020-08-19 19:19:51 -04:00
Elias Nahum
55cfce9b89
MM-26329 Fix Channel info guests info in landscape (#4692)
* MM-26329 Fix Channel info guests info in landscape

* Channnel info refactor

* Rename canEditChannel to canEdit in connected component
2020-08-19 09:56:41 -04:00
Elias Nahum
033cdfc459
Allow swipe to close the sidebar after search is cancelled (#4688) 2020-08-18 14:00:00 -04:00
Martin Kraft
7f7e7e7554
MM-26436: Allows others' posts to be delete with just 'delete_others_posts' permission. (#4660) 2020-08-18 09:42:24 -04:00
Tsilavina Razafinirina
1bba361f89
MM-15323 autofill server Url when opening the app from deeplink (#10788) (#3852)
* MM-15323 autofill server Url when opening the app from deeplink (#10788)

* MM-15323 move autofill logic into select-server screen

* MM-15323 removes scheme on deeplink on select-server

* MM-15323 fix serverURL wrong prop name

* MM-15323: use getDerivedStateFromProps for setting state.url

* MM-15323 revert serverUrl and fix unchangeable deeplink

* MM-15323 fix props.serverUrl

* MM-15323 move props.serverUrl into getDerivedStateFromProps

* MM-15323 fix iOS deeplink issue

Co-authored-by: mattermod <mattermod@users.noreply.github.com>
2020-08-17 20:57:16 -04:00
Adrian Brown
169ed80243
[MM-22948] - Improve unread badge UI on the hamburger menu and team icons (#4635)
* updates to bage UI

* fixed spacing

* updated tests with npm test command

* fixed badge theme colors

* updated badge width to deal with larger mention counts

* updated tests

* fixed sizing issue

* fixed sizing issue & moved maxWidth to Badge layout

* added constants for badge maxWidth & adjusted badge position

* adjusted top position for badge on burger menu

* fixed last issue for max mentions positioning on burger menu badge
2020-08-17 12:46:49 -04:00
Elias Nahum
d1d7b7f9d6
MM-27711 Play YouTube video using expanded link (#4666) 2020-08-13 11:22:37 -07:00
Andre Vasconcelos
c57c2f4245
MM-23739 Empty search state for emoji picker (#4641)
* Returning a "no results for" default message

* Added styles & i18n text

* Updating icon to Octicons

* Replacing conditional render with ListEmptyComponent

* Running mmjstool sort

* Changing fontWeight, center layout, icon style
2020-08-13 09:11:49 -04:00
Rahim Rahman
18d1dcbc09
[MM-18765] remove lifecycle methods from settings (#4596) 2020-08-12 11:10:48 -04:00
Elias Nahum
b001c50fdc
MM-27607 Fix filter undefined when searching profiles (#4657) 2020-08-11 12:54:45 -04:00
Miguel Alatzar
304e3674c8
[MM-27139] Use file preview URL for images in post (#4656)
* Use file preview URL for images in post

* Use getFilePreviewUrl for gallery as well

* But use getFileUrl for GIFs in gallery
2020-08-11 12:34:38 -04:00
Kyle Watson
8b9ef0e849
[MM-12526] removed from channel alert (#4633)
* GH-13222: Shows an alert when you are removed from the channel that you are currently viewing

* GH-13222: Removed channel alert improved text

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
2020-08-10 20:34:04 -07:00
Miguel Alatzar
6305fd597d
Check for undefined channel (#4650) 2020-08-07 10:28:19 -04:00
Farhan Munshi
581e6ba12a
Ignore pagination when loading group data (#4644) 2020-08-07 09:31:26 -04:00
Elias Nahum
48f1875cf1
MM-23090 MM-26078 && MM-26876 Refactor post draft component (#4621)
* Refactor post draft component
Re-styled ReadOnly channels
Remove filename from upload error

* Update canSubmit based on file attachment changes

* Fix error message for max file size

* Fix select autocomplete values on iOS

* Style readonly and refactor accessory view for iOS

* Make PostDraft scrollViewNativeID prop not required

* Update ReadOnly to have a background with 0.40 opacity

* Update max file size error message

* Fix shift+enter with HW keyboard
2020-08-06 19:39:25 -04:00
Miguel Alatzar
1084d38ecb
[MM-27483] Fetch channel and member when loading from push notification (#4648)
* Fetch channel and member

* Uncancel if unreadCount increased from 0
2020-08-06 14:18:50 -07:00
Elias Nahum
4c8e2e8ea4
Fix edit post input text selection (#4647) 2020-08-06 13:46:23 -07:00
Elias Nahum
bba139726d
Cleanup fetch error & add details to sso (#4642) 2020-08-04 12:16:53 -04:00
Miguel Alatzar
1324bfd0bf
[MM-27294] Allow returning to Channel screen without resetting the navigation root (#4619)
* Add popDismissToChannel

* Use popToRoot + dismissAllModals

* Just dismissAllModals and popToRoot

* Revert unnecessary changes

* Close permalink on popToRoot

* Emit after dismissAllModals and popToRoot
2020-07-30 12:50:37 -07:00
Shota Gvinepadze
9f98b943e7
Fix autocomplete after cache delete (#4623) 2020-07-30 14:05:14 -04:00
Miguel Alatzar
d6a02a7c29
Define registerTypingAnimation in Thread screen (#4617) 2020-07-27 16:38:31 -07:00
Elias Nahum
95720c358d
Show the unsupported alert if server version is available (#4608)
* Show the unsupported alert if server version is available

* Check for supported server version when channel screen updates
2020-07-27 11:03:57 -04:00
Miguel Alatzar
7c827fe319
[MM-26489] No need to decode file URI on Android (#4610)
* Encode lone % chars

* No need to decode on Android
2020-07-24 11:42:00 -07:00
Elias Nahum
baca7bcf87
Fix the display the error message if ssoLogin action fails (#4609)
* Fix the display the error message if ssoLogin action fails

* Fix typo

* Remove token parameter
2020-07-23 16:42:43 -04:00
Elias Nahum
ac2a3a143a
MM-24895 Load team member and roles in the WebSocket event (#4603)
* Load team member and roles in the WebSocket event

* Split WebSocket actions and events into multiple files
2020-07-23 10:19:54 -07:00
Shota Gvinepadze
5465133c87
Add analytics to the command autocomplete (#4597)
* Add analytics to the command autocomplete

* Refactor analytics

* Refactor reset method
2020-07-23 19:57:42 +04:00
Miguel Alatzar
a5319eb74c
Don't set state.inputValue in constructor (#4606) 2020-07-23 08:54:58 -07:00
Elias Nahum
e7e0ca0d5c
Update camera-roll dependency (#4595) 2020-07-21 10:08:07 -04:00
Elias Nahum
a99e938e9c
MM-26817 Upgrade to RN 0.63 (#4566)
* Upgrade to RN 0.63

* Bump to RN 0.63.1

* Fix RN patch

* Use JSC Intl version

* Update android/app/build.gradle

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

* Fix Android external storage permission

* Fix emoji imageUrl when no server url is present

* Patch react-native-image-picker

* Allow to post attachment only messages

Co-authored-by: Miguel Alatzar <migbot@users.noreply.github.com>
2020-07-20 18:08:11 -04:00
Elias Nahum
26fa5a5e8f
Allow to post attachment only messages (#4590) 2020-07-20 17:53:54 -04:00
Shota Gvinepadze
c1eff885e7
[MM-25749] Implement non-cached autocomplete for mobile (#4579)
* Implement non-cached autocomplete for mobile

* Add partial caching support

* Fix whitespace

* Implement suggestion fetching using actions
2020-07-20 16:32:47 -04:00
Hossein Ahmadian-Yazdi
2840a42a00
[MM-23160][MM-24633][MM-24697] Highlight Group Names 2 (#4551)
* Initial Commit for Group Highlights

* Fix some stuff

* Get my groups

* update channel.js

* Address PR comments

* Address PR comments

* Update app/actions/views/channel.js

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

* update selector stuff

Co-authored-by: Miguel Alatzar <migbot@users.noreply.github.com>
2020-07-20 10:19:18 -04:00
Alex Dovenmuehle
5e221252a2
Rename actual_user_id to user_actual_id to be more consistent with the rest of MM telemetry. (#4520)
Co-authored-by: Alex Dovenmuehle <alex.dovenmuehle@mattermost.com>
2020-07-17 14:32:27 -04:00
Alex Dovenmuehle
ce283b546d
We can allow events to RudderStack since we don't have any rate limit restrictions. (#4521)
Co-authored-by: Alex Dovenmuehle <alex.dovenmuehle@mattermost.com>
2020-07-17 14:32:05 -04:00
Hossein Ahmadian-Yazdi
22d77689f7
[MM 23785] Show confirmation dialogue when mention groups 2 (#4548)
* Show Confirmation Dialogue WIP First Commit

Show Confirmation Dialogue WIP Second Commit

refactoring according to comments

refactor code according to comments

Fix linting problems

add i18n strings

Update regex pattern

add test and make fixes

fix message not submitting

Fix linting

fix index.js

fix conflicts

address PR comments

address PR comments

single dispatch

Address PR comments

add test

* Show Confirmation Dialogue WIP First Commit

Show Confirmation Dialogue WIP Second Commit

refactoring according to comments

refactor code according to comments

Fix linting problems

add i18n strings

Update regex pattern

add test and make fixes

fix message not submitting

Fix linting

fix index.js

fix conflicts

address PR comments

address PR comments

single dispatch

Address PR comments

add test

* make some changes

* fix test failures

* Address PR comments

* Update app/mm-redux/types/channels.ts

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

* Update app/mm-redux/selectors/entities/channels.ts

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

* Update app/mm-redux/selectors/entities/channels.test.js

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

* Update app/constants/autocomplete.js

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

* Address PR comments

* make group mention mapping its own function

* Address PR comments

* Update app/components/post_draft/post_draft.js

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

* Merge branch 'master' of https://github.com/mattermost/mattermost-mobile into MM-23785-ShowConfirmationDialogue-2

* Merge branch 'master' into MM-23785-ShowConfirmationDialogue-2

* Address MM-26987

* Retrieve group information on mount  RN: Group Mention confirmation prompt not shown on default channel load

* Update Regex to fix MM-26976

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2020-07-17 12:15:01 -04:00
Miguel Alatzar
7c41c83196
[MM-26855] Ensure More Messages button works as expected when app is launched from a push notification (#4569)
* Fix more messages button with push notif

* Don't cancel in showMoreText
2020-07-16 11:25:40 -04:00
Miguel Alatzar
81dd01ba2c
[MM-21155] Fix typing animations (#4373)
* Fix typing animations

* Remove animations on unmount

* Remove obsolete rn-placeholder mocks

* Apply thread animation for Android

* No need to call scrollToInitialIndexIfNeeded

* Fix snapshot test

* Add context
2020-07-15 14:28:02 -07:00
Elias Nahum
cf8a67a7a5
MM-26946 Handle invalid YouTube links (#4571)
* Handle invalid YouTube links

* Fallback to default thumbnail
2020-07-15 15:20:47 -04:00
Elias Nahum
0ad62ced40
MM-26744 in-prompt for end users if server is unsupported (#4565) 2020-07-15 11:17:55 -04:00
Elias Nahum
7db9c76a3f
MM-22029 clear the text input as soon as possible (#4536)
* MM-22029 clear the text input as soon as possible

* 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>
2020-07-14 18:58:11 -04:00
Elias Nahum
934dbfde17
Fix unhandled exception when current user is not defined (#4567) 2020-07-14 08:43:40 -07:00
shred86
c2be31c644
MM-26827 Add ShowFullName property (#4106)
* Add ShowFullName property

* Add ShowFullName property to first and last name
2020-07-14 10:04:21 -04:00
Elias Nahum
f79baea68f
MM-26749 Fix race condition when open from PN (#4556)
* MM-26749 Fix race condition when open from PN

* setStartFromNotification earlier

* Fix Android race condition when closing the app with the back button
2020-07-10 16:24:09 -04:00
Miguel Alatzar
f79f9dc697
[MM-23761] [MM-25766] Add "More Messages" button (#4526)
* Add more messages button

* Update existing tests

* Various fixes:

* Use viewAreaCoveragePercentThreshold over itemVisiblePercentThreshold
* Remove currentUserId check when adding New Message line to postIds and
  instead update the channel last viewed time when an own post is received

* Update snapshots

* Add showMoreMessagesButton prop and default to false

* Android fixes

* Add tests

* Localize more messages text

* Use FormattedText

* i18 extract

* Style fixes

* Account for network indicator

* Fix for failing tests

* Various fixes:

* Set the unreadMessageCount when POST_UNREAD_SUCCESS is dispatched
  with a positive deltaMsgs
* Hide the more messages button when the unread count decreases or
  when the new message line is removed shortly after loading the
  channel

* No need for POST_UNREAD_SUCCESS if we manually call onViewableItemsChanged

* Reset unread count if current channel on channel mount

* Animate text opacity

* Compare indeces to determine when scrolling has ended

* Fix opacity animation trigger

* try with scrolling to the last rendered item

* Add onScrollEndIndex

* Improve animations

* Don't track moreCount in state

* Use moreText over prevNewMessageLineIndex to determine firstPage

* Update intl message format and call cancel in componentDidUpdate when needed

* Fix intl format

* Remove opacity animation and countText

* Fix pressed not being reset

* No need to separate intl func

* Return after resetting

* Fix accidental removal of setState call

* Reset pressed when newLineMessageIndex changes

* Use default windowSize and lower POST_CHUNK_SIZE and delays

* Queue a cancel timer that gets cleared only when the newMessageLineIndex changes

* Define uncancel func

* Increase cancelTimer delay

* Subtract read posts from unread count and account for retry indicator

* Add retry bar indicator tests

* Use props.unreadCount

* Fix handling of newMessageLineIndex change

* Fix handling of newMessageLineIndex change take 2

* Fix handling of newMessageLineIndex change take 3

* Use 'native' TouchableWithFeedback with dark overlay

* Fix handling of manually unread

* Update chunk and window sizes

* Fix hsl

* Update text only when newMessageLineIndex/endIndex is reached

* Don't delay cancel if when no more unreads

* Fixes for when opening the app

* No need to process viewableItems when unreadCount is 0

* Remove line

* Don't show if unreadCount is 0

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2020-07-09 13:30:30 -07:00
Andre Vasconcelos
aa9e074a4c
MM-25956 Use new mobile modal style on Other User Profile (#4507)
* Changing other user profiles to be shown as modals

- Removed unnecessary props
- Updated user_profile unit tests
- Removed useless Platform.select call on channel_base

* Changed at_mention, channel_intro, and reaction_row profiles to modal
2020-07-09 08:34:42 +09:00
sowmiyamuthuraman
e754e861a2
Show toast when pressing back button on channel screen (#4384)
* MM-24328: Show Press again to exit toast when back button on Channel screeen is pressed.

* Fix feedbacks.

* Handle back press only for the Channel screen.

* MM-24328: Add a back press handler to share activity.

* Update the toast message as Press back again to exit.
2020-07-08 18:01:13 -04:00
Elias Nahum
8816953e43
MM-26699 Track open modals (#4539) 2020-07-08 10:43:20 -07:00
Hossein Ahmadian-Yazdi
b6eb3b9349
[MM-23158] Group Mentions & Invites - Display group mentions in suggestions list in the main channel textbox (#4118)
* groups in group mention

* fix sorting issues

* address PR comments

* fix tests

* Update groups.ts

* fix nock

* fix translations

* Adding test

* fix linting

* update redux functions

* Add license check

* adddress PR comments

* remove lodash import

* fix lint problems

* revert package.json changes

* Address PR comments

* address PR comments

* fix naming

* address PR comments

* address PR comments

* Address comments found in second PR

* getAllGroups updated

* address PR comments

* Update app/mm-redux/utils/group_utils.ts

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

* revert change

* remove unneeded actions

* Use correct server version

* MM-26631: Fix order of group displaying

* MM-26633: Fix group mentions not showing up in group constrained team

* MM-26636: Group mentions not updating when role updates

* MM-26637: Group name not updating right away

* Address PR comments

* TRY AND catch

* address PR comments

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2020-07-08 07:31:58 -04:00
Elias Nahum
6c9dc8a917
MM-26490 Dismiss keyboard when closing more dms / channels / create channel (#4538) 2020-07-07 17:37:52 -04:00
Elias Nahum
320ec7029c
MM-26722 check for switchKeyboardForCodeBlocks only on iOS 12+ (#4537) 2020-07-07 13:01:48 -04:00
Elias Nahum
13da814860
Fix LHS team icon on team switch (#4534) 2020-07-07 11:38:01 -04:00
bill2004158
287ed47d61
Update settings.js (#4517)
fix prop type
2020-07-06 10:49:14 -07:00
Elias Nahum
4ff9cd024a
Wait for hydration before app launch (#4523) 2020-07-02 16:03:45 -04:00
Elias Nahum
c22d5e69f6
MM-26667 Set EMM username as the initial loginId (#4519) 2020-07-02 14:27:19 -04:00
Miguel Alatzar
2ccf2dc716
[MM-26077] Emoji autocomplete fixes (#4512)
* Use 0 height over null and move fuse

* Deconstruct props

* Update app/components/autocomplete/emoji_suggestion/emoji_suggestion.js

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

* Update app/components/autocomplete/emoji_suggestion/emoji_suggestion.js

* Update snapshot

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2020-07-02 10:24:19 -07:00
Elias Nahum
92e7adc852
MM-26638 MM-26656 await when dismissing post options modal (#4518) 2020-07-02 11:59:14 -04:00
Miguel Alatzar
083deb9eab
Fix event typo (#4516) 2020-07-01 17:11:15 -07:00
Elias Nahum
3ee3f80345
MM-25967 Disable Shared Process Pool in WebView (#4511) 2020-07-01 16:06:59 -04:00
Elias Nahum
0f72bb34c2
MM-15719 Use metadata only to render post additional content (#4386)
* MM-15719 Use metadata only to render post additional content

* Default link to empty instead of undefined

* Feedback review
2020-06-29 11:28:07 -04:00
Elias Nahum
30cd64b38b
Revert updated dependecies for SSO (#4499)
* Revert updated dependecies for SSO

* Fix test setup
2020-06-26 21:50:53 -04:00
Elias Nahum
efe9466bba
Fix SSO login with subpaths (#4490) 2020-06-26 16:41:51 -04: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
Elias Nahum
56c593d36c
MM-25946 prompt sys admins if they are running server versions below 5.19 (#4488)
* MM-25946 prompt sys admins if they are running server versions below 5.19

* Update alert message

* Change alert buttons
2020-06-26 15:58:37 -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
Martin Kraft
47863cae3e
MM-11713: Allows edit others posts to function without edit own posts. (#4406)
* MM-11713: Allows edit others posts to function without edit own posts.

* MM-11713: Switches branching statement to ternary.

* MM-11713: Default to false expclicitly.

* MM-11713: Uses old logic for server versions prior to v5.26.
2020-06-23 16:09:44 -04: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
Elias Nahum
6fe083672c
MM-25820 prevent double tap in post options (#4448)
* MM-25820 prevent double tap in post options

* Fix weird behavior on iOS when doble tapping on add reaction and edit in post options

* Callback after close
2020-06-20 12:28:26 -04: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
57e4b17ade
MM-25670 perform search when hitting Enter on HW keyboard (#4432) 2020-06-17 22:13:34 -04:00
Elias Nahum
b85766ec31
MM-25931 Handle incoming session expired push notification (#4417) 2020-06-17 21:30:19 -04:00
Amit Uttam
e23c9084b2
MM-25350 Hide 'Select Team' title on modal when error occurs (#4412) 2020-06-17 20:55:18 -04:00
Elias Nahum
0f9bf90211
Fix unhandled error when logging out from the select team screen (#4423) 2020-06-17 14:37:46 -07:00
Elias Nahum
023109e250
Fix SSO and clear cookies (#4422)
* Fix SSO and clear cookies

* Fix unit tests

* Removed unnecessary argument

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

Co-authored-by: Miguel Alatzar <migbot@users.noreply.github.com>
2020-06-15 14:00:13 -04:00
Rahim Rahman
e0d2fba243
[MM-18766] remove deprecated lifecycle methods from post components (#4270)
* [MM-18766] removed deprecated lifecycle methods from post components

* [MM-18766] update snapshot, seems like there was a bug

* [MM-18766] refactor getBestImageUrl -> getBestImageUrlAndDimensions

- refactor getBestImageUrl to take a single argument: props
- refactor getViewPostWidth to take a single argument: props

* [MM-18766] getDerivedStateFromProps was previously returning only first prop change

- fix issue if multiple props were modified at once.

* [MM-18766] removed FastImage.preload that was supposed to be removed in the last merge.

* [MM-18766] removed getDerivedStateFromProps

* [MM-18766] fix tests based on actual component being completely re-rendered rather than prop change.

* [MM-18766] cleaning up initial changes due to no longer using getDerivedStateFromProps method

- move back getBestImageUrl and getViewPostWidth from outside of components
- keep the renaming of getBestImageUrl
- remove the use of spread operator as it is also no longer needed

* [MM-18766] one of caller to getViewPostWidth is still passing this.props

- this is no longer needed
2020-06-15 10:11:21 -07:00
Miguel Alatzar
67978382e2
Wrap await calls in try/catch (#4418)
* Wrap await calls in try/catch

* Fix spacing
2020-06-12 13:08:22 -07:00
Elias Nahum
8c4ce94701
MM-25967 await until cookies are cleared (#4411) 2020-06-11 14:19:20 -04:00
Andre Vasconcelos
55acf06c6d
MM-22852 Improve mobile modal style (#4198)
* Opening screens as 'pageSheet' for iOS

* Added pagesheet on more screens

- Search
- Edit Profile
- Recent Mentions
- FlaggedPosts

* Close sidebar when tapping new channel `+` icon

* Update search modal test to expect `pageSheet`

* Fixing search screen

* Making sure padding fix only applies to iOS

* Adjusting padding & height values for searchbar

* Adjusting padding & height values for searchbar (2)

* Changed default iOS modal to be pageSheet

* Fix test that failed due to changes in modal behavior

* Removing useless params from openModal function
2020-06-10 15:34:08 -04:00
Amit Uttam
446f95ff6b
MM-21368 Notify user when editing message that's too long (#4371)
* MM-21368 Notify user when editing message that's too long

* Disable 'Save' button to prevent edits from being posted
* Display error message specific to the message size and allows max, instead of the current, default "Invalid Message" error.

* Split message length error into text (left justified) and counts (right justified)

UX guidance from PR review

* UX Review: Wrap for longer error text + spacing adjustment

* UX Review: Align split messages to top + add spacing in-between

* UX Review: Align error message box padding with content
2020-06-10 13:01:40 -03:00
Elias Nahum
36e6df2150
MM-25782 improve channel member reducer speed to sync memberships (#4400) 2020-06-09 13:55:57 -04:00
Maria A Nunez
6899bb9510
MM-25809 - Fixed rendering code blocks when starting with 4 spaces (#4397) 2020-06-08 19:58:48 -04:00
Elias Nahum
195011d678
Ensure previous state is cleared when logout (#4390) 2020-06-08 13:43:53 -04:00
Harshit Khetan
7b76aba233
clear cookies on again trying to login (#4387) 2020-06-08 13:43:22 -04:00
Amit Uttam
841a8e1df2
MM-25831 Fix timing issue with cancelPing (#4389)
With `getUrl` recently [becoming async](https://github.com/mattermost/mattermost-mobile/commit/293470ff#diff-60b06b1c4aab028b96d9b207e84000c6R316), the global definition of the cancelPing function wasn't being made available in time for use by other functions (e.g. `handleSslProblem` and `handleConnect`)
2020-06-08 14:16:44 -03:00
Amit Uttam
99ee105e17
MM-13076 Start with store results for at-mention/search autocomplete (#4385)
Currently, at-mention and search autocomplete do not render if there is a server request or network problem/outage, because the only data used to populate autocomplete results is a server request.

Now, these autocompletes will render initially with user data currently in store, and then re-rendered in place, once the server response completes.
2020-06-08 14:13:38 -03:00
Elias Nahum
68a9c45d88
MM-25695 Select channel when switching teams if available (#4375) 2020-06-03 08:53:32 -04:00
Elias Nahum
ebd31e0835
MM-25694 Disallow profile picture update is set by LDAP (#4377) 2020-06-02 12:04:28 -04:00
Elias Nahum
293470ff94
Handle SSO redirecting to a different URL than specified by the user (#4372)
* Handle SSO redirecting to a different URL than specified by the user

* Set Server URL based on the last redirect

* Improve last redirect condition
2020-06-01 14:06:37 -04:00
Miguel Alatzar
9b03f66e6e
[MM-24068] Animate top bar height/padding (#4370)
* Animate top bar height/padding

* Update import order
2020-06-01 10:03:58 -07:00
Amit Uttam
d869ddf8e5
MM-24029 Fix date re-selection on search bar (#4368)
Picking a new date string (tapping a date on the autocomplete calendar) to replace an already populated date string in the search bar, leaves the search text garbled. This was because of incorrect handling of the tap cursor position in the search box.
2020-05-29 13:29:25 -03:00
Miguel Alatzar
023432e2f4
Fix sidebar search bar (#4350) 2020-05-28 09:35:34 -07:00
Amit Uttam
73da13fa66
MM-24201 List joinable teams alphabetically (#4365)
Matches webapp behaviour.
2020-05-28 13:18:51 -03:00
Amit Uttam
3d1a647263
[MM-24501] Load all (including joinable) teams when resetting app state (#4362)
* MM-24501 Load all (joinable) teams when resetting app state

The subsequent `loadMe` only fetches a user's already-joined teams, which doesn't populate `state.entities.teams.teams` with the entire set of teams available, including potentially joinable teams.

Fixes https://github.com/mattermost/mattermost-mobile/issues/4209

* Add names to batched team action groups
2020-05-28 13:15:30 -03:00
Elias Nahum
81a4bb39ca
MM-21605 Remove border to login option buttons (#4354)
* Remove border to login option buttons

* Remove email login option color for O365
2020-05-28 11:58:35 -04:00
Elias Nahum
ee05367cae
MM-25562 Fix dismiss reaction list crash (#4353) 2020-05-27 12:45:35 -04:00
Elias Nahum
d100d646f2
Bump upload timeout to 1 min (#4345) 2020-05-27 12:42:56 -04:00
Elias Nahum
547ac860b7
Invalidate versions for iOS (#4349) 2020-05-27 10:49:33 -04:00
Elias Nahum
43f1e5113c
MM-25510 Increase post options long press delay to 200ms (#4346)
* MM-25510 Increase post options long press delay to 250ms

* Set delay to 200ms
2020-05-26 19:45:30 -04:00
Elias Nahum
1568e08055
MM-25470 Fix emoji autocomplete results (#4344)
* Fix emoji autocomplete results

* Rename selectors with "select" prefix
2020-05-26 16:03:11 -04:00
Miguel Alatzar
5d1520ab3c
Add calls to Client4.savePreferences (#4341) 2020-05-26 09:29:50 -07:00
Elias Nahum
cef36502c5
MM-24895 fetch roles if needed and add team member to the store when joining a new team (#4330) 2020-05-26 09:05:43 -04:00
Elias Nahum
3a3be0e40c
MM-24964 select server url correctly animate error with keyboard (#4333) 2020-05-22 15:42:24 -04:00
Elias Nahum
65205258d2
MM-24932 Bold LHS active channel manually marked as unread (#4332) 2020-05-22 15:39:15 -04:00
Elias Nahum
0b3c91dd81
MM-25434 Fix switch team badge cut off (#4331) 2020-05-22 10:47:35 -07:00
Miguel Alatzar
6053c7fe42
Apply background style for Android as well (#4326) 2020-05-22 11:35:37 -04:00
Miguel Alatzar
12a913b499
Update control icon style (#4325) 2020-05-22 11:35:21 -04:00
Miguel Alatzar
4178816350
Incrase redux-persist timeout to 1 min (#4322) 2020-05-21 14:04:08 -07:00
Elias Nahum
a91e257f55
Fix overflow of searchbar for iOS in Landscape (#4312) 2020-05-20 23:34:16 -04:00
Elias Nahum
a9763c7480
Do not preload images with FastImage (#4314) 2020-05-20 15:47:06 -04:00
Miguel Alatzar
93f519c8fc
Handle MFA error in MFA screen (#4308) 2020-05-20 08:28:14 -07:00
Harrison Healey
c7ef3fe1d3
MM-22155 ESLint configuration updates part 1 (#4311)
* MM-22155 Disable no-undefined

* MM-22155 Disable react-jsx-filename-extension

* MM-22155 Disable no-magic-numbers

* MM-22155 Re-enable camelcase

* MM-22155 Re-enable no-nested-ternary

* Update no-unused-vars to match other repos
2020-05-20 08:27:27 -07:00
Elias Nahum
81fb199feb
Allow interaction when the in-app notification is shown (#4295)
* Allow interaction when the in-app notification is shown

* Wrap in gesture HOC only for Android

* Set height and remove flex for android in-app notifications gesture hoc

Co-authored-by: Miguel Alatzar <this.migbot@gmail.com>
2020-05-19 15:54:47 -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
c04c1f26f7
Do not schedule session expiry notification for 5.24+ (#4291) 2020-05-19 12:15:45 -04:00
Miguel Alatzar
a819cce708
[MM-24642] Sidebar fixes (#4286)
* Fixes to height and padding

* Add underlayColor

* Rename to index

* Revert height change for overflow change

* Increase toValue

* Update Android offset
2020-05-18 16:31:11 -07:00
Elias Nahum
d3a6e166ad
MM-15758 Update dependencies including Fastlane (#4272)
* Update dependencies including Fastlane and disable Flipper on iOS

* Remove EventEmitter for previous doc-viewer

* Fix android crash when setting more channels buttons

* Downgrade fuse.js

* Upgrade deps to latest

* Update Podfile.lock

* Downgrade RNN to 6.4.0

* QA Review #2

* Upgrade fuse.js to 6.0.0
2020-05-18 11:24:47 -07:00
Andre Vasconcelos
a0841e0ef1
MM-24497 Ensuring quick reactions render within safe area (#4235)
* Ensuring quick reactions render within safe area

* Added modifier to align paddings

* Updating snapshots
2020-05-14 22:10:15 -04:00
Elias Nahum
c0a763e9e0
Set previous app version on persist store migration (#4294) 2020-05-13 19:24:44 -03:00
Elias Nahum
1ae5584cb1
MM-24115 Use Native + BuiltIn emojis instead of systemEmojis (#4274)
* MM-24115 Use BuiltInEmojis instead of systemEmojis

* Address QA found issues
2020-05-13 18:23:47 -04: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
Elias Nahum
e50fa1d85b
MM-24973 Prevent search input to take full screen on Android landscape (#4283) 2020-05-13 10:12:53 -04:00
Jesús Espino
6b6a685909
Using new getKnownUsers api to cleanup the users on leave channel (#4220)
* Using new getKnownUsers api to cleanup the users on leave channel

* Fixing tests

* Addressing PR comments

* Removing unnused variables

* Fixing proptypes annotation

* Addressing PR review comments

* Fixing minimun version check

* Changing the import to use

* Adding tests for version check

* Addressing PR review comments

* Small change to no change accidentaly the previous behavior

* Adding small fix proposed by Elias
2020-05-11 13:19:38 -03:00
Miguel Alatzar
94bdd8e430
Ensure currentChannel set (#4288) 2020-05-11 12:12:01 -03:00
Amit Uttam
ee5d336190
[MM-18642] Notify on server certificate trust problems when connecting (#4282)
* MM-18642 Notify user on server certificate trust problems

Presents a new alert specific to SSL connection/certificate trouble on the server, when pinging.

* Change Alert title (PR review)
2020-05-08 19:58:43 -07:00
Farhan Munshi
901f31ec4b
[MM-24891] [MM-24572] Add ability to specify default value when role not found for selector (#4277)
* MM-24891 Allow permissions to have defaults set in case where roles not in state

* MM-24891 Add tests for haveIPermission

* MM-24891 Apply the defaults to more channel permission checks
2020-05-08 14:19:33 -04:00
Miguel Alatzar
879e604bbf
Ensure receivedPosts runs first (#4281) 2020-05-08 08:08:22 -07:00
Amit Uttam
42f93769b1
Revert "MM-24113 Support 'leave' slash command (#4273)" (#4279)
This reverts commit fd450f9988.
2020-05-07 14:40:54 -03:00
Amit Uttam
fd450f9988
MM-24113 Support 'leave' slash command (#4273)
Fixes crash on Android when attempting to redirect back to a read-only channel (default channel) after using the `/leave` command.

Also, enables official support of `leave` slash command. Added as auto-complete suggestion.
2020-05-07 13:58:09 -03:00
Miguel Alatzar
65314fae47
[MM-24706] Use cache only for http URIs (#4257)
* Use cache only for http URIs

* Style fixes

* No need for cache prop

* Remove redundant absolute positioning

* Cap at two lines
2020-05-06 19:30:42 -07:00
Amit Uttam
67fa7aeb53
[MM-24061] Bring back channel sidebar hamburger icon for tablets (#4244)
* MM-24061 Bring back channel sidebar hamburger icon for tablets

* Remove channel sidebar icon for iPads

iPads run with a "persistent" sidebar already.

* Better conditional logic from PR review + tests

* Test tidying from PR review
2020-05-06 22:19:31 -03:00
Elias Nahum
1a605891fe
MM-22401 Refactor Post Draft (#4122)
* Babel TS and Eslint config

* Channel is archived component

* Move Typing component

* Move Uploads component

* Add PostInput component

* QuickActions components

* Add PostDraft component

* Remove old PostTextbox component

* Rename post_textbox constant

* Fix Autocomplete

* Rename blur post draft event

* Fix references

* Feedback review

* Fix autocomplete for iOS
2020-05-06 06:30:51 -04:00
Elias Nahum
597e03a6bc
MM-24852 ensure only one listener for in-app notification is registered (#4267) 2020-05-05 18:56:58 -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
Miguel Alatzar
454973ecbd
Revert "Disable loadUnreadChannelPosts (#4245)" (#4251)
This reverts commit 8de77754ef.
2020-04-30 08:57:12 -07:00
Miguel Alatzar
8de77754ef
Disable loadUnreadChannelPosts (#4245) 2020-04-29 11:52:53 -07:00
Andre Vasconcelos
64a2de8243
Fixing improper padding of searchBar container (#4212)
* Fixing improper padding of searchBar container

* Ensures leftComponent is hidden after animation
2020-04-29 17:26:57 +08: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
Miguel Alatzar
fe2c6a4147
Wrap screen in gestureHandlerRootHOC (#4137)
* Wrap screen in gestureHandlerRootHOC

* Trigger ci
2020-04-27 13:25:30 -03:00
Andre Vasconcelos
31052a7d53
Fixing padding of searchbar in search screen (#4223) 2020-04-27 12:20:15 -03:00
Elias Nahum
798efbd57f
MM-22089 set default prevent double tap to 1s for ChannelInfo modal (#4133)
* MM-22089 set default prevent double tap to 1s

* Increase tap debounce delay for ChannelInfo modal action

Co-authored-by: Amit Uttam <changingrainbows@gmail.com>
2020-04-27 10:04:58 -04: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
Elias Nahum
cc4abdde2f
MM-24446 Fix Crash on iOS with EMM enabled (#4203)
* Fix Crash on iOS with EMM enabled

* Fix Android Passcode authentication

* Fix Login screen header when EMM does not allow other servers
2020-04-23 06:03:10 -04:00
Elias Nahum
3a302eaae7
MM-24385 Fix ExperimentalStrictCSRFEnforcement (#4207) 2020-04-23 06:01:20 -04: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
Rahim Rahman
b5ef54527f
added isLandscape (#4188) 2020-04-22 18:48:51 -07:00
Mario de Frutos Dieguez
3de2b29570
Fix infinite loop retrieving post files (#4192)
* Fix infinite loop retrieving post files

Right now if all the attachments of a post are removed the component
update code enters into an infinite loop because the comparison between
arrays always return false.
2020-04-22 19:25:34 +02:00
Miguel Alatzar
9a97f91735
Check canPost permissions for v5.22+ (#4193) 2020-04-22 20:10:46 +08:00
Jason Blais
bf3fbbc363
Fix typo in telemetry entry (#4134)
See contribution that fixes this in the Redux repo: https://github.com/mattermost/mattermost-redux/pull/1116
2020-04-20 09:37:11 +08:00
Miguel Alatzar
cd8c627dc3
Fix headers when preloading images (#4165) 2020-04-16 18:43:51 -07:00
Elias Nahum
0c7a2c6fa1
Correctly load file attachment images (#4160)
* Correctly load file attachment images

* Remove cache control from gallery
2020-04-16 16:24:28 -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
aaa571db32
Upgrade to RN 0.62.2 (#4093)
* Upgrade to RN 0.62.0

* Update packager module paths

* Fix Android PasteableInput

* Fix regression on Android share extension credentials needed

* Update android/app/src/main/java/com/mattermost/rnbeta/RNPasteableEditTextOnPasteListener.java

* Reject commit if TSC check fails and Fix small eslint issues automatically

* Use super.getExportedCustomBubblingEventTypeConstants in RNPasteableTextInputManager

* Update to rn 0.62.2

Co-authored-by: Miguel Alatzar <migbot@users.noreply.github.com>
2020-04-14 16:39:51 -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
8b2d9a10f5
Ensure postProps is not null/undefined (#4150) 2020-04-14 11:38:34 -04:00
Miguel Alatzar
22a13cfee0
[MM-24026] Set back button color (#4138)
* Set back button color

* Update unit test
2020-04-13 10:44:44 -07:00
Elias Nahum
6667962e1f
MM-24093 Fix crash when system message does not contain a username in post props (#4143) 2020-04-13 11:44:22 -04:00
Elias Nahum
f6defc8cc6
Fix isDateLine function to check for null and undefined (#4142)
* Fix isDateLine function to check for null and undefined

* use optional chaining instead

Co-Authored-By: Amit Uttam <changingrainbows@gmail.com>

Co-authored-by: Amit Uttam <changingrainbows@gmail.com>
2020-04-10 20:19:43 -04:00
Miguel Alatzar
514f6a68d7
Don't subtract from badge count (#4135) 2020-04-09 11:18:54 -07:00
Elias Nahum
1486a55aeb
MM-22041 Fix Keyboard flashing when entering keyboards screen (#4132)
* MM-22041 Fix Keyboard flashing when entering keyboards screen

* Update snapshots
2020-04-09 06:10:46 -04:00
Elias Nahum
9d0209fce6
MM-22043 Render Channel purpose message without markdown (#4131) 2020-04-09 06:08:15 -04:00
Elias Nahum
c64581ef16
MM-22683 use webhook override_username instead of webhook creator on commented on post header (#4130) 2020-04-09 06:07:46 -04:00
Elias Nahum
be6b1ff83f
MM-22198 Don't show commented on for post on the same thread after a date separator (#4129) 2020-04-09 06:07:14 -04:00
shred86
c07e8fb8d3
[MM-23584][MM-23675] Add first and last name to user profile view & language support (#4092)
* Add name to profile view

* Add first and last name fields

* Styling update

* Update snapshot

* Add language support and change ordering
2020-04-09 06:05:01 -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
Miguel Alatzar
8bb43ca4c2
[MM-22632] Set vertical padding for SlashSuggestionItemi (#4125)
* Set minHeight

* Replace minHeight with paddingVertical
2020-04-08 11:08:59 -04:00
Miguel Alatzar
7bee5c368a
Always show expand button (#4121) 2020-04-07 13:52:59 -03:00
Miguel Alatzar
4e3e557519
Dismiss keyboard on edit post close (#4110)
* Dismiss keyboard on edit post close

* Don't use edit post request

* Focus on error
2020-04-07 09:50:35 -07:00
shred86
717350adc6
[MM-23755] Add nickname as searchable property (#4099)
* Add nickname search functionality

* Add username property to test

* Fix parentheses out of place

* Add nickname property to additional tests

* Added ability to truncate long names

* Minor clean up

* More minor clean up
2020-04-06 17:48:06 -04:00
RAKESH PEELA
f4d5f4dcaf
Update more unreads button to new design (#4101)
* update `more unreads` button to new design

* update More Unreads button with UI suggestions

* fix lint issues
2020-04-02 18:42:49 -03:00
Miguel Alatzar
754d794dae
Don't pre-fetch posts for unread archived channels (#4113) 2020-04-02 18:40:18 -03:00
Elias Nahum
8522b70851
Tweak post list numbers (#4105) 2020-04-02 14:40:02 -03:00
Amit Uttam
605c90ce61
Remove duplicated websocket client & constants (#4111)
* Remove duplicated websocket client & constants

Defunct code originally maintained in mattermost-redux, but not used in mobile, in favour of https://github.com/mattermost/mattermost-mobile/blob/master/app/client/websocket.ts

* PR review: Remove redundant reference to constants

* Remove deleted files from modules list
2020-04-02 13:57:17 -03:00
Miguel Alatzar
1398a4ea0f
Correctly add additional actions (#4108) 2020-04-01 19:10:27 -07:00
Miguel Alatzar
5346c574e2
Fix mm-redux imports (#4109) 2020-04-01 20:04:39 -03:00
Andre Vasconcelos
d03d504d00
MM-14038 Access recent reactions from the long press menu (#4058)
* WIP: Implementing quick reaction functionality

* Making closing animations smoother

- Added haptic feedback + timeouts for a smooth flow

* Fixing clipping of post options on android

* updating snapshots

* Refactoring code & fixing styles

- Fixed paddings element sizes to comply with design specs
- Replaced reaction image to one with a higher resolution
- Made sizes of emojis to be conditional on deviceWidth

* Apply suggestions from code review

* Adding component to avoid extra re-renders

* Refactoring function call in reaction_button

Am ashamed i didn't catch this before pushing the rest

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2020-04-01 12:56:49 -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
1079498461
[MM-23708] Send HW key pressed event only when a HW keyboard is connected (#4100)
* Check if HW keyboard is connected

* Call super

* Fix double new line insert
2020-03-31 21:43:18 -03: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
fc34f34008
fetch statuses for users in DM/GM's (#4087) 2020-03-30 18:42:23 -03:00
Martin Kraft
9b553d3760
MM-23636: Default 'canPost' to true. (#4085) 2020-03-30 10:40:08 -03:00
Elias Nahum
950f5863fd
Revert "Use file URL over preview URL for GIFs (#3981)" (#4084)
This reverts commit cbc6ef185c.
2020-03-27 23:04:46 -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
Andre Vasconcelos
a114b19ecc
MM-18455 Replace search bar component (#3998)
* Initiated basic migration to react-native-elements

- Search bar receives all right props without custom animations being necessary
- Need to test on different layouts and cases
- May be possible to unify android and iOS components. Attempt later

* Removing separated android/ios files

- Adding implementation of android searchbar 
- updating test snapshots

* WIP: Integrating leftComponent and adding focus animations

* Adding animations to left component on focus and blur events

* Removing repeated styles and useless props

* Updating snapshots

* Ensuring clearIcon renders when tapping search suggestions

- Also makes sure it prioritizes custom color attributes over default values for the search input

* Refactoring styles, removing clear icon animations

- Also removed useless ternary operations since the library itself already checks whether the search input is empty

* Replacing icon components with props whenever possible

- Removing useless styles

* memoizing styles, adding default props/values

* Memoize searchBarStyle with params

* Fixing backgroundColor

* Removing minWidth for cancel button

* Fixing styling issues on both iOS and android

* Updating snapshots post merge

* Making sure showCancel can be controlled by props

* Updating snapshots

* Fix clipped edges on iOS & cancel icon on Android

* Fixed radius, memoized styles

* Fixing styling issues found on Android

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2020-03-26 16:53:25 -03:00
Miguel Alatzar
55cac2e062
[MM-23514] Don't use state for rowsSliced/colsSliced (#4075)
* Don't use state for rowsSliced/colsSliced

* Update snapshot

* Also show moreBelow when contentHeight > MAX_HEIGHT
2020-03-25 15:59:17 -07:00
Elias Nahum
54c6d98683
Fix Android Navbar tap events (#4074) 2020-03-24 20:24:29 -03:00
Elias Nahum
52053d768a
MM-23341 Fix message failed banner when posting first message (#4064)
* MM-23341 Fix message failed banner when posting first message

* Set switchToChannel flag back to false

* Feedback review
2020-03-24 17:16:44 -03:00
Miguel Alatzar
f404fd00b0
[MM-23483] Add backgroundColor to drawer content parent View (#4067)
* Add backgroundColor

* Revert backgroundColor and set elevation instead

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2020-03-24 12:40:04 -03:00
Miguel Alatzar
1006d52889
[MM-23506] Enable FlatList virtualization (#4062)
* Enable FlatList virtualization

* Update snapshot test
2020-03-23 22:26:05 -03:00
Elias Nahum
2452297592
Fix Message attachment actions colors on dark themes (#4061) 2020-03-23 22:05:42 -03:00
Amit Uttam
587ba38f4e
MM-23234 Prefer mobile-defined state actions (#4057)
Unify usage to one set of defined dispatch actions in codebase, instead of a mix of (almost) identical actions defined in `mattermost-mobile` and `mattermost-redux` .
2020-03-20 13:53:33 -03:00
Amit Uttam
956b65556c
MM-23162 Remove unnecessary dimension and orientation dispatches (#4046)
`setDeviceOrientation` and `setDeviceDimensions` used to get called on any navigation change (e.g. modal launches) and triggered multiple needless dispatches.
2020-03-19 13:50:51 -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
Elias Nahum
ec4dfb65b2
MM-23230 Batch post actions and fine tune postlint (#4042)
* PostList optimizations on FlatList

* Stop scroll to index if there is an interaction

* Fix unit tests

* MM-23176 Fix crash due to scrollToIndex out of range

* Batch mark channel as read action

* Fine tune post list

* Batch actions for getting posts

* Update app/utils/push_notifications.js

Co-Authored-By: Miguel Alatzar <migbot@users.noreply.github.com>

* Update app/actions/views/channel.js

Co-Authored-By: Miguel Alatzar <migbot@users.noreply.github.com>

* Pass state as arg to markAsViewedAndReadBatch

Co-authored-by: Miguel Alatzar <migbot@users.noreply.github.com>
2020-03-18 16:59:45 -03:00
Hossein Ahmadian-Yazdi
e8150fa7cc
[MM-21408] Make the name displayed consistent with teammate name display (#4021)
* update redux hash and function

* fix lint issue
2020-03-17 20:47:14 -04:00
Elias Nahum
3af9af68e4
MM-22318 Fix autocomplete selection char code for native emojis (#4040) 2020-03-17 12:48:22 -07:00
Farhan Munshi
217ef59f1c
[MM-23271] Check canAddReaction permission inside of render reactions (#4032)
* MM-23271 check canAddReaction when creating in reactions component

* MM-23271 Fixing linting
2020-03-16 11:29:13 -04:00
Elias Nahum
c685690d1e
MM-23179 Avoid unnecessary Overdraws (#4025)
* Set navigation based on theme only once

* Remove unnecessary overdraws

* Feedback review
2020-03-13 11:22:43 -07:00
Miguel Alatzar
d1add3c743
[MM-23241] Use expanded link from state (#4029)
* Get expanded link from state

* No need to await getRedirectLocation
2020-03-13 15:03:37 -03:00
Elias Nahum
50fc7d6896
Remove ExperimentalUsernamePressIsMention build time feature (#3993) 2020-03-13 10:54:19 -07:00
Martin Kraft
fbd7fedfbc
MM-21925: Enforces 'create_post' permission. (#3904)
* MM-21925: Enforces 'create_post' permission.

* MM-21925: Reverts adding 'can_post' check from post component.

* MM-21925: Removes unused variable and some duplicate imports.

* MM-21925: Removes unnecessary prop.

* MM-21925: Removes unused test prop.
2020-03-13 10:17:42 -03:00
Elias Nahum
d7acd5d0c3
MM-23176 Fix crash due to scrollToIndex out of range (#4026) 2020-03-11 17:14:11 -03:00
Elias Nahum
b8562e956b
MM-22975 Fix archive handle when server does not allow view archive channel (#4019)
* MM-22975 Fix archive handle when server does not allow vieweing an archive channel

* Update mm-redux ref
2020-03-09 17:06:02 -03:00
Elias Nahum
5f74491ea8
Upgrade Navigation library (#3997)
* Upgrade Navigation library

* Feedback review on Navigation Library

* Fix select server background color

* Fix iPhone 11 and 11 Pro Max navbar height

* Fix background color on Select Server

* Upgrade nav lib to 6.1.0

* Apply patch to nav lib

* Upgrade RNN to 6.1.1
2020-03-09 12:50:42 -07:00
Harrison Healey
f751b552b4
Add custom rule to prevent passing getState into dispatch (#4010)
* Add custom rule to prevent passing getState into dispatch

* Update package.json
2020-03-06 17:07:20 -05:00
Farhan Munshi
0bb573c7e0
MM-22622 Disable at mention highligh in channel header (#4005) 2020-03-06 11:50:38 -07:00
Miguel Alatzar
bdbef9444a
Fix crash for unarchived system message (#4004) 2020-03-05 16:39:37 -07:00
Miguel Alatzar
b650c9acc0
MM-22385 RN: iOS - Automatic Replies custom message SafeAreaView fix (#4001)
* Applying paddingHorizontal to auto responder textbox

* Making sure paddingHorizontal applies when in portrait mode

* Final cleanup
2020-03-05 12:12:55 -07: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
Amit Uttam
1d3c006b97
MM-23014 Keep Android cache for vector icons (#4011) 2020-03-05 13:23:39 -03:00
Elias Nahum
3e7096de3f
Flush store on logout (#4002) 2020-03-04 09:18:20 -07:00
Elias Nahum
06f03d88e9
Ensure modals opened from the Settings Sidebar have a close icon (#3994)
* Ensure modals opened from the Settings Sidebar have a close icon

* Feedback during review
2020-03-04 08:41:03 -03:00
Elias Nahum
58dcbb215b
Fix typing on input box after returning from an archived channel (#3992) 2020-03-03 19:44:23 -03:00
Elias Nahum
fbee2fb6b6
MM-22790 Fix Load more joinable/archived channels in more channels screeen (#3988)
* MM-22790 Fix Load more joinable/archived channels in more channels screen

* Add unit tests
2020-03-03 13:35:46 -03:00
Farhan Munshi
8052112260
[MM-22622] Check mentionHighlightsDisabled in markdown (#3975)
* MM-22622 Check mentionHighlightsDisabled in markdown

* MM-22622 Use array of mentions instead of long conditional

* MM-22622 Disable Channel mention highlight for channel header change messages

* MM-22622 Update tests to ensure mention highlight disabled on system message
2020-03-03 16:37:44 +05:30
Miguel Alatzar
cbc6ef185c
Use file URL over preview URL for GIFs (#3981) 2020-03-02 15:42:51 -03:00
Elias Nahum
5e8872e2d3
MM-22752 Preserve other teams channel membership (#3987) 2020-03-02 11:21:11 -07:00
ami9000
60be3d2783
MM-22134: Fix StatusBar after Photo-Camera post in landscape mode (#3986)
* Fix StatusBar after Photo-Camera post in landscape mode

* revised tests
2020-03-02 13:24:09 -03:00
Miguel Alatzar
b8fc38d3bc
[MM-22152] [MM-22321] Fix Markdown table issues (#3924)
* Ensure isFirstRow prop is set on first row

* Determine maxPreviewColumns on mount

* Fix expand button offset on Android

* Fix moreBelow gradient

* Show right gradient when columns are sliced

* Fix moreRight conditions
2020-03-01 09:27:25 -03:00
Elias Nahum
c9d78766d4
MM-22752/MM-22686 global timeout and team switch (#3978)
* MM-22686 decrease request timeout to 5s

* MM-22752 Fix switching teams with and without connction
2020-03-01 09:25:53 -03: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
ce1aad22ce
MM-21276 & MM-22419 Fix PostList insets and Channel Intro (#3921)
* MM-21276 & MM-22419 Fix PostList insets and Channel Intro

* Update patches/react-native-keyboard-tracking-view+5.6.1.patch

Co-Authored-By: Miguel Alatzar <migbot@users.noreply.github.com>

Co-authored-by: Miguel Alatzar <migbot@users.noreply.github.com>
2020-02-27 17:06:04 -03:00
Elias Nahum
0504a962a1
MM-22379 & MM-22598 Boost perf by using FastImage cache in favor of ImageCacheManager (#3971)
* MM-22379 & MM-22598 Boost perf by using FastImage cache in favor of ImageCacheManager

* Code review
2020-02-27 16:29:51 -03:00
Hossein Ahmadian-Yazdi
ff4a771a92
[MM-22687] Update Android downloader (#3970)
* update android downloader

* update en.json
2020-02-27 12:46:54 -05:00
Elias Nahum
f3a94bfbc9
Fetch archived channels (#3964) 2020-02-27 08:12:20 -05:00
Farhan Munshi
7952b5aeb7
[MM-21923] Enforce channel mentions permission (#3875)
* MM-21923 Enforce channel mentions permission by hiding it from autocomplete and disabling @mention confirmation modal

Add tests for post_textbox channel mentions

* MM-21923 Set use channel mentions to true if server version is not minimum required

* MM-21923 Point to specific redux hash and update permission check to be easier to read

* MM-21923 Fix currentChannel.id
2020-02-26 18:41:47 -07:00
Ryan Wang
99cc9c94c3
MM-10160 - support interactive button styles (#3896)
* MM-10160 - support interactive button styles

* MM-10160 - update action button styles
- move status colors to constants

* MM-10160 - add unit tests
- add button border opacity
- fix color accuracy

* MM-10160 - change action button padding
- edit hardcoded color status

* MM-10160 - update styles

* MM-10160 - center action button text

* MM-10160 - change action button line height again

* MM-10160 - improve variable names

* MM-10160 - split up tests to be more descriptive
2020-02-26 17:20:20 -07:00
Allen Lai
3e2fc1bc67
[MM-20804] Add "Unarchive Channel" option to the channel info screen (#3663)
* undelete

* fix build

* change let to const

* ran make i18n

* small refactor

* using canUndelete var

* added render message

* fix bug

* sync

* remove duplicate

* fix test

* add unit test for unarchive channel button render

* fix unit test for unarchive channel

* delete space

* change logic in undelete

* add server minimum for feature

* fix renderunarchive test with adding props variables

* snpashot wasnt matching. fixed by adding to base prop

* return early if false

* change position and color for unarchive button

* refactor handle delete undelete leave

* move serverversion call up

* undelete to unarchive

* remove unnecessary seperator

* hash

* Update app/screens/channel_info/index.js

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

* delete canuseunarchive feature

* add test to render sys message

* remote 'w' in package.json

* add trailing comma

* update redux hash

* whitespace in test

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2020-02-26 21:02:28 -03:00
ami9000
30594cec5d
MM-12148: Prevent emdash convert in a Code Block on ios (#3885)
* Add fix to prevent emdash autocorrect in a Code Block on ios

* Add fix to prevent emdash autocorrect in a Code Block on ios

* code clean up

* separate to new switchKeyboardForCodeBlocks function

* added emdash prevention to edit_post and also code cleanup

* moved keyboardType logic to its own utils function and added unit tests

* clean up - align event argument names

* removed unnecessary event check
2020-02-26 20:51:53 -03:00
ami9000
b46996a841
MM-22375: Remove mark as unread post option in archived channels (#3922)
* Remove mark as unread post option for archived channels and revise tests

* revised tests
2020-02-26 20:40:53 -03:00
ami9000
4668c9cce5
Edited onHandlerStateChange to fix reaction list stutter (#3951) 2020-02-26 11:11:48 -07:00
Elias Nahum
28384bc9d2
Fix in-app notification crashing when receiving multiple (#3967)
* Fix in-app notification crashing when receiving multiple

* Dismiss the overlay when tap without waiting for interaction manager
2020-02-26 10:57:17 -05:00
Nev Angelova
a971e6820b
[MM-22129] - Change "Copy Permalink" text in post options menu (#3950) 2020-02-23 22:37:46 +02:00
Amit Uttam
9d44ef8053
MM-22629 Center-align tall & thin image attachments (#3931)
Bug reported in community: https://community.mattermost.com/core/pl/yy39ajg1ajfm386dms6tdyjrtw
2020-02-18 15:48:26 -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
05afa871eb
MM-20184 Remove ios drawer hack and Fix right drawer partially shown on landscape (#3919) 2020-02-17 12:27:54 -07:00
Elias Nahum
d35c05ce05
MM-22487 Fix race condition causing the user to logout (#3916) 2020-02-12 17:26:06 -03:00
Elias Nahum
696d6eef08
Re-enable ram-bundles (#3907) 2020-02-10 11:20:45 -07:00
Miguel Alatzar
3c417838a4
Dispatch loadConfigAndLicense on launchApp (#3902) 2020-02-10 13:46:22 -03:00
Miguel Alatzar
abaed71f47
[MM-22034] Tighten up post draft UI (#3898)
* Tighten up post draft UI

* Revert "MM-15307 Updated to use InteractionManager (#3666)"

This reverts commit e08155c81b.

* Address PR review comments

* Update snapshot test

* Don't return null if no files

* Fix progress text and padding issues

* Fixes per Matt's review

* Make linter happy
2020-02-10 11:46:00 -03:00
Amit Uttam
26df779330
MM-22253 Reduce unnecessary re-renders in channel switching (#3900)
Re-renders were occuring because of prop and state updates that created new object references, despite being of identical value. A key culprit was `postListHeight` in `PostList` which goes through a few calls to `handleContentSizeChange` when loading posts.

Also, "New Messages" divider line is a pure component now (via `memo`) to reduce unnecessary re-renders here too.
2020-02-07 14:13:44 -07:00
Miguel Alatzar
cadec1b793
Fix typo in error.message (#3891) 2020-02-07 09:50:20 -03:00
Amit Uttam
a17b534916
[MM-22344] Remove ChannelPeek (#3894)
Introduced large number of unnecessary re-renders when opening channels, and ideally should not be a part of the channel switching/opening code path. Although this was discovered while trying to investigate an [Android-specific issue](https://mattermost.atlassian.net/browse/MM-22253), this extra code path made it difficult to see what Android is potentially doing differently than iOS.

Functionality originally introduced in #1203.

Conversation for removal is [here](https://community.mattermost.com/core/pl/hfcogf6pr7rw8k3ryq14c69c7e)
2020-02-06 22:42:35 -03:00
Miguel Alatzar
a1474d9e89
[MM-22236] Check against Permissions.RESULTS.GRANTED (#3892)
* Check agains Permissions.RESULTS.GRANTED

* Fix file and image upload as well

* Fix permissions

* Make linter happy

* Use toHaveBeenCalledWith
2020-02-06 11:55:15 -07:00
Miguel Alatzar
2464780eca
[MM-22300] Use dismissModal to close ChannelInfo screen (#3890)
* Use dismissModal to close ChannelInfo screen

* Missing semicolon
2020-02-05 17:18:58 -07:00
Emilio Rodriguez
0b98d82bfa
Mm 10601 - Use Enter Key to send message on Hardware Keyboards (#3760)
* Reacting to shift-enter events on iOS

* moving keyEvent logic to handleHardwareEnterPress

* configured android to work with keyEvents

* using dispatchKeyEvent instead of onKeyUp

* using react-native-hw-keyboard-event

* cleanup

* updated package name

* update package name

* using react-native-hw-keyboard-event v0.0.2

* reverted cocoapods version change

* Documentation

* fix detection of Shift-Enter on android

* simplify dispatchKeyEvent()

* fix for stacked hardware keyboard events

* Update android/app/src/main/java/com/mattermost/rnbeta/MainActivity.java

Co-Authored-By: Miguel Alatzar <migbot@users.noreply.github.com>

* simplify dispatchKeyEvent

* removed yarn.lock

* using react-native-hw-keyboard-event v0.0.4

* Using ACTION_UP instead of ACTION_DOWN

Co-authored-by: Miguel Alatzar <migbot@users.noreply.github.com>
2020-02-04 09:34:14 -07:00
Miguel Alatzar
e62c9b7a6d
[MM-21074] Handle iOS reply action on native side (#3884)
* Handle iOS reply action on native side

* Make linter happy

* Revert rn vector changes to .pbxproj
2020-02-04 08:49:26 -07:00
Elias Nahum
484e7068c3
MM-22165 Fix channel sidebar close gesture (#3879) 2020-02-01 13:12:05 -03:00
Miguel Alatzar
476fc19431
[MM-22159] Import from semver/preload (#3874)
* Import from semver/preload

* Add unit tests
2020-01-30 09:33:54 -03:00
Miguel Alatzar
a8f0314067
[MM-22078] [MM-22083] Sort emojis in EmojiPicker (#3865)
* Sort emojis in EmojiPicker

* Pass search term to compareEmojis

* Sort emojis that include search term first

* Fix sorting

* Handle compareEmojis without search term

* Return doDefaultComparison

* Check includes only if needed

* Make linter happy

* Use doDefaultComparison
2020-01-28 15:04:59 -07:00
Elias Nahum
ee25cf49eb
MM-22090 Fix iOS photo/camera denied permissions (#3860)
* Fix iOS photo/camera denied permissions

* Add unit test and rename files

* Request for permission if returns denied
2020-01-28 16:53:14 -03:00
Amit Uttam
99a551df6d
Handle links with no server URL provided (#3862)
Default to current server or site URL.

Example case: `<jump to convo>` links generated from autolink plugin have their server/site URL stripped, and it is assumed that generated links are relative to the current server.

Conversation: https://community.mattermost.com/core/pl/78j4a7ozupbci8qxwx1sczc1ua
2020-01-28 09:14:57 -03:00
Elias Nahum
2765d1b06b iOS Slide open main sidebar from anywhere (#3859) 2020-01-27 19:53:16 -07:00
Elias Nahum
ff13f3e612 MM-21961 Fix Incorrect Timestamp on Android Mobile App (#3861) 2020-01-27 12:57:22 -07:00
Ryan Wang
7e7c652828 MM-17649 - fix VoiceOver on server select & login (#3855) 2020-01-24 14:57:40 -03:00
Saturnino Abril
a76c0fbb9d update commit hash of mattermost-redux and cleaup initial state of requests.preferences (#3836) 2020-01-24 21:27:39 +07:00
Miguel Alatzar
d56965e4ce Call Linking.getInitialURL() in launchApp (#3843) 2020-01-22 15:06:56 -03:00
Andre Vasconcelos
b6e6d4c9e0 Fixing post draft style to comply with design specs (#3818)
* Polishing post draft to comply with design specs

* changed maxHeight in landscape mode, fixed icon sizes

- Refactored code so that post draft icon sizes are taken from same constant value

- Set maxHeight value in landscape mode to be smaller (tests pending)

- Removed repeated styles for button wrappers (passing them down as props to child components)

- Increased size of image attachment remote icon, and increased tappable area

* Removing repeated logic for file upload

* Fixing failed snapshot tests / style checks

* Fixing file upload remove icon to have 64% opacity

* post draft UX/UI improvements

* Fix input box extra spacing

* input box line height and attachment border

* Animate to original state even if error is showing

* Fix permissions

* Improve attachment error animation

* Fix iOS post input height

* Update snapshots
2020-01-21 15:20:19 -03:00
Amit Uttam
36c7cf4014 MM-21723 Handle deep link errors to inaccessible teams, channels & permalinks (#3815)
* Consolidated error handling for a user's reachable teams.
* Consolidated error handling for a user's reachable channels.
2020-01-21 14:43:24 -03:00
Elias Nahum
1e0095d465 MM-21892 Fix TypeError cause by mm-redux#1006 (#3837) 2020-01-21 08:53:01 -07:00
Amit Uttam
331cfcc372 Set default app scheme to mattermost (#3827)
Was originally set to `mattermost-beta` as per #3767 .
2020-01-20 16:14:19 -03:00
Elias Nahum
7c09334dc4
Deps update (#3806)
* Dependecy updates

* Update dependencies
2020-01-20 13:20:03 -03:00
Elias Nahum
08e748bcae MM-21634 Fix keyboard glitch when returning to channel screen from the code screen (#3813) 2020-01-20 08:50:32 -07:00
Miguel Alatzar
24820bd34d
[MM-21865] Dispatch loadConfigAndLicense on successful login (#3819)
* Dispatch loadConfigAndLicense on successful login

* Emit server version changed event

* Make linter happy
2020-01-20 08:25:42 -07:00
Jesse Hallam
e127951230 MM-21632: fix toggling interactive dialog boolean (#3793)
* MM-21632: fix toggling interactive dialog boolean

My fix for MM-17519 broke the /rendering/ of the boolean toggle, but not
the underlying interactive dialog state (and the thrust of the original
issue).

* MM-21683: fix handling of boolean defaults

* unit tests
2020-01-20 21:29:43 +08:00
Amit Uttam
ef0274cad8 [MM-16263] UI/UX Improvements to the mobile post draft area (#3807)
* Adding base button functionality

Moving file upload previews to be under textbox

* Ensuring textbox is scrollable when in landscape mode

* Updated image picker to use mixed camera option

* Added unit tests, fixed other tests affected by dependency update

* Updated patch for react-native-image-picker to 1.1.0

* Fixing incorrect import of DocumentPicker

* MM-20989: Ensuring keyboard doesn't dismiss while submitting post (#3758)

* Ensuring keyboard doesn't dismiss while submitting post

* Update snapshot

* Preventing the @ icon from being repeatedly tappable (#3777)

* Fix snapshot from merge

* MM-21736 Select/Take images and videos for Android

* MM-21737 Fix attachment error message position on iOS

* Remove FileUploadPreview from the iOS Thread screen

* Fix android camera permissions

* Fix post input box sizing and disable scrollview

* Fix iOS photo gallery videos

Co-authored-by: Andre Vasconcelos <andre.onogoro@gmail.com>
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2020-01-16 22:17:03 -03:00
Miguel Alatzar
6879388d04
[MM-21184] Enabled Hermes (#3814)
* Enable Hermes

* Don't sort emojis in selector

* No need for transformer

* Remove unnecessary packager files
2020-01-16 12:56:44 -07:00
Amit Uttam
f6ee6b767e
MM-14470 Deep links launch when app is not currently open (#3802)
Previously, deep links would only work when the app was already open/previously launched.

Now, invoking a deep link launches the app if not already open, and opens the deep link destination.
2020-01-15 13:54:18 -03:00
Elias Nahum
92033f42ec MM-13953 Channel Info screen transition (#3812)
* MM-13953 Channel Info screen transition

* Fix unit test
2020-01-15 09:29:57 -07:00
Amit Uttam
f3b0e4aa28 MM-21068 Notify when attempting to enter private channel/group via explicit link (#3759) 2020-01-13 20:57:06 -07:00
Elias Nahum
2951245d68
MM-21288 Fix attaching files on Android (#3805) 2020-01-13 22:46:27 -03:00
Saturnino Abril
f8698d0293 MM-21342 Fix leading zero on post by using react-intl by default and fallback to moment-timezone for unsupported locale (#3797)
* used react-intl for post time as default and moment-timezone as fallback

* add @testing-library/react-native to better test component rendering
2020-01-13 20:12:51 -03:00
Amit Uttam
a5330bc08f
MM-21369 Require server/site URL for deep links (#3770)
**Old (only worked without serverURL or siteURL)**

Beta
* `mattermost-beta://<teamname>/channels/<channelname>`
* `mattermost-beta://<teamname>/pl/<permalinkID>`

Release
* `mattermost-mobile://<teamname>/channels/<channelname>`
* `mattermost-mobile://<teamname>/pl/<permalinkID>`

**New working deep link patterns**

Beta
* `mattermost-beta://<server-or-site-URL><teamname>/channels/<channelname>`
* `mattermost-beta://<server-or-site-URL><teamname>/pl/<permalinkID>`
* `mattermost-beta://https://<server-or-site-URL><teamname>/channels/<channelname>`
* `mattermost-beta://https://<server-or-site-URL><teamname>/pl/<permalinkID>`

Note: Transport protocol (http, https, etc.) is optional.

Release
* `mattermost-mobile://<server-or-site-URL><teamname>/channels/<channelname>`
* `mattermost-mobile://<server-or-site-URL><teamname>/pl/<permalinkID>`
* `mattermost-mobile://https://<server-or-site-URL><teamname>/channels/<channelname>`
* `mattermost-mobile://https://<server-or-site-URL><teamname>/pl/<permalinkID>`

Note: Transport protocol (http, https, etc.) is optional.
2020-01-13 16:28:14 -03:00
CJ
13866bdfce MM-20625 Unit Tests (#3787)
* MM-20625 Unit Tests

* Updated tests
2020-01-13 12:35:10 -03:00
CJ
ee15776a06 MM-21230 Added check for first post (#3786)
* MM-21230 Added check for first post

Added a check to see if there was an original postId to validate the moreMessages check.

* Added comment
2020-01-13 12:23:10 -03:00
CJ
28b585284a Removed Markdown from Purpose on Channel Info (#3796) 2020-01-12 06:48:22 -05:00
Vladimir Lebedev
64d9f7e7f7 MM-18900 - Remove search unused status flags (#3772)
* Remove search unused status flags

* fix lint, fix wrong variable usage

* remove comment

* add test, fix bug with wrong PropTypes

* make test cleaner
2020-01-12 08:37:15 -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
Amit Uttam
a17983c1e4
MM-12215 Make deep link URL prefix configurable for Release/Debug (#3767)
Default deep link URL prefix: `mattermost-beta`

To set to `mattermost-mobile` (or anything else, for that matter) in production releases, set fastlane ENV var `DEEPLINK_PREFIX` to `mattermost-mobile`
2020-01-09 16:00:20 -03:00
Vladimir Lebedev
422fc5ee4a MM-18767 Remove deprecated lifecycle methods from post textbox (#3697)
* MM-18767 Remove deprecated lifecycle methods from post textbox

* fix current issues

* change deep equal compare to just compare, fix test

* remove redundant state initialization

* restore state

* move state from constructor
2020-01-09 23:07:55 +08:00
Chris Dobson
ce53a7ac29 MM-18571: Include self user in autocomplete (#3761)
* Include current user in search

* Removed unused parameters

* Include new text in i18n

* Update autocomplete tests to include current user

* Use FormattedText

* Update app/selectors/autocomplete.test.js

Co-Authored-By: Miguel Alatzar <migbot@users.noreply.github.com>

Co-authored-by: Miguel Alatzar <migbot@users.noreply.github.com>
2020-01-09 19:47:40 +08:00
CJ
e08155c81b MM-15307 Updated to use InteractionManager (#3666)
* MM-15307 Updated to use InteractionManager

Replaced the setTimeout with InteractionManager to resolve the delay set.

* Updated to apply animation to the input height

* Updated to apply animation to the input height

* Fixed eslint issue

* Updates per review

* Updates from feedback
2020-01-09 18:02:02 +08:00