* MM-30286 Detox/E2E: Add e2e test for MM-T3236
* Fix more testID hierarchies
* Fix typo
* Fix failing test
* Remove extra lines
* Updated to use string interpolation
* Update channels list element query
* Updated channel item unit test to be more consistent
* Fix error text testID hierarchies; fix edit channel info testIDs
* Fix snap file
* Fix line return
* MM-30286 Detox/E2E: Add e2e test for MM-T3222 and some cleanup
* Fix merge issues
* Fix more issues
* Fixed new line
* Remove redundant check
* Updated instance to getElement
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
* Emit the event for visible items in the thread screen
* Feedback review
* fix unit test
* check for deeplink before running the animation
* Load progressive image for recent mentions, saved / pinned posts & search
* On change, Group mentions are updated in autocomplete
* Converted getAssociatedGroupsForReference, searchAssociatedGroupsForReferenceLocal functions to reselectors
* Sending only state to getCurrentUserLocale in selector
* Added types to passed params
Co-authored-by: anurag shivarathri <anuragindianbraves@gmail.com>
* Adding E2E tests for at mention autocomplete
* Removing mentionComplete from at_mention autocomplete
- The component is already being hidden when there is no valid matchTerm or sections
- Setting mentionComplete to true after an autocomplete was selected prevented the autocomplete from rendering when @ is tapped a second time
* Updating E2E description
* Update detox/e2e/test/autocomplete/at_mention.e2e.js
Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>
* complete at-mention selection when there are no more sections
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>
* Open/Close Gallery transitions
* Include postId in file info & disable opening the gallery in some cases
* Add progress bar component
* Transition to gallery based on platform
* Improve getting the filename for non attachments
* Patch RNFetchBlob TS definition
* Add gallery types
* fix unit tests for message and post attachment
* add getLocalPath method
* Add react-native-share dependency
* Re-style gallery footer
* Refactor Gallery screen
* Double tap zoom in/out and translate
* Make android activity "transparent"
* Do not animate to height on dismissing gallery
* Open gallery for file uploads
* Fix borderRadius for gallery action button
* Use progress bar for file uploads
* Replace progress bar for file attachment document
* Upgrade RNN to 7.1.0 to fix share elements transitions
* Fix Gallery unit tests
* translate down when popping screen on iOS
* Swipe, Pan & Tap fixes
* fix gallery footer avatar eslint
* Fix gallery snapshot tests
* Use CompassIcon in Gallery
* Feedback from UX review
* Fix gallery UI for other file types
* Set other file type gallery button to 48pt
* init
* Pick one from mini preview and thumnail URL in file attachment image
* Blur thumbnail mini preview & update testID's
* Set blurRadious based on Platform OS
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
* Group mentions are not highlighted until they are posted
* Disable highlight when post is pending
* Reverted unit test
Co-authored-by: anurag shivarathri <anuragindianbraves@gmail.com>
*Summary*
- This PR adds storybook into the mobile repo, and adds a sample story for the existing "loading" component.
- In the root of the repo run `npm run storybook`. This step automatically scans and loads all stories. A new browser tab will open with the storybook interface. You can configure the storybook host url by updating the .env file in the root of the repo. This might be required if you're using a real device. When running in an emulator, the code tries to use the default network values.
- Then run the usual `npm run android` (or `npm run ios`) and `npm run start` commands
- Storybook has been integrated into the react-native-dev-menu. When the app is running in the emulator press CTRL+M or CMD+M to open the dev menu and select "Storybook". If running on a real device, shaking the device will bring up the react-native dev menu. You can also press d in the terminal where you ran npm run start to get the app running.
- The storybook interface will open in the mobile app. The stories can be controlled either through the desktop browser storybook UI or the mobile browser storybook UI. Both will render the component on the device.
*Ticket Link*
https://mattermost.atlassian.net/browse/MM-28845
*Device Information*
This PR was tested on:
Iphone 11 emulator running ios 13.7
Pixel 3XL emulator running Android 10
* MM-29948 Display error msg when pasting files and uploads are disabled
* Remove unnecessary ref and Animated.View
Co-authored-by: Miguel Alatzar <this.migbot@gmail.com>
* MM-28105 do not crash when in-app notification shows
* Use index.tsx to register the notification screen
* Fix notification e2e and some import cleanup
* Update iOS notification json
* e2e: Show the add reaction screen before receiving a notification
* Update snapshots
* Patch react-native-notifications to prevent iOS crash when opening
* Apply TM4J id
Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>
* MM-28688 Close sidebar when current channel is selected
* Update snapshot
* Apply suggestions from code review
Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>
* Fix iOS select_channel e2e and feedback review
Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>
* [MM-22366] Make user autocomplete also match on spaces
* Move template string to fullName variable
* Add Detox E2E tests for user autocomplete
* Add TM4J IDs
Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>
* Add test for keyword not associated with user
Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>
* Use AppGroupId from Info.plists instead of hardcoded constant
* Update script, ci & Makefile
* Update Cocoapods to 1.9.3
* Split android builds using ABI filters
* Update Fastlane deps & build scripts
* Update CI to use latests scripts
* Display app version & build number in select server screen
* Make generate scripts compatible with node < 12
* Build scripts
* add build script to package.json
* Update to use bundler 2.1.4 and CI with Xcode 12
* Fix script name for build:ios-unsigned
* Fix RN iOS scripts
* Update CI pods-dependencies step
* Add pipefail to android executor
* Update Fastlane
* Fix type in postinstall script
* update android executor and set TERM
* Fix S3 bucket name variable
* Apply suggestions from code review
Co-authored-by: Miguel Alatzar <migbot@users.noreply.github.com>
* Fix master unit tests
* use requireActual in jest setup
* Jest setup to use react instead of React
Co-authored-by: Miguel Alatzar <migbot@users.noreply.github.com>
* MM-T3201 initial test purpose with detox
* MM-T3201 spaces and more comments
* MM_T3201 update snapshot tests to include test id
* MM-T3201 edit test ID to follow naming convention, PR fix
* MM-T3201 change comments to indicate if action or expect
* MM-T3201 add more testID to create buttons
* MM-T3201 adding trailing commas and testID
* MM-T3201 fix style
* MM-T3201 fix snaps test
* MM-T3201 fix conflicts with prior PR
* MM-T3201 using test dependent on platform to test button behaviour
* Update detox/e2e/test/channels/create_public_channel.e2e.js
Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>
Co-authored-by: Joseph Baylon <joseph.baylon@mattermost.com>
* Automate MM-T3187
* Update the snapshots. Applied channel_item_display_name suggestion. Add verification for channels_list (to prove the testID works).
* Update testID. Move test to a new file under smoke test.
* Revert message_posting.e2e.js
* Applied suggestion from code review.
* Update detox/e2e/test/smoke_test/channels.e2e.js
Apply Saturnino's suggestion
Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>
Co-authored-by: Saturnino Abril <saturnino.abril@gmail.com>
* WIP: slash suggestion autocomplete
* WIP: patched styles a bit
* WIP: Adding styles
* Adding active state to autocomplete items
* Fixing style for channel mention item
* Fixing bugs + styling issues for Android
* Updating snapshot
* Fixing autocomplete to render on top of post draft
- Misc style fixes
* Renaming props, patching slash suggestion icon
* Fixing tests and lint errors
* Resolving post-merge issue with slash commands
* Fixing android positioning for autocomplete
* Fixing autocomplete not scrolling in edit_channel_info
* WIP: Fixing things according to UX Review
* UX Fixes to autocomplete
* Updating snapshots
* Updating snapshots, replacing slash-command icons
* Fixing android scrolling and positioning issues
* Fixing issues with date_suggestion not rendering
* Making use of the "ShowFullName" config in at_mention_item
* Removing top border on first autocomplete section
* Allowing autocomplete to be smaller than its maxWidth
* Fixing slash_suggestion padding
* removing "componentWillReceiveProps" from date_suggestion
* Changing edit_channel_info autocomplete offset
* Replacing toUpperCase() with textTransform: uppercase
* Fixing odd border issues + prop validation warning
* Restore section header background & add paddingBottom
* Patching up padding on channel mentions
- Reverting previous incorrect padding adjustments
* Removing inline 'completeSuggestion' function
* Removing brackets from style prop
* Improve empty state for Recent Mentions.
* Change backgroud color of icon.
* Improve empty states for flagged and pinned posts.
* Update pinned posts' test snapshot.
* Change NoResult style as per figma specs.
* Change NoResults icons according to UX specs.
* Change style according to UX feedback.
* 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>
* [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
* 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
* 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>
* 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
* 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
* 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
* Add popDismissToChannel
* Use popToRoot + dismissAllModals
* Just dismissAllModals and popToRoot
* Revert unnecessary changes
* Close permalink on popToRoot
* Emit after dismissAllModals and popToRoot
* 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>
* 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>
* 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>
* 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>
* 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>
* 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
* [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
* 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
* 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
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.
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.
* 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>
* 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
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.
* 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
* 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.
* 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>
* 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
* 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>
* 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
* 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>
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` .
* 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
* 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>
* 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
* 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
* 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
* 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>
* 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
* 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>
* 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
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.
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)
* 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>
* 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
* 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