* 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
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
* 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
* 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
* 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>
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.
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`
* 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
* 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>
* 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
* MM-17044 Load posts until no more are needed
* Improving post list tests for componentDidUpdate
Co-authored-by: mattermod <mattermod@users.noreply.github.com>
* Use post id when retrieving opengraph data from mattermost-redux
* Updated package.json with the appropriate PR for mattermost-redux
* Switch mattermost-redux back to master
* Fixing team join without the invite id
* Fixing tests
* Adding tests to verify proper behavior calling the correct function based on the server version
* Extract server version from headers
* Make linter happy
* Update mattermost-redux
* Update mattermost-redux
* MM-18054 Fix Comment Line showing
Restructured the check for the previous post to make sure comment line does not appear for posts on same thread, but from different users.
* MM-18054 Updated after review
Updated the logic to be more bulletproof
* MM-21085 Updated waitHydration
Updated the hydration of hte store to first check if it completed as this was being caused due to a race condition.
* MM-21085 Updated for callback
MM-21085 Updated for callback
* initial working code
* minimum changes for main sidebar working
* add settings sidebar back in
* fix visual bug with sidebar showing underneath
* fix bug for android
* cleanups
* minor cleanups and update snapshot
* add basic test
* fix style errors
* review changes
* MM-20790 Mark as Unread option should not be available on mobile if the server does not support it
* Check for server version with min 5.18v for showing the option
to mark as unread
* Change if condition
* MM-19837 Remove Opacity from AtMention Markdown
Removed the opacity that was set on the base text style for the markdown on AtMention for system messages.
* MM-19837 Updated opacity for AtMention
The baseTextStyle being used to set the opacity is used across the entire text format, so for this change where an AtMention is used, I added a new opacity to overwrite the on applied by the baseTextStyle.
* Making markdown tables more responsive
* Changing implementation of isTablet and isLandscape
* Fixing variable names & added more table styles
* Adding header backgrounds & iOS fixes
* Changing cell padding to 8
* Fixing positioning of expand table buttons
* Fixed android issues and flex render conditions
- Centered icon in expand button instead of using fixed paddings (icon was slightly off center)
- Fixed expand button rendering on android
- Separated full table view into ios / android to allow for separate styling
* Merging table back to single file
* Resolving conflicts & improving full table view
- Made the full table view scrollable through any part of the screen, as opposed to only the table area (only works on iOS)
- Resolved conflicts with PR that limits tables to 5 columns visible on channel view
- Made changes to keep behavior of tables consistent on table view
- Added logic to render "moreRight" element if table was cut in channel view
- Updated snapshot
* MM-19708 Adjusted display name width to 80% for landscape
Adjusted landscape maxWidth for both the base display of the name and the adjusted width with bot/reply buttons.
* Making less complex
* MM-19708 Reduced complexity of style code
Reduced complexity of style code
* MM-19708 Updated snapshots
* MM-19708 Updated for eslint
* MM-19834 Fixed direct mentions highlight color
Updated the AtMention to check if it will be highlighted before applying it's color. The highlight function was applying it's color before the AtMention color, so it was being overwritten.
* MM-19834 Start Unit Test
* MM-19834 Added Unit Tests
Added unit tests for the rendering of highlighted/non-highlighted displayname.
* MM-20201 Fixed asterisk on Nickname
Added optional prop to the Nickname field, which removes the asterisk
* MM-20201 Updated Position field also
Added optional prop to position field.
* Preview markdown table as 5x5 max
* Make linter happy
* Determine max columns from device width
* Add snapshot test
* Use Dimensions and update unit tests
* Remove async
* MM-17838 Wrap reactions when they exceed screen size
* Hide add reaction button after 40 reactions
* Hide add reaction button after 40 reactions
* Fix tests
* Fix crash when post has no reactions and convert to factory
* Create constant and use a separate prop for allowing more reactions
* [MM-16232] Android: Fetch notification in notificationReceiptDelivery (#3552)
* Fetch notification in notificationReceiptDelivery
* Fix patch
* Fix patch take 2
* No need to send user_id to ack endpoint
* Just putString in mNotificationProps
* Fix patch take 3
* Revert react-native-notifications patch
* Update patch and fix rejections
* Remove trailing newline in patch
* Move PushNotification changes to end of patch
* npm cache test
* Revert "npm cache test"
This reverts commit d31030aaeeb010c1c3d22a5f6196191eeb849add.
* Created patch after upgrading node
* Created patch after upgrading node take 2
* Remove androidx changes from patch
* Patch packages then jetify
* Cache node_modules without patches
* Remove adding of default message (#3557)
* [MM-16232] iOS: Fetch id-loaded push notification from server (#3556)
* Fetch notification from server
* Parse fetched notification response
* Fix id-loaded notifications for DM/GM's
* audit fix
* Only add keys if they exist
* Throw exception if response code is not 200
* Archived channels dropdown in more channels modal
* Rename redux actions for archived channels
* Fixed tests and updated snapshots
* Unit test for search in more_channels
* Use translation for dropdown label
* Minimum server requirement for dropdown
* Use BottomSheet instead of Picker component
* loadPublicAndArchivedChannels action instead of separate channel get actions
* Add styles to StyleSheet
* Update mattermost-redux hash
* Update mattermost-redux hash
* Default case for switching channels dropdown
* Improve imports in more_channels.js component
* Fix typo in import
* Add padding to dropdown if landscape
* Update snapshot
* Page counter for public and archive channels
* Updated mattermost-redux commit hash
* Bottom sheet title for ios
* i18n-extract for new showArchived and showPublic strings
* Update mattermost-redux commit hash to latest master
* MM-19037 Updated Progressive Image Loader
Set the return for the listener to return a null for hte loader images, stopping the component from thinking it had a loaded image on a failure.
Also enabled the thumbnail to make an additional attempt to load when it receives the null response.
* MM-19037 Updated Eslint
Eslint issue resolved
* MM-19037 Add Unit Tests
Added Unit tests
* empty commit
* [MM-16593] [MM-17175] [MM-17164] [MM-17189] [MM-17181] Android - Upgrade to RN 0.60 (#3145)
* Upgrade to react-native 0.60
* Use @sentry/react-native
* Manually link @sentry/react-native
* Address review comments
* Jetify after install
* Call jetify from node_modules
* Run npm install react-native-fast-image --save
* Link react-native-fast-image for Android
* Link react-native-fast-image to iOS Pod
* Replace Image with FastImage in emoji.js and remove redundant caching
* Remove duplicate sentry gradle
* Feedback review
* Remove FastImage and Sentry from the Podfile
* MM-18054 Checked for prev post comment line
Added check for prev post to stop the "Commented on" line when in same thread.
* MM-18054 Added Unit Tests
Added Unit Tests
* MM-18054 Update props
Updated the prop for isFirstReply
* [MM-10813] Design update for Post attachments
Fixes https://github.com/mattermost/mattermost-server/issues/12841
* Updated visual treatment for Post attachments (images, documents, videos)
* Grouped image attachments, expanding to fit Post width dimension
* Itemized listing of non-image attachments
* Special handling of "small" image attachments (<48 point width/height)
* Set attachment post width to max width of portrait orientation
Accounts for post display offset and extra spacing used for rendering post replies.
* Use available Post real estate: flex: 1 instead of width 100%
* Image spacing responsibility: AttachmentList -> AttachmentImage
* Fit download progress circle correctly over new attachment icons
* Layers progress circle over the icon, rather than under.
* Uses offset constant as far as possible, rather than fixed point spaces.
* Refactor props and 'more' counting for image file attachment(s)
* Implement conditional gutter between image attachments
Flex's `justifyContent: space-between` won't work in this case because of the use of `absoluteFill` and `paddingBottom: 100%` in the box placeholder for an image attachment to auto-fill *all* available flex space.
* Additional snapshots for Post file attachment scenarios
* Use new 'text' icon for text files (.txt, .rtf)
Depends on https://github.com/mattermost/mattermost-redux/pull/979
Even without the change to mattermost-redux above, text files will default to pre-existing "code" icon.
* Set file attachment icon background to theme
Default to transparent. Override if explicitly specified.
* Treat animated GIFs as images when auto-adjusting attachment width
* Fix images layout, progressive image margins, and gallery for images and videos
* fix on iPad (splitview, permanent sidebar) card types and image sizes
* Add all files back to the gallery
* MM-19697 - Fixed CameraRoll for iOS
Switched CameraRoll over to the react-native-community version as it was removed from the core package with RN 0.61.2
* MM-19697 - Fix Jest issues
Updated for jest issues
* MM-19966 Fixed Notification Settings
Fixed the save functionality for props. There was a change to combine notification settings that then did a deep comparison on two like objects. This change makes the comparison of the newly changed notification props and the previous props.
* Fix unit test
During the landscape changes from the previous release, I had added 8px of padding to the iOS landscape, which caused this issue to occur. This change reverts the added padding so that the height matches across the screens for the navigation bar.
To note, react-native-navigation is used for the info/thread headers and there is no way to adjust the height of this without replacing the header entirley.
* MM-18934 Fix padding on image attachment border
Removed padding from image padding as it was pushing the images outside of the box.
* MM-18934 Add spacing between border and image
Added a margin to progressive image to allow for a spacing with the absolutefill
* MM-18934 Fixed eslint
Fixed eslint issues
* MM-19733 fix posts getting behing post text box in thread screen
* Update app/components/safe_area_view/safe_area_view.ios.js
Co-Authored-By: Miguel Alatzar <migbot@users.noreply.github.com>
* Update app/components/safe_area_view/safe_area_view.ios.js
Co-Authored-By: Miguel Alatzar <migbot@users.noreply.github.com>
* Small refactor
* Fix snapshot test after merge
* MM-19308 Fixed date wrapping
Updated the displayName to check for the reply button and bot tag. If seen the displayName container is set from 60% to 55% to allow for the extra space.
* MM-19308 Updated logic and added tests
Updated logic based on feedback.
Added Jest/Snapshots
* MM-19308 Apply change to other sections
Applied the change to autoresponder/webhook section.