From ed2054592b6b3be0d527dfcd4c3282096c78fa05 Mon Sep 17 00:00:00 2001 From: Harrison Healey Date: Tue, 8 Oct 2019 01:54:07 -0400 Subject: [PATCH 01/21] MM-18463 Added update_badge notification when marking a channel as unread (#3352) * MM-18463 Ignore update_badge push notifications and clean up Java * MM-18463 Add iOS constants for push notification types * Address feedback --- .../rnbeta/CustomPushNotification.java | 73 +++++++++---------- ios/Mattermost/AppDelegate.m | 2 + 2 files changed, 38 insertions(+), 37 deletions(-) diff --git a/android/app/src/main/java/com/mattermost/rnbeta/CustomPushNotification.java b/android/app/src/main/java/com/mattermost/rnbeta/CustomPushNotification.java index 656a584e9..4ac1bdaa5 100644 --- a/android/app/src/main/java/com/mattermost/rnbeta/CustomPushNotification.java +++ b/android/app/src/main/java/com/mattermost/rnbeta/CustomPushNotification.java @@ -25,8 +25,9 @@ import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Collections; import java.util.Date; -import java.util.LinkedHashMap; +import java.util.HashMap; import java.util.List; +import java.util.Map; import com.wix.reactnativenotifications.core.notification.PushNotification; import com.wix.reactnativenotifications.core.NotificationIntentAdapter; @@ -44,8 +45,12 @@ public class CustomPushNotification extends PushNotification { public static final String KEY_TEXT_REPLY = "CAN_REPLY"; public static final String NOTIFICATION_REPLIED_EVENT_NAME = "notificationReplied"; - private static LinkedHashMap channelIdToNotificationCount = new LinkedHashMap(); - private static LinkedHashMap> channelIdToNotification = new LinkedHashMap>(); + private static final String PUSH_TYPE_MESSAGE = "message"; + private static final String PUSH_TYPE_CLEAR = "clear"; + private static final String PUSH_TYPE_UPDATE_BADGE = "update_badge"; + + private static Map channelIdToNotificationCount = new HashMap(); + private static Map> channelIdToNotification = new HashMap>(); private static AppLifecycleFacade lifecycleFacade; private static Context context; private static int badgeCount = 0; @@ -57,11 +62,9 @@ public class CustomPushNotification extends PushNotification { public static void clearNotification(Context mContext, int notificationId, String channelId) { if (notificationId != -1) { - Object objCount = channelIdToNotificationCount.get(channelId); - Integer count = -1; - - if (objCount != null) { - count = (Integer)objCount; + Integer count = channelIdToNotificationCount.get(channelId); + if (count == null) { + count = -1; } channelIdToNotificationCount.remove(channelId); @@ -105,22 +108,25 @@ public class CustomPushNotification extends PushNotification { if (channelId != null) { notificationId = channelId.hashCode(); - Object objCount = channelIdToNotificationCount.get(channelId); - Integer count = 1; - if (objCount != null) { - count = (Integer)objCount + 1; - } - channelIdToNotificationCount.put(channelId, count); - Object bundleArray = channelIdToNotification.get(channelId); - List list = null; - if (bundleArray == null) { - list = Collections.synchronizedList(new ArrayList(0)); - } else { - list = Collections.synchronizedList((List)bundleArray); + synchronized (channelIdToNotificationCount) { + Integer count = channelIdToNotificationCount.get(channelId); + if (count == null) { + count = 0; + } + + count += 1; + + channelIdToNotificationCount.put(channelId, count); } - synchronized (list) { - if (!"clear".equals(type)) { + + synchronized (channelIdToNotification) { + List list = channelIdToNotification.get(channelId); + if (list == null) { + list = Collections.synchronizedList(new ArrayList(0)); + } + + if (PUSH_TYPE_MESSAGE.equals(type)) { String senderName = getSenderName(data.getString("sender_name"), data.getString("channel_name"), data.getString("message")); data.putLong("time", new Date().getTime()); data.putString("sender_name", senderName); @@ -131,10 +137,13 @@ public class CustomPushNotification extends PushNotification { } } - if ("clear".equals(type)) { - cancelNotification(data, notificationId); - } else { + switch(type) { + case PUSH_TYPE_MESSAGE: super.postNotification(notificationId); + break; + case PUSH_TYPE_CLEAR: + cancelNotification(data, notificationId); + break; } notifyReceivedToJS(); @@ -382,22 +391,12 @@ public class CustomPushNotification extends PushNotification { mJsIOHelper.sendEventToJS(NOTIFICATION_RECEIVED_EVENT_NAME, mNotificationProps.asBundle(), mAppLifecycleFacade.getRunningReactContext()); } - public static Integer getMessageCountInChannel(String channelId) { - Object objCount = channelIdToNotificationCount.get(channelId); - if (objCount != null) { - return (Integer)objCount; - } - - return 1; - } - private void cancelNotification(Bundle data, int notificationId) { final String channelId = data.getString("channel_id"); - final String numberString = data.getString("badge"); - - CustomPushNotification.badgeCount = Integer.parseInt(numberString); CustomPushNotification.clearNotification(mContext.getApplicationContext(), notificationId, channelId); + final String badgeString = data.getString("badge"); + CustomPushNotification.badgeCount = Integer.parseInt(badgeString); ApplicationBadgeHelper.instance.setApplicationIconBadgeNumber(mContext.getApplicationContext(), CustomPushNotification.badgeCount); } diff --git a/ios/Mattermost/AppDelegate.m b/ios/Mattermost/AppDelegate.m index 33cce9067..ff2d2f0d6 100644 --- a/ios/Mattermost/AppDelegate.m +++ b/ios/Mattermost/AppDelegate.m @@ -26,7 +26,9 @@ @implementation AppDelegate +NSString* const NotificationMessageAction = @"message"; NSString* const NotificationClearAction = @"clear"; +NSString* const NotificationUpdateBadgeAction = @"update_badge"; -(void)application:(UIApplication *)application handleEventsForBackgroundURLSession:(NSString *)identifier completionHandler:(void (^)(void))completionHandler { os_log(OS_LOG_DEFAULT, "Mattermost will attach session from handleEventsForBackgroundURLSession!! identifier=%{public}@", identifier); From 10c3ede26e94c39eb4efcc356e5dfdc623e5e31f Mon Sep 17 00:00:00 2001 From: Harrison Healey Date: Fri, 11 Oct 2019 16:10:57 -0400 Subject: [PATCH 02/21] Revert "Revert accidentally merged changes from mark-as-unread branch (#3405)" This reverts commit 00356ad54333783d22bbc9eb4988638807f33811. --- app/reducers/views/channel.js | 5 + .../__snapshots__/post_options.test.js.snap | 498 +++++++++++------- app/screens/post_options/index.js | 3 + app/screens/post_options/post_option.js | 2 + app/screens/post_options/post_options.js | 69 ++- app/screens/post_options/post_options.test.js | 2 + assets/base/i18n/en.json | 1 + assets/base/images/post_menu/bookmark.png | Bin 0 -> 669 bytes assets/base/images/post_menu/bookmark@2x.png | Bin 0 -> 840 bytes assets/base/images/post_menu/bookmark@3x.png | Bin 0 -> 1023 bytes package-lock.json | 10 +- package.json | 2 +- packager/moduleNames.js | 1 + 13 files changed, 360 insertions(+), 233 deletions(-) create mode 100755 assets/base/images/post_menu/bookmark.png create mode 100755 assets/base/images/post_menu/bookmark@2x.png create mode 100755 assets/base/images/post_menu/bookmark@3x.png diff --git a/app/reducers/views/channel.js b/app/reducers/views/channel.js index 3ffce2343..f9c771fbb 100644 --- a/app/reducers/views/channel.js +++ b/app/reducers/views/channel.js @@ -348,6 +348,11 @@ function lastChannelViewTime(state = {}, action) { return state; } + case ChannelTypes.POST_UNREAD_SUCCESS: { + const data = action.data; + return {...state, [data.channelId]: data.lastViewedAt}; + } + default: return state; } diff --git a/app/screens/post_options/__snapshots__/post_options.test.js.snap b/app/screens/post_options/__snapshots__/post_options.test.js.snap index 7139754cc..596d208c3 100644 --- a/app/screens/post_options/__snapshots__/post_options.test.js.snap +++ b/app/screens/post_options/__snapshots__/post_options.test.js.snap @@ -1,192 +1,6 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`PostOptions should match snapshot, no option for system message to user who doesn't have the permission to delete 1`] = ` - - - - - - - - -`; - -exports[`PostOptions should match snapshot, showing Delete option only for system message to user who has permission to delete 1`] = ` + + + + +`; + +exports[`PostOptions should match snapshot, showing Delete option only for system message to user who has permission to delete 1`] = ` + + + + + + + { - const actions = [ - this.getEditOption(), - this.getReplyOption(), - this.getFlagOption(), - this.getPinOption(), - this.getAddReactionOption(), - this.getCopyPermalink(), - this.getCopyText(), - this.getDeleteOption(), - ]; + getMarkAsUnreadOption = () => { + const {post, isLandscape, theme} = this.props; + const {formatMessage} = this.context.intl; - return actions.filter((a) => a !== null); - }; - - getOthersPostOptions = () => { - const actions = [ - this.getReplyOption(), - this.getFlagOption(), - this.getAddReactionOption(), - this.getPinOption(), - this.getCopyPermalink(), - this.getCopyText(), - this.getEditOption(), - this.getDeleteOption(), - ]; - - return actions.filter((a) => a !== null); + if (!isSystemMessage(post)) { + return ( + + ); + } + return null; }; getPostOptions = () => { - const {isMyPost} = this.props; + const actions = [ + this.getReplyOption(), + this.getAddReactionOption(), + this.getMarkAsUnreadOption(), + this.getCopyPermalink(), + this.getFlagOption(), + this.getCopyText(), + this.getPinOption(), + this.getEditOption(), + this.getDeleteOption(), + ]; - return isMyPost ? this.getMyPostOptions() : this.getOthersPostOptions(); + return actions.filter((a) => a !== null); }; handleAddReaction = () => { @@ -324,6 +326,15 @@ export default class PostOptions extends PureComponent { }); }; + handleMarkUnread = () => { + const {actions, post, currentUserId} = this.props; + + this.closeWithAnimation(); + requestAnimationFrame(() => { + actions.setUnreadPost(currentUserId, post.id); + }); + } + handlePostDelete = () => { const {formatMessage} = this.context.intl; const {actions, post} = this.props; diff --git a/app/screens/post_options/post_options.test.js b/app/screens/post_options/post_options.test.js index 6be5ab8e1..d2e7e9a0a 100644 --- a/app/screens/post_options/post_options.test.js +++ b/app/screens/post_options/post_options.test.js @@ -26,6 +26,7 @@ describe('PostOptions', () => { removePost: jest.fn(), unflagPost: jest.fn(), unpinPost: jest.fn(), + setUnreadPost: jest.fn(), }; const post = { @@ -46,6 +47,7 @@ describe('PostOptions', () => { canEditUntil: -1, channelIsReadOnly: false, currentTeamUrl: 'http://localhost:8065/team-name', + currentUserId: 'user1', deviceHeight: 600, hasBeenDeleted: false, isFlagged: false, diff --git a/assets/base/i18n/en.json b/assets/base/i18n/en.json index 057487627..a99e0da2e 100644 --- a/assets/base/i18n/en.json +++ b/assets/base/i18n/en.json @@ -360,6 +360,7 @@ "mobile.post_info.add_reaction": "Add Reaction", "mobile.post_info.copy_text": "Copy Text", "mobile.post_info.flag": "Flag", + "mobile.post_info.mark_unread": "Mark post as unread", "mobile.post_info.pin": "Pin to Channel", "mobile.post_info.reply": "Reply", "mobile.post_info.unflag": "Unflag", diff --git a/assets/base/images/post_menu/bookmark.png b/assets/base/images/post_menu/bookmark.png new file mode 100755 index 0000000000000000000000000000000000000000..df28ccf585023660d36c68fbc856b8e87798703f GIT binary patch literal 669 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1mUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5Skx99p8++E9*{(|oHa#_AOTwPVt>)LW zjJSfBY<9etw|IPF@}^Dh)75^-`df!=OS;x$y1nSD!Gr*VZ^D|(R&~Ul-WJo4K7R|3 z^0!+H9(!H8s-wB<*F~!f%bz@z($0_KS^e&f`MQ{pync}tUlJ^~KXwT7OgI-{>-Z`B zjd9^^E~dieaZ$D{3uiwt&+_o(_z-wJ&#d;+;+MTImL;q4mj7MqwSNDX|H7tu zQi~Ex@{6n#g0oXgk~0)c&GifwG%Sn_EG#q?bQLm6N(zdt^!1CuvU)&`3g4VIy#pGi t0yC^6vm_^#K>-dt{e$&Alk@ZRL-TmdLD literal 0 HcmV?d00001 diff --git a/assets/base/images/post_menu/bookmark@2x.png b/assets/base/images/post_menu/bookmark@2x.png new file mode 100755 index 0000000000000000000000000000000000000000..7f1db30044eff1ac0edf28f247dfb121135eecf5 GIT binary patch literal 840 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}a}tmUKs7M+SzC{oH>NS%G|oWRD45dJguM!v-tY$DUh!@P+6=(yLU`q0KcVS>y)vIg-4nJ$S8pEE{@e4Ktc8rPhVH|#~d;O+`4DBxh-K}VBF{F;usQf`0doQ+AN6@2kN!? zvQ^_(Z}G~FWLIx#E(+xP$0jabB=A&?ed&`WGBHz>PC34nf3SsJ^X8Us{5O(3Cr#CRAZI(GrT2g0w*hCom zNz3jAEo8`y`}#bHM=-HTwf0!sd(L??lUr9!(qziG^D17UH`Gcpb)L-WC!w>R%+ug( zF&FdMZSnN1CR0aY&xbQMicP;(Bp#cyU{Zddx%HQiM=ULE``lV2rt=g(^j%!#G1Vfs zu<2gNhrpvdUcR4@I=#pI{d=xt)-tvFPj@q1=lGaOzvcR_CZ6qQ{X6^WB7wDHYU1c{^%=>4QPF#5JNM zC9x#cD!C{XNHG{07+UHYSm+vAgczDx85&xdm}(msSQ!}X_gDf-g$NC~`6-!cmAEyW z6P4Kp)ZhrRp|~vFDmgzlH#M(>LBTyWFSRJKB)`Z?Avim=BsoLD)LhR{LBqn>z`{aP zL02K8q@tJHDlo%JGD~t&85H2a(?3|>GdVv`KQs^MkCfv5 S-YuX6&EVYAW?~aSX}0_jbnFY+*-<_W8NG zxjyz6%mfx5)93njVZVdRhgWMW1Ya+#dgZ$Ef#Vhpr3w+BjoaJ~>UiWR zU|aFZQ>dHGYqrT+-(#nP%yw^n{qEeGuv0eGC;iIQ{L{+r{oR;gAi=}ttfG_on&GBI z^3@-$9!?o^Jbx+i=Wg_wXj!Ui{tSy+B+;*4{3 z?+RHOw7lo#|31OQ{vzE{cA;aM1)oEwr`^tXN(W1iHGE@HU(#xG{*7zolOM^%?`gfTuOBDdtxb{aWivLMo1! zAO9)woMDCG(KYinO@ErYME#F+mHF?o4>FAl4w`0`@)eMa^sz6RI6 zbrqi<#%{VVveUzV#mj9gjLx1v`L0hzxS84HdT;ZDcYkvDQ@q7g>nsZ01$|w5i z;j|as@{Uew(|~E9S<&(z)6_>f;#))G9s|>)YKdz^NlIc#s#S7PDv)9@GBC8%HL%b% zvIsFWvobWaGBMRQFt9Q(*zd6flz9*ua`RI%(<*UmI43Hz4XD8pWJ7UTx>a(1Zftzq`@LI0`H;cW)z4*}Q$iB}!wQcy literal 0 HcmV?d00001 diff --git a/package-lock.json b/package-lock.json index 830ce926c..2020b0fa4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14133,8 +14133,8 @@ "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==" }, "mattermost-redux": { - "version": "github:mattermost/mattermost-redux#3bb89a5450b94da564d3a286fefb5945a1c3fca8", - "from": "github:mattermost/mattermost-redux#3bb89a5450b94da564d3a286fefb5945a1c3fca8", + "version": "github:mattermost/mattermost-redux#dc5f8c1f30cbc6a25d4304f2923f5b78e674099d", + "from": "github:mattermost/mattermost-redux#dc5f8c1f30cbc6a25d4304f2923f5b78e674099d", "requires": { "deep-equal": "1.0.1", "eslint-plugin-header": "3.0.0", @@ -14147,7 +14147,7 @@ "redux": "4.0.4", "redux-action-buffer": "1.2.0", "redux-batched-actions": "0.4.1", - "redux-offline": "git+https://github.com/enahum/redux-offline.git#4bd85e7e3b279a2b11fb4d587808d583d2b5e7b5", + "redux-offline": "git+https://github.com/enahum/redux-offline.git#885024de96b6ec73650c340c8928066585c413df", "redux-persist": "4.9.1", "redux-thunk": "2.3.0", "reselect": "4.0.0", @@ -17575,8 +17575,8 @@ } }, "redux-offline": { - "version": "git+https://github.com/enahum/redux-offline.git#4bd85e7e3b279a2b11fb4d587808d583d2b5e7b5", - "from": "git+https://github.com/enahum/redux-offline.git#4bd85e7e3b279a2b11fb4d587808d583d2b5e7b5", + "version": "git+https://github.com/enahum/redux-offline.git#885024de96b6ec73650c340c8928066585c413df", + "from": "git+https://github.com/enahum/redux-offline.git#885024de96b6ec73650c340c8928066585c413df", "requires": { "@react-native-community/netinfo": "^4.1.3", "redux-persist": "^4.5.0" diff --git a/package.json b/package.json index be2be758d..7ef0ff97c 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "intl": "1.2.5", "jail-monkey": "2.2.0", "jsc-android": "241213.2.0", - "mattermost-redux": "github:mattermost/mattermost-redux#3bb89a5450b94da564d3a286fefb5945a1c3fca8", + "mattermost-redux": "github:mattermost/mattermost-redux#dc5f8c1f30cbc6a25d4304f2923f5b78e674099d", "mime-db": "1.40.0", "moment-timezone": "0.5.25", "prop-types": "15.7.2", diff --git a/packager/moduleNames.js b/packager/moduleNames.js index 9a92fb941..a7c0e11a1 100644 --- a/packager/moduleNames.js +++ b/packager/moduleNames.js @@ -303,6 +303,7 @@ module.exports = [ 'dist/assets/images/icons/word.png', 'dist/assets/images/post_header/flag.png', 'dist/assets/images/post_header/pin.png', + 'dist/assets/images/post_header/bookmark.png', 'dist/assets/images/profile.jpg', 'dist/assets/images/status/away.png', 'dist/assets/images/status/dnd.png', From 6d99eb16a48b5899840b201da63502ed0a3197bd Mon Sep 17 00:00:00 2001 From: Harrison Healey Date: Mon, 21 Oct 2019 09:33:17 -0400 Subject: [PATCH 03/21] Update mattermost-redux --- package-lock.json | 57 ++++++++++++++++++++++++++++++++--------------- package.json | 2 +- 2 files changed, 40 insertions(+), 19 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2020b0fa4..fe4ea7c73 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8496,7 +8496,8 @@ "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "optional": true }, "aproba": { "version": "1.2.0", @@ -8517,12 +8518,14 @@ "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "optional": true }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -8537,17 +8540,20 @@ "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "optional": true }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "optional": true }, "console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -8664,7 +8670,8 @@ "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "optional": true }, "ini": { "version": "1.3.5", @@ -8676,6 +8683,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -8690,6 +8698,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -8697,12 +8706,14 @@ "minimist": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "optional": true }, "minipass": { "version": "2.3.5", "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz", "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==", + "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -8721,6 +8732,7 @@ "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "optional": true, "requires": { "minimist": "0.0.8" } @@ -8801,7 +8813,8 @@ "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "optional": true }, "object-assign": { "version": "4.1.1", @@ -8813,6 +8826,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "optional": true, "requires": { "wrappy": "1" } @@ -8898,7 +8912,8 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -8934,6 +8949,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -8953,6 +8969,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -8996,12 +9013,14 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "optional": true }, "yallist": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", - "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==" + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", + "optional": true } } }, @@ -14133,8 +14152,8 @@ "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==" }, "mattermost-redux": { - "version": "github:mattermost/mattermost-redux#dc5f8c1f30cbc6a25d4304f2923f5b78e674099d", - "from": "github:mattermost/mattermost-redux#dc5f8c1f30cbc6a25d4304f2923f5b78e674099d", + "version": "github:mattermost/mattermost-redux#6e1510f0ced2ac1a63360cb9e000d5b3d3c34d30", + "from": "github:mattermost/mattermost-redux#6e1510f0ced2ac1a63360cb9e000d5b3d3c34d30", "requires": { "deep-equal": "1.0.1", "eslint-plugin-header": "3.0.0", @@ -17225,7 +17244,8 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true + "dev": true, + "optional": true }, "braces": { "version": "2.3.2", @@ -17488,7 +17508,8 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true + "dev": true, + "optional": true }, "micromatch": { "version": "3.1.10", @@ -17583,9 +17604,9 @@ }, "dependencies": { "@react-native-community/netinfo": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/@react-native-community/netinfo/-/netinfo-4.3.0.tgz", - "integrity": "sha512-bYlmjb5muMO1ag5Zzk95OjjxPWFVG1Nrr1x/I95/b99llgoFa3JZSSnlxxAMek2W+c/iknT13oyKfFpQbXysFQ==" + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@react-native-community/netinfo/-/netinfo-4.4.0.tgz", + "integrity": "sha512-qqNWMOsrDjj/daqV21ID2T8mNUjZD4pdx3PuWyE65gzKh2w+oMnzKb+J0NbLyZPn3wwLwU1+Cpf58A0ff5szjQ==" } } }, diff --git a/package.json b/package.json index 7ef0ff97c..90220dfa6 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "intl": "1.2.5", "jail-monkey": "2.2.0", "jsc-android": "241213.2.0", - "mattermost-redux": "github:mattermost/mattermost-redux#dc5f8c1f30cbc6a25d4304f2923f5b78e674099d", + "mattermost-redux": "github:mattermost/mattermost-redux#6e1510f0ced2ac1a63360cb9e000d5b3d3c34d30", "mime-db": "1.40.0", "moment-timezone": "0.5.25", "prop-types": "15.7.2", From 9b758417d482258de2328a0ae56ffcbd97715ee8 Mon Sep 17 00:00:00 2001 From: Harrison Healey Date: Mon, 21 Oct 2019 13:39:38 -0400 Subject: [PATCH 04/21] Update mattermost-redux --- .../profile_picture_button.test.js.snap | 1 + .../__snapshots__/user_list_test.test.js.snap | 8 ++ .../file_attachment.test.js.snap | 1 + .../file_attachment_list.test.js.snap | 1 + .../__snapshots__/post_textbox.test.js.snap | 2 + .../__snapshots__/channel_item.test.js.snap | 10 +- .../channel_nav_bar.test.js.snap | 1 + .../channel_drawer_button.test.js.snap | 2 +- .../__snapshots__/channel_info.test.js.snap | 11 +++ .../channel_info_header.test.js.snap | 6 ++ .../channel_members.test.js.snap | 1 + .../__snapshots__/edit_profile.test.js.snap | 1 + .../error_teams_list.test.js.snap | 1 + .../__snapshots__/flagged_posts.test.js.snap | 1 + .../interactive_dialog.test.js.snap | 1 + .../__snapshots__/more_channels.test.js.snap | 1 + .../__snapshots__/selected_users.test.js.snap | 4 + .../__snapshots__/post_options.test.js.snap | 20 ++++ .../reaction_header.test.js.snap | 4 + .../__snapshots__/reaction_list.test.js.snap | 5 + .../recent_mentions.test.js.snap | 1 + .../__snapshots__/select_team.test.js.snap | 2 + .../selector_screen.test.js.snap | 6 ++ .../display_settings.test.js.snap | 3 + ...cation_settings_email.android.test.js.snap | 1 + ...tification_settings_email.ios.test.js.snap | 3 + ...on_settings_mentions_keywords.test.js.snap | 2 + .../__snapshots__/sidebar.test.js.snap | 2 + .../theme/__snapshots__/theme.test.js.snap | 4 + .../terms_of_service.test.js.snap | 1 + .../__snapshots__/user_profile.test.js.snap | 3 + package-lock.json | 96 ++++++++----------- package.json | 4 +- 33 files changed, 151 insertions(+), 59 deletions(-) diff --git a/app/components/__snapshots__/profile_picture_button.test.js.snap b/app/components/__snapshots__/profile_picture_button.test.js.snap index 7e959089f..fab53b130 100644 --- a/app/components/__snapshots__/profile_picture_button.test.js.snap +++ b/app/components/__snapshots__/profile_picture_button.test.js.snap @@ -27,6 +27,7 @@ exports[`profile_picture_button should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/components/custom_list/user_list_row/__snapshots__/user_list_test.test.js.snap b/app/components/custom_list/user_list_row/__snapshots__/user_list_test.test.js.snap index fdb73806e..2d62ec3d1 100644 --- a/app/components/custom_list/user_list_row/__snapshots__/user_list_test.test.js.snap +++ b/app/components/custom_list/user_list_row/__snapshots__/user_list_test.test.js.snap @@ -74,6 +74,7 @@ exports[`UserListRow should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -105,6 +106,7 @@ exports[`UserListRow should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -202,6 +204,7 @@ exports[`UserListRow should match snapshot for currentUser with (you) populated "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -233,6 +236,7 @@ exports[`UserListRow should match snapshot for currentUser with (you) populated "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -332,6 +336,7 @@ exports[`UserListRow should match snapshot for deactivated user 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -363,6 +368,7 @@ exports[`UserListRow should match snapshot for deactivated user 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -473,6 +479,7 @@ exports[`UserListRow should match snapshot for guest user 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -504,6 +511,7 @@ exports[`UserListRow should match snapshot for guest user 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/components/file_attachment_list/__snapshots__/file_attachment.test.js.snap b/app/components/file_attachment_list/__snapshots__/file_attachment.test.js.snap index 2e93e4b54..a26f8be29 100644 --- a/app/components/file_attachment_list/__snapshots__/file_attachment.test.js.snap +++ b/app/components/file_attachment_list/__snapshots__/file_attachment.test.js.snap @@ -42,6 +42,7 @@ exports[`FileAttachment should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/components/file_attachment_list/__snapshots__/file_attachment_list.test.js.snap b/app/components/file_attachment_list/__snapshots__/file_attachment_list.test.js.snap index 60e646370..f1387431d 100644 --- a/app/components/file_attachment_list/__snapshots__/file_attachment_list.test.js.snap +++ b/app/components/file_attachment_list/__snapshots__/file_attachment_list.test.js.snap @@ -48,6 +48,7 @@ exports[`PostAttachmentOpenGraph should match snapshot with a single image file "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/components/post_textbox/__snapshots__/post_textbox.test.js.snap b/app/components/post_textbox/__snapshots__/post_textbox.test.js.snap index 924bdf35f..631f273e2 100644 --- a/app/components/post_textbox/__snapshots__/post_textbox.test.js.snap +++ b/app/components/post_textbox/__snapshots__/post_textbox.test.js.snap @@ -44,6 +44,7 @@ exports[`PostTextBox should match, full snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -122,6 +123,7 @@ exports[`PostTextBox should match, full snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/components/sidebars/main/channels_list/channel_item/__snapshots__/channel_item.test.js.snap b/app/components/sidebars/main/channels_list/channel_item/__snapshots__/channel_item.test.js.snap index 302538d24..2a65161cd 100644 --- a/app/components/sidebars/main/channels_list/channel_item/__snapshots__/channel_item.test.js.snap +++ b/app/components/sidebars/main/channels_list/channel_item/__snapshots__/channel_item.test.js.snap @@ -56,6 +56,7 @@ exports[`ChannelItem should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -172,6 +173,7 @@ exports[`ChannelItem should match snapshot for current user i.e currentUser (you "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -287,6 +289,7 @@ exports[`ChannelItem should match snapshot for current user i.e currentUser (you "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -402,6 +405,7 @@ exports[`ChannelItem should match snapshot for deactivated user and is currentCh "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -506,6 +510,7 @@ exports[`ChannelItem should match snapshot for deactivated user and is searchRes "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -611,6 +616,7 @@ exports[`ChannelItem should match snapshot for deactivated user and not searchRe "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -720,6 +726,7 @@ exports[`ChannelItem should match snapshot with draft 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -827,6 +834,7 @@ exports[`ChannelItem should match snapshot with mentions and muted 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -894,7 +902,7 @@ exports[`ChannelItem should match snapshot with mentions and muted 1`] = ` onPress={[Function]} style={ Object { - "backgroundColor": undefined, + "backgroundColor": "#ffffff", "height": 21, "padding": 3, "position": "relative", diff --git a/app/screens/channel/channel_nav_bar/__snapshots__/channel_nav_bar.test.js.snap b/app/screens/channel/channel_nav_bar/__snapshots__/channel_nav_bar.test.js.snap index 7db69c304..329721d83 100644 --- a/app/screens/channel/channel_nav_bar/__snapshots__/channel_nav_bar.test.js.snap +++ b/app/screens/channel/channel_nav_bar/__snapshots__/channel_nav_bar.test.js.snap @@ -38,6 +38,7 @@ exports[`ChannelNavBar should match, full snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/channel/channel_nav_bar/channel_drawer_button/__snapshots__/channel_drawer_button.test.js.snap b/app/screens/channel/channel_nav_bar/channel_drawer_button/__snapshots__/channel_drawer_button.test.js.snap index df71b3cb8..90b7fd840 100644 --- a/app/screens/channel/channel_nav_bar/channel_drawer_button/__snapshots__/channel_drawer_button.test.js.snap +++ b/app/screens/channel/channel_nav_bar/channel_drawer_button/__snapshots__/channel_drawer_button.test.js.snap @@ -90,7 +90,7 @@ exports[`ChannelDrawerButton should match, full snapshot 2`] = ` onPress={[Function]} style={ Object { - "backgroundColor": undefined, + "backgroundColor": "#ffffff", "height": 19, "padding": 3, } diff --git a/app/screens/channel_info/__snapshots__/channel_info.test.js.snap b/app/screens/channel_info/__snapshots__/channel_info.test.js.snap index fd0cd0029..5f998e075 100644 --- a/app/screens/channel_info/__snapshots__/channel_info.test.js.snap +++ b/app/screens/channel_info/__snapshots__/channel_info.test.js.snap @@ -44,6 +44,7 @@ exports[`channel_info should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -95,6 +96,7 @@ exports[`channel_info should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -143,6 +145,7 @@ exports[`channel_info should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -191,6 +194,7 @@ exports[`channel_info should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -238,6 +242,7 @@ exports[`channel_info should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -287,6 +292,7 @@ exports[`channel_info should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -336,6 +342,7 @@ exports[`channel_info should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -385,6 +392,7 @@ exports[`channel_info should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -434,6 +442,7 @@ exports[`channel_info should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -484,6 +493,7 @@ exports[`channel_info should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -546,6 +556,7 @@ exports[`channel_info should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/channel_info/__snapshots__/channel_info_header.test.js.snap b/app/screens/channel_info/__snapshots__/channel_info_header.test.js.snap index 0122d3937..479afcd5c 100644 --- a/app/screens/channel_info/__snapshots__/channel_info_header.test.js.snap +++ b/app/screens/channel_info/__snapshots__/channel_info_header.test.js.snap @@ -47,6 +47,7 @@ exports[`channel_info_header should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -463,6 +464,7 @@ exports[`channel_info_header should match snapshot when DM and hasGuests and is "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -907,6 +909,7 @@ exports[`channel_info_header should match snapshot when DM and hasGuests but its "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -1323,6 +1326,7 @@ exports[`channel_info_header should match snapshot when GM and hasGuests 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -1767,6 +1771,7 @@ exports[`channel_info_header should match snapshot when is group constrained 1`] "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -2205,6 +2210,7 @@ exports[`channel_info_header should match snapshot when public channel and hasGu "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/channel_members/__snapshots__/channel_members.test.js.snap b/app/screens/channel_members/__snapshots__/channel_members.test.js.snap index 5517ea5e7..999aacad0 100644 --- a/app/screens/channel_members/__snapshots__/channel_members.test.js.snap +++ b/app/screens/channel_members/__snapshots__/channel_members.test.js.snap @@ -68,6 +68,7 @@ exports[`ChannelMembers should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/edit_profile/__snapshots__/edit_profile.test.js.snap b/app/screens/edit_profile/__snapshots__/edit_profile.test.js.snap index 2830f2a22..dc81c2143 100644 --- a/app/screens/edit_profile/__snapshots__/edit_profile.test.js.snap +++ b/app/screens/edit_profile/__snapshots__/edit_profile.test.js.snap @@ -40,6 +40,7 @@ exports[`edit_profile should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/error_teams_list/__snapshots__/error_teams_list.test.js.snap b/app/screens/error_teams_list/__snapshots__/error_teams_list.test.js.snap index 4f985c336..16c39697a 100644 --- a/app/screens/error_teams_list/__snapshots__/error_teams_list.test.js.snap +++ b/app/screens/error_teams_list/__snapshots__/error_teams_list.test.js.snap @@ -27,6 +27,7 @@ exports[`ErrorTeamsList should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/flagged_posts/__snapshots__/flagged_posts.test.js.snap b/app/screens/flagged_posts/__snapshots__/flagged_posts.test.js.snap index e6c7cbacd..6c2a19af1 100644 --- a/app/screens/flagged_posts/__snapshots__/flagged_posts.test.js.snap +++ b/app/screens/flagged_posts/__snapshots__/flagged_posts.test.js.snap @@ -23,6 +23,7 @@ exports[`FlaggedPosts should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/interactive_dialog/__snapshots__/interactive_dialog.test.js.snap b/app/screens/interactive_dialog/__snapshots__/interactive_dialog.test.js.snap index 8dc6f43f0..8bfa4f29b 100644 --- a/app/screens/interactive_dialog/__snapshots__/interactive_dialog.test.js.snap +++ b/app/screens/interactive_dialog/__snapshots__/interactive_dialog.test.js.snap @@ -30,6 +30,7 @@ exports[`InteractiveDialog should display introduction text if present 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/more_channels/__snapshots__/more_channels.test.js.snap b/app/screens/more_channels/__snapshots__/more_channels.test.js.snap index 9023ef399..a0921f6cd 100644 --- a/app/screens/more_channels/__snapshots__/more_channels.test.js.snap +++ b/app/screens/more_channels/__snapshots__/more_channels.test.js.snap @@ -96,6 +96,7 @@ exports[`MoreChannels should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/more_dms/selected_users/__snapshots__/selected_users.test.js.snap b/app/screens/more_dms/selected_users/__snapshots__/selected_users.test.js.snap index 31baa16f6..7beed8f0b 100644 --- a/app/screens/more_dms/selected_users/__snapshots__/selected_users.test.js.snap +++ b/app/screens/more_dms/selected_users/__snapshots__/selected_users.test.js.snap @@ -32,6 +32,7 @@ exports[`SelectedUsers should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -109,6 +110,7 @@ exports[`SelectedUsers should match snapshot for no warning message 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -168,6 +170,7 @@ exports[`SelectedUsers should match snapshot to show warning for ability to add "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -205,6 +208,7 @@ exports[`SelectedUsers should match snapshot to show warning for ability to add "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/post_options/__snapshots__/post_options.test.js.snap b/app/screens/post_options/__snapshots__/post_options.test.js.snap index 596d208c3..c7c26d3a9 100644 --- a/app/screens/post_options/__snapshots__/post_options.test.js.snap +++ b/app/screens/post_options/__snapshots__/post_options.test.js.snap @@ -24,6 +24,7 @@ exports[`PostOptions should match snapshot, no option for system message to user "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -59,6 +60,7 @@ exports[`PostOptions should match snapshot, no option for system message to user "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -94,6 +96,7 @@ exports[`PostOptions should match snapshot, no option for system message to user "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -128,6 +131,7 @@ exports[`PostOptions should match snapshot, no option for system message to user "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -163,6 +167,7 @@ exports[`PostOptions should match snapshot, no option for system message to user "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -198,6 +203,7 @@ exports[`PostOptions should match snapshot, no option for system message to user "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -244,6 +250,7 @@ exports[`PostOptions should match snapshot, showing Delete option only for syste "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -279,6 +286,7 @@ exports[`PostOptions should match snapshot, showing Delete option only for syste "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -314,6 +322,7 @@ exports[`PostOptions should match snapshot, showing Delete option only for syste "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -348,6 +357,7 @@ exports[`PostOptions should match snapshot, showing Delete option only for syste "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -383,6 +393,7 @@ exports[`PostOptions should match snapshot, showing Delete option only for syste "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -418,6 +429,7 @@ exports[`PostOptions should match snapshot, showing Delete option only for syste "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -453,6 +465,7 @@ exports[`PostOptions should match snapshot, showing Delete option only for syste "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -499,6 +512,7 @@ exports[`PostOptions should match snapshot, showing all possible options 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -534,6 +548,7 @@ exports[`PostOptions should match snapshot, showing all possible options 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -569,6 +584,7 @@ exports[`PostOptions should match snapshot, showing all possible options 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -603,6 +619,7 @@ exports[`PostOptions should match snapshot, showing all possible options 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -638,6 +655,7 @@ exports[`PostOptions should match snapshot, showing all possible options 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -673,6 +691,7 @@ exports[`PostOptions should match snapshot, showing all possible options 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -708,6 +727,7 @@ exports[`PostOptions should match snapshot, showing all possible options 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/reaction_list/__snapshots__/reaction_header.test.js.snap b/app/screens/reaction_list/__snapshots__/reaction_header.test.js.snap index 5215f84b3..45126e682 100644 --- a/app/screens/reaction_list/__snapshots__/reaction_header.test.js.snap +++ b/app/screens/reaction_list/__snapshots__/reaction_header.test.js.snap @@ -35,6 +35,7 @@ exports[`ReactionHeader should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -69,6 +70,7 @@ exports[`ReactionHeader should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -110,6 +112,7 @@ Array [ "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -144,6 +147,7 @@ Array [ "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/reaction_list/__snapshots__/reaction_list.test.js.snap b/app/screens/reaction_list/__snapshots__/reaction_list.test.js.snap index 173d12bd8..27a9ef411 100644 --- a/app/screens/reaction_list/__snapshots__/reaction_list.test.js.snap +++ b/app/screens/reaction_list/__snapshots__/reaction_list.test.js.snap @@ -24,6 +24,7 @@ exports[`ReactionList should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -64,6 +65,7 @@ exports[`ReactionList should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -119,6 +121,7 @@ exports[`ReactionList should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -180,6 +183,7 @@ Array [ "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -235,6 +239,7 @@ Array [ "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/recent_mentions/__snapshots__/recent_mentions.test.js.snap b/app/screens/recent_mentions/__snapshots__/recent_mentions.test.js.snap index 33c35a8e9..4972ac358 100644 --- a/app/screens/recent_mentions/__snapshots__/recent_mentions.test.js.snap +++ b/app/screens/recent_mentions/__snapshots__/recent_mentions.test.js.snap @@ -23,6 +23,7 @@ exports[`RecentMentions should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/select_team/__snapshots__/select_team.test.js.snap b/app/screens/select_team/__snapshots__/select_team.test.js.snap index 9efe63707..449a83f73 100644 --- a/app/screens/select_team/__snapshots__/select_team.test.js.snap +++ b/app/screens/select_team/__snapshots__/select_team.test.js.snap @@ -18,6 +18,7 @@ exports[`SelectTeam should match snapshot for fail of teams 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -119,6 +120,7 @@ exports[`SelectTeam should match snapshot for teams 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/selector_screen/__snapshots__/selector_screen.test.js.snap b/app/screens/selector_screen/__snapshots__/selector_screen.test.js.snap index 8c500650a..e14cde365 100644 --- a/app/screens/selector_screen/__snapshots__/selector_screen.test.js.snap +++ b/app/screens/selector_screen/__snapshots__/selector_screen.test.js.snap @@ -74,6 +74,7 @@ exports[`SelectorScreen should match snapshot for channels 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -169,6 +170,7 @@ exports[`SelectorScreen should match snapshot for channels 2`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -271,6 +273,7 @@ exports[`SelectorScreen should match snapshot for explicit options 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -366,6 +369,7 @@ exports[`SelectorScreen should match snapshot for searching 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -461,6 +465,7 @@ exports[`SelectorScreen should match snapshot for users 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -556,6 +561,7 @@ exports[`SelectorScreen should match snapshot for users 2`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/settings/display_settings/__snapshots__/display_settings.test.js.snap b/app/screens/settings/display_settings/__snapshots__/display_settings.test.js.snap index 763e89815..c114e1b40 100644 --- a/app/screens/settings/display_settings/__snapshots__/display_settings.test.js.snap +++ b/app/screens/settings/display_settings/__snapshots__/display_settings.test.js.snap @@ -48,6 +48,7 @@ exports[`DisplaySettings should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -126,6 +127,7 @@ exports[`DisplaySettings should match snapshot on Tablet devices 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -165,6 +167,7 @@ exports[`DisplaySettings should match snapshot on Tablet devices 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/settings/notification_settings_email/__snapshots__/notification_settings_email.android.test.js.snap b/app/screens/settings/notification_settings_email/__snapshots__/notification_settings_email.android.test.js.snap index f3b4e57b5..008021b18 100644 --- a/app/screens/settings/notification_settings_email/__snapshots__/notification_settings_email.android.test.js.snap +++ b/app/screens/settings/notification_settings_email/__snapshots__/notification_settings_email.android.test.js.snap @@ -27,6 +27,7 @@ exports[`NotificationSettingsEmailAndroid should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/settings/notification_settings_email/__snapshots__/notification_settings_email.ios.test.js.snap b/app/screens/settings/notification_settings_email/__snapshots__/notification_settings_email.ios.test.js.snap index 6b4777560..b5bc0c1e8 100644 --- a/app/screens/settings/notification_settings_email/__snapshots__/notification_settings_email.ios.test.js.snap +++ b/app/screens/settings/notification_settings_email/__snapshots__/notification_settings_email.ios.test.js.snap @@ -24,6 +24,7 @@ exports[`NotificationSettingsEmailIos should match snapshot, renderEmailSection "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -66,6 +67,7 @@ exports[`NotificationSettingsEmailIos should match snapshot, renderEmailSection "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -117,6 +119,7 @@ exports[`NotificationSettingsEmailIos should match snapshot, renderEmailSection "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/settings/notification_settings_mentions_keywords/__snapshots__/notification_settings_mentions_keywords.test.js.snap b/app/screens/settings/notification_settings_mentions_keywords/__snapshots__/notification_settings_mentions_keywords.test.js.snap index fecf1832a..d1fd4d46d 100644 --- a/app/screens/settings/notification_settings_mentions_keywords/__snapshots__/notification_settings_mentions_keywords.test.js.snap +++ b/app/screens/settings/notification_settings_mentions_keywords/__snapshots__/notification_settings_mentions_keywords.test.js.snap @@ -47,6 +47,7 @@ NotificationSettingsMentionsKeywords { "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -130,6 +131,7 @@ NotificationSettingsMentionsKeywords { "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/settings/sidebar/__snapshots__/sidebar.test.js.snap b/app/screens/settings/sidebar/__snapshots__/sidebar.test.js.snap index 836af5ec8..8d8386915 100644 --- a/app/screens/settings/sidebar/__snapshots__/sidebar.test.js.snap +++ b/app/screens/settings/sidebar/__snapshots__/sidebar.test.js.snap @@ -35,6 +35,7 @@ exports[`SidebarSettings should match, full snapshot 2`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -89,6 +90,7 @@ exports[`SidebarSettings should match, full snapshot 2`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/settings/theme/__snapshots__/theme.test.js.snap b/app/screens/settings/theme/__snapshots__/theme.test.js.snap index 9aaff6908..a22cf10aa 100644 --- a/app/screens/settings/theme/__snapshots__/theme.test.js.snap +++ b/app/screens/settings/theme/__snapshots__/theme.test.js.snap @@ -61,6 +61,7 @@ exports[`Theme should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -106,6 +107,7 @@ exports[`Theme should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -151,6 +153,7 @@ exports[`Theme should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -196,6 +199,7 @@ exports[`Theme should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/terms_of_service/__snapshots__/terms_of_service.test.js.snap b/app/screens/terms_of_service/__snapshots__/terms_of_service.test.js.snap index 324248811..803b8f1ef 100644 --- a/app/screens/terms_of_service/__snapshots__/terms_of_service.test.js.snap +++ b/app/screens/terms_of_service/__snapshots__/terms_of_service.test.js.snap @@ -305,6 +305,7 @@ exports[`TermsOfService should match snapshot for fail of get terms 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/user_profile/__snapshots__/user_profile.test.js.snap b/app/screens/user_profile/__snapshots__/user_profile.test.js.snap index fbbb22f04..a0566f8f7 100644 --- a/app/screens/user_profile/__snapshots__/user_profile.test.js.snap +++ b/app/screens/user_profile/__snapshots__/user_profile.test.js.snap @@ -64,6 +64,7 @@ exports[`user_profile should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -95,6 +96,7 @@ exports[`user_profile should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -218,6 +220,7 @@ exports[`user_profile should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", + "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/package-lock.json b/package-lock.json index fe4ea7c73..cd987ca87 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "mattermost-mobile", - "version": "1.23.0", + "version": "1.25.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -4954,7 +4954,8 @@ "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true }, "atob": { "version": "2.1.2", @@ -5817,8 +5818,7 @@ "clone": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", - "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", - "dev": true + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=" }, "co": { "version": "4.6.0", @@ -5862,6 +5862,7 @@ "version": "1.0.6", "resolved": "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "dev": true, "requires": { "delayed-stream": "~1.0.0" } @@ -6341,7 +6342,8 @@ "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true }, "delegate": { "version": "3.2.0", @@ -6954,7 +6956,8 @@ "eslint-plugin-header": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/eslint-plugin-header/-/eslint-plugin-header-3.0.0.tgz", - "integrity": "sha512-OIu2ciVW8jK4Ove4JHm1I7X0C98PZuLCyCsoUhAm2HpyGS+zr34qLM6iV06unnDvssvvEh5BkOfaLRF+N7cGoQ==" + "integrity": "sha512-OIu2ciVW8jK4Ove4JHm1I7X0C98PZuLCyCsoUhAm2HpyGS+zr34qLM6iV06unnDvssvvEh5BkOfaLRF+N7cGoQ==", + "dev": true }, "eslint-plugin-jest": { "version": "22.5.1", @@ -9072,8 +9075,7 @@ "get-params": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/get-params/-/get-params-0.1.2.tgz", - "integrity": "sha1-uuDfq6WIoMYNeDTA2Nwv9g7u8v4=", - "dev": true + "integrity": "sha1-uuDfq6WIoMYNeDTA2Nwv9g7u8v4=" }, "get-stream": { "version": "4.1.0", @@ -9282,11 +9284,6 @@ "har-schema": "^2.0.0" } }, - "harmony-reflect": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.1.tgz", - "integrity": "sha512-WJTeyp0JzGtHcuMsi7rw2VwtkvLa+JyfEKJCFyfcS0+CDkjQ5lHPu7zEhFZP+PDSRrEgXa5Ah0l1MbgbE41XjA==" - }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -13533,8 +13530,7 @@ "jsan": { "version": "3.1.13", "resolved": "https://registry.npmjs.org/jsan/-/jsan-3.1.13.tgz", - "integrity": "sha512-9kGpCsGHifmw6oJet+y8HaCl14y7qgAsxVdV3pCHDySNR3BfDC30zgkssd7x5LRVAT22dnpbe9JdzzmXZnq9/g==", - "dev": true + "integrity": "sha512-9kGpCsGHifmw6oJet+y8HaCl14y7qgAsxVdV3pCHDySNR3BfDC30zgkssd7x5LRVAT22dnpbe9JdzzmXZnq9/g==" }, "jsbn": { "version": "0.1.1", @@ -13823,8 +13819,7 @@ "linked-list": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/linked-list/-/linked-list-0.1.0.tgz", - "integrity": "sha1-eYsP+X0bkqT9CEgPVa6k6dSdN78=", - "dev": true + "integrity": "sha1-eYsP+X0bkqT9CEgPVa6k6dSdN78=" }, "load-json-file": { "version": "2.0.0", @@ -14152,38 +14147,24 @@ "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==" }, "mattermost-redux": { - "version": "github:mattermost/mattermost-redux#6e1510f0ced2ac1a63360cb9e000d5b3d3c34d30", - "from": "github:mattermost/mattermost-redux#6e1510f0ced2ac1a63360cb9e000d5b3d3c34d30", + "version": "github:mattermost/mattermost-redux#041043a08d7a360ce4948c244a1bf5f78e07e211", + "from": "github:mattermost/mattermost-redux#041043a08d7a360ce4948c244a1bf5f78e07e211", "requires": { - "deep-equal": "1.0.1", - "eslint-plugin-header": "3.0.0", - "form-data": "2.5.0", "gfycat-sdk": "1.4.18", - "harmony-reflect": "1.6.1", "isomorphic-fetch": "2.2.1", - "mime-db": "1.40.0", "moment-timezone": "0.5.26", "redux": "4.0.4", "redux-action-buffer": "1.2.0", - "redux-batched-actions": "0.4.1", "redux-offline": "git+https://github.com/enahum/redux-offline.git#885024de96b6ec73650c340c8928066585c413df", "redux-persist": "4.9.1", + "redux-persist-node-storage": "2.0.0", "redux-thunk": "2.3.0", + "remote-redux-devtools": "0.5.16", "reselect": "4.0.0", "serialize-error": "2.1.0", "shallow-equals": "1.0.0" }, "dependencies": { - "form-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.0.tgz", - "integrity": "sha512-WXieX3G/8side6VIqx44ablyULoGruSde5PNTxoUyo5CeyAMX6nVWUd0rgist/EuX655cjhUhTo1Fo3tRYqbcA==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, "moment-timezone": { "version": "0.5.26", "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.26.tgz", @@ -14656,6 +14637,7 @@ "version": "2.1.21", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", + "dev": true, "requires": { "mime-db": "~1.37.0" }, @@ -14663,7 +14645,8 @@ "mime-db": { "version": "1.37.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", - "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==" + "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==", + "dev": true } } }, @@ -14957,8 +14940,7 @@ "nanoid": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-2.0.1.tgz", - "integrity": "sha512-k1u2uemjIGsn25zmujKnotgniC/gxQ9sdegdezeDiKdkDW56THUMqlz3urndKCXJxA6yPzSZbXx/QCMe/pxqsA==", - "dev": true + "integrity": "sha512-k1u2uemjIGsn25zmujKnotgniC/gxQ9sdegdezeDiKdkDW56THUMqlz3urndKCXJxA6yPzSZbXx/QCMe/pxqsA==" }, "nanomatch": { "version": "1.2.13", @@ -15084,6 +15066,14 @@ "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" }, + "node-localstorage": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-localstorage/-/node-localstorage-1.3.1.tgz", + "integrity": "sha512-NMWCSWWc6JbHT5PyWlNT2i8r7PgGYXVntmKawY83k/M0UJScZ5jirb61TLnqKwd815DfBQu+lR3sRw08SPzIaQ==", + "requires": { + "write-file-atomic": "^1.1.4" + } + }, "node-modules-regexp": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", @@ -16332,8 +16322,7 @@ "querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" }, "querystringify": { "version": "2.1.1", @@ -17567,7 +17556,6 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/redux-devtools-core/-/redux-devtools-core-0.2.1.tgz", "integrity": "sha512-RAGOxtUFdr/1USAvxrWd+Gq/Euzgw7quCZlO5TgFpDfG7rB5tMhZUrNyBjpzgzL2yMk0eHnPYIGm7NkIfRzHxQ==", - "dev": true, "requires": { "get-params": "^0.1.2", "jsan": "^3.1.13", @@ -17580,7 +17568,6 @@ "version": "1.9.6", "resolved": "https://registry.npmjs.org/redux-devtools-instrument/-/redux-devtools-instrument-1.9.6.tgz", "integrity": "sha512-MwvY4cLEB2tIfWWBzrUR02UM9qRG2i7daNzywRvabOSVdvAY7s9BxSwMmVRH1Y/7QWjplNtOwgT0apKhHg2Qew==", - "dev": true, "requires": { "lodash": "^4.2.0", "symbol-observable": "^1.0.2" @@ -17620,6 +17607,14 @@ "lodash-es": "^4.17.4" } }, + "redux-persist-node-storage": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/redux-persist-node-storage/-/redux-persist-node-storage-2.0.0.tgz", + "integrity": "sha1-QAHjK4tDxzgH7y2pujAfSxxmr3k=", + "requires": { + "node-localstorage": "^1.3.0" + } + }, "redux-persist-transform-filter": { "version": "0.0.18", "resolved": "https://registry.npmjs.org/redux-persist-transform-filter/-/redux-persist-transform-filter-0.0.18.tgz", @@ -17794,7 +17789,6 @@ "version": "0.5.16", "resolved": "https://registry.npmjs.org/remote-redux-devtools/-/remote-redux-devtools-0.5.16.tgz", "integrity": "sha512-xZ2D1VRIWzat5nsvcraT6fKEX9Cfi+HbQBCwzNnUAM8Uicm/anOc60XGalcaDPrVmLug7nhDl2nimEa3bL3K9w==", - "dev": true, "requires": { "jsan": "^3.1.13", "querystring": "^0.2.0", @@ -17808,7 +17802,6 @@ "version": "0.1.8", "resolved": "https://registry.npmjs.org/remotedev-serialize/-/remotedev-serialize-0.1.8.tgz", "integrity": "sha512-3YG/FDcOmiK22bl5oMRM8RRnbGrFEuPGjbcDG+z2xi5aQaNQNZ8lqoRnZTwXVfaZtutXuiAQOgPRrogzQk8edg==", - "dev": true, "requires": { "jsan": "^3.1.13" } @@ -18011,8 +18004,7 @@ "rn-host-detect": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/rn-host-detect/-/rn-host-detect-1.1.5.tgz", - "integrity": "sha512-ufk2dFT3QeP9HyZ/xTuMtW27KnFy815CYitJMqQm+pgG3ZAtHBsrU8nXizNKkqXGy3bQmhEoloVbrfbvMJMqkg==", - "dev": true + "integrity": "sha512-ufk2dFT3QeP9HyZ/xTuMtW27KnFy815CYitJMqQm+pgG3ZAtHBsrU8nXizNKkqXGy3bQmhEoloVbrfbvMJMqkg==" }, "rn-placeholder": { "version": "github:mattermost/rn-placeholder#02c629c65d0123a2eee623ada0fd17186415d3c3", @@ -18426,7 +18418,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/sc-channel/-/sc-channel-1.2.0.tgz", "integrity": "sha512-M3gdq8PlKg0zWJSisWqAsMmTVxYRTpVRqw4CWAdKBgAfVKumFcTjoCV0hYu7lgUXccCtCD8Wk9VkkE+IXCxmZA==", - "dev": true, "requires": { "component-emitter": "1.2.1" } @@ -18434,14 +18425,12 @@ "sc-errors": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/sc-errors/-/sc-errors-1.4.1.tgz", - "integrity": "sha512-dBn92iIonpChTxYLgKkIT/PCApvmYT6EPIbRvbQKTgY6tbEbIy8XVUv4pGyKwEK4nCmvX4TKXcN0iXC6tNW6rQ==", - "dev": true + "integrity": "sha512-dBn92iIonpChTxYLgKkIT/PCApvmYT6EPIbRvbQKTgY6tbEbIy8XVUv4pGyKwEK4nCmvX4TKXcN0iXC6tNW6rQ==" }, "sc-formatter": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/sc-formatter/-/sc-formatter-3.0.2.tgz", - "integrity": "sha512-9PbqYBpCq+OoEeRQ3QfFIGE6qwjjBcd2j7UjgDlhnZbtSnuGgHdcRklPKYGuYFH82V/dwd+AIpu8XvA1zqTd+A==", - "dev": true + "integrity": "sha512-9PbqYBpCq+OoEeRQ3QfFIGE6qwjjBcd2j7UjgDlhnZbtSnuGgHdcRklPKYGuYFH82V/dwd+AIpu8XvA1zqTd+A==" }, "sc-hasher": { "version": "1.0.1", @@ -18914,7 +18903,6 @@ "version": "14.2.1", "resolved": "https://registry.npmjs.org/socketcluster-client/-/socketcluster-client-14.2.1.tgz", "integrity": "sha512-peCBfewW1silqvLecFpLz5u2xr85r8b7A24mXaNTsXLnG9QR3zxecYtKS/odszzJSu2j2YyQPR4avy77tZSjZw==", - "dev": true, "requires": { "base-64": "0.1.0", "clone": "2.1.1", @@ -18931,14 +18919,12 @@ "uuid": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz", - "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==", - "dev": true + "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==" }, "ws": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/ws/-/ws-5.1.1.tgz", "integrity": "sha512-bOusvpCb09TOBLbpMKszd45WKC2KPtxiyiHanv+H2DE3Az+1db5a/L7sVJZVDPUC1Br8f0SKRr1KjLpD1U/IAw==", - "dev": true, "requires": { "async-limiter": "~1.0.0" } diff --git a/package.json b/package.json index 75bbf9fe1..7d687abf6 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "intl": "1.2.5", "jail-monkey": "2.2.0", "jsc-android": "241213.2.0", - "mattermost-redux": "github:mattermost/mattermost-redux#6e1510f0ced2ac1a63360cb9e000d5b3d3c34d30", + "mattermost-redux": "github:mattermost/mattermost-redux#041043a08d7a360ce4948c244a1bf5f78e07e211", "mime-db": "1.40.0", "moment-timezone": "0.5.25", "prop-types": "15.7.2", @@ -152,4 +152,4 @@ "node_modules/(?!react-native|jail-monkey)" ] } -} \ No newline at end of file +} From 224606675c043c11aa4a276305516c363c548c4a Mon Sep 17 00:00:00 2001 From: Harrison Healey Date: Thu, 24 Oct 2019 03:42:46 -0400 Subject: [PATCH 05/21] MM-19493 For manually unread channel, don't mark as read on new message (#3458) --- package-lock.json | 5 +++-- package.json | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9e06db7f0..b75680fbd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14147,8 +14147,8 @@ "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==" }, "mattermost-redux": { - "version": "github:mattermost/mattermost-redux#041043a08d7a360ce4948c244a1bf5f78e07e211", - "from": "github:mattermost/mattermost-redux#041043a08d7a360ce4948c244a1bf5f78e07e211", + "version": "github:mattermost/mattermost-redux#769cc8b4163471a928849d6b84c5a8e248cc5246", + "from": "github:mattermost/mattermost-redux#769cc8b4163471a928849d6b84c5a8e248cc5246", "requires": { "gfycat-sdk": "1.4.18", "isomorphic-fetch": "2.2.1", @@ -17587,6 +17587,7 @@ "version": "git+https://github.com/enahum/redux-offline.git#885024de96b6ec73650c340c8928066585c413df", "from": "git+https://github.com/enahum/redux-offline.git#885024de96b6ec73650c340c8928066585c413df", "requires": { + "@react-native-community/netinfo": "^4.1.3", "redux-persist": "^4.5.0" }, "dependencies": { diff --git a/package.json b/package.json index a1a1e8c98..5f35aff3b 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "intl": "1.2.5", "jail-monkey": "2.2.0", "jsc-android": "241213.2.0", - "mattermost-redux": "github:mattermost/mattermost-redux#041043a08d7a360ce4948c244a1bf5f78e07e211", + "mattermost-redux": "github:mattermost/mattermost-redux#769cc8b4163471a928849d6b84c5a8e248cc5246", "mime-db": "1.40.0", "moment-timezone": "0.5.25", "prop-types": "15.7.2", From 5bc92c1f20b97efd478f991b77b7103e7aefaf8c Mon Sep 17 00:00:00 2001 From: Harrison Healey Date: Thu, 24 Oct 2019 15:55:04 -0400 Subject: [PATCH 06/21] Revert mattermost-redux to version without TypeScript changes --- package-lock.json | 108 ++++++++++++++++++++++++++-------------------- package.json | 2 +- 2 files changed, 62 insertions(+), 48 deletions(-) diff --git a/package-lock.json b/package-lock.json index b75680fbd..ced3cad5b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4954,8 +4954,7 @@ "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "atob": { "version": "2.1.2", @@ -5818,7 +5817,8 @@ "clone": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", - "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=" + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", + "dev": true }, "co": { "version": "4.6.0", @@ -5862,7 +5862,6 @@ "version": "1.0.6", "resolved": "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", - "dev": true, "requires": { "delayed-stream": "~1.0.0" } @@ -6342,8 +6341,7 @@ "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "delegate": { "version": "3.2.0", @@ -6956,8 +6954,7 @@ "eslint-plugin-header": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/eslint-plugin-header/-/eslint-plugin-header-3.0.0.tgz", - "integrity": "sha512-OIu2ciVW8jK4Ove4JHm1I7X0C98PZuLCyCsoUhAm2HpyGS+zr34qLM6iV06unnDvssvvEh5BkOfaLRF+N7cGoQ==", - "dev": true + "integrity": "sha512-OIu2ciVW8jK4Ove4JHm1I7X0C98PZuLCyCsoUhAm2HpyGS+zr34qLM6iV06unnDvssvvEh5BkOfaLRF+N7cGoQ==" }, "eslint-plugin-jest": { "version": "22.5.1", @@ -9075,7 +9072,8 @@ "get-params": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/get-params/-/get-params-0.1.2.tgz", - "integrity": "sha1-uuDfq6WIoMYNeDTA2Nwv9g7u8v4=" + "integrity": "sha1-uuDfq6WIoMYNeDTA2Nwv9g7u8v4=", + "dev": true }, "get-stream": { "version": "4.1.0", @@ -9284,6 +9282,11 @@ "har-schema": "^2.0.0" } }, + "harmony-reflect": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.1.tgz", + "integrity": "sha512-WJTeyp0JzGtHcuMsi7rw2VwtkvLa+JyfEKJCFyfcS0+CDkjQ5lHPu7zEhFZP+PDSRrEgXa5Ah0l1MbgbE41XjA==" + }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -13530,7 +13533,8 @@ "jsan": { "version": "3.1.13", "resolved": "https://registry.npmjs.org/jsan/-/jsan-3.1.13.tgz", - "integrity": "sha512-9kGpCsGHifmw6oJet+y8HaCl14y7qgAsxVdV3pCHDySNR3BfDC30zgkssd7x5LRVAT22dnpbe9JdzzmXZnq9/g==" + "integrity": "sha512-9kGpCsGHifmw6oJet+y8HaCl14y7qgAsxVdV3pCHDySNR3BfDC30zgkssd7x5LRVAT22dnpbe9JdzzmXZnq9/g==", + "dev": true }, "jsbn": { "version": "0.1.1", @@ -13819,7 +13823,8 @@ "linked-list": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/linked-list/-/linked-list-0.1.0.tgz", - "integrity": "sha1-eYsP+X0bkqT9CEgPVa6k6dSdN78=" + "integrity": "sha1-eYsP+X0bkqT9CEgPVa6k6dSdN78=", + "dev": true }, "load-json-file": { "version": "2.0.0", @@ -14147,24 +14152,38 @@ "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==" }, "mattermost-redux": { - "version": "github:mattermost/mattermost-redux#769cc8b4163471a928849d6b84c5a8e248cc5246", - "from": "github:mattermost/mattermost-redux#769cc8b4163471a928849d6b84c5a8e248cc5246", + "version": "github:mattermost/mattermost-redux#fcdcfe0a7b9aaad38cc9f301b68fb1877c0b4960", + "from": "github:mattermost/mattermost-redux#fcdcfe0a7b9aaad38cc9f301b68fb1877c0b4960", "requires": { + "deep-equal": "1.0.1", + "eslint-plugin-header": "3.0.0", + "form-data": "2.5.0", "gfycat-sdk": "1.4.18", + "harmony-reflect": "1.6.1", "isomorphic-fetch": "2.2.1", + "mime-db": "1.40.0", "moment-timezone": "0.5.26", "redux": "4.0.4", "redux-action-buffer": "1.2.0", + "redux-batched-actions": "0.4.1", "redux-offline": "git+https://github.com/enahum/redux-offline.git#885024de96b6ec73650c340c8928066585c413df", "redux-persist": "4.9.1", - "redux-persist-node-storage": "2.0.0", "redux-thunk": "2.3.0", - "remote-redux-devtools": "0.5.16", "reselect": "4.0.0", "serialize-error": "2.1.0", "shallow-equals": "1.0.0" }, "dependencies": { + "form-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.0.tgz", + "integrity": "sha512-WXieX3G/8side6VIqx44ablyULoGruSde5PNTxoUyo5CeyAMX6nVWUd0rgist/EuX655cjhUhTo1Fo3tRYqbcA==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, "moment-timezone": { "version": "0.5.26", "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.26.tgz", @@ -14637,7 +14656,6 @@ "version": "2.1.21", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", - "dev": true, "requires": { "mime-db": "~1.37.0" }, @@ -14645,8 +14663,7 @@ "mime-db": { "version": "1.37.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", - "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==", - "dev": true + "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==" } } }, @@ -14940,7 +14957,8 @@ "nanoid": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-2.0.1.tgz", - "integrity": "sha512-k1u2uemjIGsn25zmujKnotgniC/gxQ9sdegdezeDiKdkDW56THUMqlz3urndKCXJxA6yPzSZbXx/QCMe/pxqsA==" + "integrity": "sha512-k1u2uemjIGsn25zmujKnotgniC/gxQ9sdegdezeDiKdkDW56THUMqlz3urndKCXJxA6yPzSZbXx/QCMe/pxqsA==", + "dev": true }, "nanomatch": { "version": "1.2.13", @@ -15066,14 +15084,6 @@ "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" }, - "node-localstorage": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-localstorage/-/node-localstorage-1.3.1.tgz", - "integrity": "sha512-NMWCSWWc6JbHT5PyWlNT2i8r7PgGYXVntmKawY83k/M0UJScZ5jirb61TLnqKwd815DfBQu+lR3sRw08SPzIaQ==", - "requires": { - "write-file-atomic": "^1.1.4" - } - }, "node-modules-regexp": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", @@ -15219,7 +15229,7 @@ "dependencies": { "ansi-regex": { "version": "3.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, @@ -15231,7 +15241,7 @@ }, "cliui": { "version": "4.1.0", - "resolved": false, + "resolved": "", "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "dev": true, "requires": { @@ -15275,13 +15285,13 @@ }, "invert-kv": { "version": "2.0.0", - "resolved": false, + "resolved": "", "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", "dev": true }, "lcid": { "version": "2.0.0", - "resolved": false, + "resolved": "", "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", "dev": true, "requires": { @@ -15317,7 +15327,7 @@ }, "os-locale": { "version": "3.1.0", - "resolved": false, + "resolved": "", "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", "dev": true, "requires": { @@ -15392,7 +15402,7 @@ }, "strip-ansi": { "version": "4.0.0", - "resolved": false, + "resolved": "", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { @@ -15401,7 +15411,7 @@ }, "uuid": { "version": "3.3.2", - "resolved": false, + "resolved": "", "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", "dev": true }, @@ -16322,7 +16332,8 @@ "querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true }, "querystringify": { "version": "2.1.1", @@ -17557,6 +17568,7 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/redux-devtools-core/-/redux-devtools-core-0.2.1.tgz", "integrity": "sha512-RAGOxtUFdr/1USAvxrWd+Gq/Euzgw7quCZlO5TgFpDfG7rB5tMhZUrNyBjpzgzL2yMk0eHnPYIGm7NkIfRzHxQ==", + "dev": true, "requires": { "get-params": "^0.1.2", "jsan": "^3.1.13", @@ -17569,6 +17581,7 @@ "version": "1.9.6", "resolved": "https://registry.npmjs.org/redux-devtools-instrument/-/redux-devtools-instrument-1.9.6.tgz", "integrity": "sha512-MwvY4cLEB2tIfWWBzrUR02UM9qRG2i7daNzywRvabOSVdvAY7s9BxSwMmVRH1Y/7QWjplNtOwgT0apKhHg2Qew==", + "dev": true, "requires": { "lodash": "^4.2.0", "symbol-observable": "^1.0.2" @@ -17608,14 +17621,6 @@ "lodash-es": "^4.17.4" } }, - "redux-persist-node-storage": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/redux-persist-node-storage/-/redux-persist-node-storage-2.0.0.tgz", - "integrity": "sha1-QAHjK4tDxzgH7y2pujAfSxxmr3k=", - "requires": { - "node-localstorage": "^1.3.0" - } - }, "redux-persist-transform-filter": { "version": "0.0.18", "resolved": "https://registry.npmjs.org/redux-persist-transform-filter/-/redux-persist-transform-filter-0.0.18.tgz", @@ -17790,6 +17795,7 @@ "version": "0.5.16", "resolved": "https://registry.npmjs.org/remote-redux-devtools/-/remote-redux-devtools-0.5.16.tgz", "integrity": "sha512-xZ2D1VRIWzat5nsvcraT6fKEX9Cfi+HbQBCwzNnUAM8Uicm/anOc60XGalcaDPrVmLug7nhDl2nimEa3bL3K9w==", + "dev": true, "requires": { "jsan": "^3.1.13", "querystring": "^0.2.0", @@ -17803,6 +17809,7 @@ "version": "0.1.8", "resolved": "https://registry.npmjs.org/remotedev-serialize/-/remotedev-serialize-0.1.8.tgz", "integrity": "sha512-3YG/FDcOmiK22bl5oMRM8RRnbGrFEuPGjbcDG+z2xi5aQaNQNZ8lqoRnZTwXVfaZtutXuiAQOgPRrogzQk8edg==", + "dev": true, "requires": { "jsan": "^3.1.13" } @@ -18005,7 +18012,8 @@ "rn-host-detect": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/rn-host-detect/-/rn-host-detect-1.1.5.tgz", - "integrity": "sha512-ufk2dFT3QeP9HyZ/xTuMtW27KnFy815CYitJMqQm+pgG3ZAtHBsrU8nXizNKkqXGy3bQmhEoloVbrfbvMJMqkg==" + "integrity": "sha512-ufk2dFT3QeP9HyZ/xTuMtW27KnFy815CYitJMqQm+pgG3ZAtHBsrU8nXizNKkqXGy3bQmhEoloVbrfbvMJMqkg==", + "dev": true }, "rn-placeholder": { "version": "github:mattermost/rn-placeholder#02c629c65d0123a2eee623ada0fd17186415d3c3", @@ -18419,6 +18427,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/sc-channel/-/sc-channel-1.2.0.tgz", "integrity": "sha512-M3gdq8PlKg0zWJSisWqAsMmTVxYRTpVRqw4CWAdKBgAfVKumFcTjoCV0hYu7lgUXccCtCD8Wk9VkkE+IXCxmZA==", + "dev": true, "requires": { "component-emitter": "1.2.1" } @@ -18426,12 +18435,14 @@ "sc-errors": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/sc-errors/-/sc-errors-1.4.1.tgz", - "integrity": "sha512-dBn92iIonpChTxYLgKkIT/PCApvmYT6EPIbRvbQKTgY6tbEbIy8XVUv4pGyKwEK4nCmvX4TKXcN0iXC6tNW6rQ==" + "integrity": "sha512-dBn92iIonpChTxYLgKkIT/PCApvmYT6EPIbRvbQKTgY6tbEbIy8XVUv4pGyKwEK4nCmvX4TKXcN0iXC6tNW6rQ==", + "dev": true }, "sc-formatter": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/sc-formatter/-/sc-formatter-3.0.2.tgz", - "integrity": "sha512-9PbqYBpCq+OoEeRQ3QfFIGE6qwjjBcd2j7UjgDlhnZbtSnuGgHdcRklPKYGuYFH82V/dwd+AIpu8XvA1zqTd+A==" + "integrity": "sha512-9PbqYBpCq+OoEeRQ3QfFIGE6qwjjBcd2j7UjgDlhnZbtSnuGgHdcRklPKYGuYFH82V/dwd+AIpu8XvA1zqTd+A==", + "dev": true }, "sc-hasher": { "version": "1.0.1", @@ -18904,6 +18915,7 @@ "version": "14.2.1", "resolved": "https://registry.npmjs.org/socketcluster-client/-/socketcluster-client-14.2.1.tgz", "integrity": "sha512-peCBfewW1silqvLecFpLz5u2xr85r8b7A24mXaNTsXLnG9QR3zxecYtKS/odszzJSu2j2YyQPR4avy77tZSjZw==", + "dev": true, "requires": { "base-64": "0.1.0", "clone": "2.1.1", @@ -18920,12 +18932,14 @@ "uuid": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz", - "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==" + "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==", + "dev": true }, "ws": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/ws/-/ws-5.1.1.tgz", "integrity": "sha512-bOusvpCb09TOBLbpMKszd45WKC2KPtxiyiHanv+H2DE3Az+1db5a/L7sVJZVDPUC1Br8f0SKRr1KjLpD1U/IAw==", + "dev": true, "requires": { "async-limiter": "~1.0.0" } diff --git a/package.json b/package.json index 5f35aff3b..9aca64bd3 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "intl": "1.2.5", "jail-monkey": "2.2.0", "jsc-android": "241213.2.0", - "mattermost-redux": "github:mattermost/mattermost-redux#769cc8b4163471a928849d6b84c5a8e248cc5246", + "mattermost-redux": "github:mattermost/mattermost-redux#fcdcfe0a7b9aaad38cc9f301b68fb1877c0b4960", "mime-db": "1.40.0", "moment-timezone": "0.5.25", "prop-types": "15.7.2", From 434af8d63783268ce6c963ddfe028041dd6d4a3f Mon Sep 17 00:00:00 2001 From: Harrison Healey Date: Thu, 24 Oct 2019 16:11:39 -0400 Subject: [PATCH 07/21] Revert snapshot changes --- .../profile_picture_button.test.js.snap | 1 - .../__snapshots__/user_list_test.test.js.snap | 8 -------- .../file_attachment.test.js.snap | 1 - .../file_attachment_list.test.js.snap | 1 - .../__snapshots__/post_textbox.test.js.snap | 2 -- .../__snapshots__/channel_item.test.js.snap | 10 +--------- .../channel_nav_bar.test.js.snap | 1 - .../channel_drawer_button.test.js.snap | 2 +- .../__snapshots__/channel_info.test.js.snap | 11 ---------- .../channel_info_header.test.js.snap | 6 ------ .../channel_members.test.js.snap | 1 - .../__snapshots__/edit_profile.test.js.snap | 1 - .../error_teams_list.test.js.snap | 1 - .../__snapshots__/flagged_posts.test.js.snap | 1 - .../interactive_dialog.test.js.snap | 1 - .../__snapshots__/more_channels.test.js.snap | 1 - .../__snapshots__/selected_users.test.js.snap | 4 ---- .../__snapshots__/post_options.test.js.snap | 20 ------------------- .../reaction_header.test.js.snap | 4 ---- .../__snapshots__/reaction_list.test.js.snap | 5 ----- .../recent_mentions.test.js.snap | 1 - .../__snapshots__/select_team.test.js.snap | 2 -- .../selector_screen.test.js.snap | 6 ------ .../display_settings.test.js.snap | 3 --- ...cation_settings_email.android.test.js.snap | 1 - ...tification_settings_email.ios.test.js.snap | 3 --- ...on_settings_mentions_keywords.test.js.snap | 2 -- .../__snapshots__/sidebar.test.js.snap | 2 -- .../theme/__snapshots__/theme.test.js.snap | 4 ---- .../terms_of_service.test.js.snap | 1 - .../__snapshots__/user_profile.test.js.snap | 3 --- 31 files changed, 2 insertions(+), 108 deletions(-) diff --git a/app/components/__snapshots__/profile_picture_button.test.js.snap b/app/components/__snapshots__/profile_picture_button.test.js.snap index fab53b130..7e959089f 100644 --- a/app/components/__snapshots__/profile_picture_button.test.js.snap +++ b/app/components/__snapshots__/profile_picture_button.test.js.snap @@ -27,7 +27,6 @@ exports[`profile_picture_button should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/components/custom_list/user_list_row/__snapshots__/user_list_test.test.js.snap b/app/components/custom_list/user_list_row/__snapshots__/user_list_test.test.js.snap index 2d62ec3d1..fdb73806e 100644 --- a/app/components/custom_list/user_list_row/__snapshots__/user_list_test.test.js.snap +++ b/app/components/custom_list/user_list_row/__snapshots__/user_list_test.test.js.snap @@ -74,7 +74,6 @@ exports[`UserListRow should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -106,7 +105,6 @@ exports[`UserListRow should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -204,7 +202,6 @@ exports[`UserListRow should match snapshot for currentUser with (you) populated "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -236,7 +233,6 @@ exports[`UserListRow should match snapshot for currentUser with (you) populated "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -336,7 +332,6 @@ exports[`UserListRow should match snapshot for deactivated user 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -368,7 +363,6 @@ exports[`UserListRow should match snapshot for deactivated user 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -479,7 +473,6 @@ exports[`UserListRow should match snapshot for guest user 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -511,7 +504,6 @@ exports[`UserListRow should match snapshot for guest user 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/components/file_attachment_list/__snapshots__/file_attachment.test.js.snap b/app/components/file_attachment_list/__snapshots__/file_attachment.test.js.snap index a26f8be29..2e93e4b54 100644 --- a/app/components/file_attachment_list/__snapshots__/file_attachment.test.js.snap +++ b/app/components/file_attachment_list/__snapshots__/file_attachment.test.js.snap @@ -42,7 +42,6 @@ exports[`FileAttachment should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/components/file_attachment_list/__snapshots__/file_attachment_list.test.js.snap b/app/components/file_attachment_list/__snapshots__/file_attachment_list.test.js.snap index f1387431d..60e646370 100644 --- a/app/components/file_attachment_list/__snapshots__/file_attachment_list.test.js.snap +++ b/app/components/file_attachment_list/__snapshots__/file_attachment_list.test.js.snap @@ -48,7 +48,6 @@ exports[`PostAttachmentOpenGraph should match snapshot with a single image file "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/components/post_textbox/__snapshots__/post_textbox.test.js.snap b/app/components/post_textbox/__snapshots__/post_textbox.test.js.snap index 631f273e2..924bdf35f 100644 --- a/app/components/post_textbox/__snapshots__/post_textbox.test.js.snap +++ b/app/components/post_textbox/__snapshots__/post_textbox.test.js.snap @@ -44,7 +44,6 @@ exports[`PostTextBox should match, full snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -123,7 +122,6 @@ exports[`PostTextBox should match, full snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/components/sidebars/main/channels_list/channel_item/__snapshots__/channel_item.test.js.snap b/app/components/sidebars/main/channels_list/channel_item/__snapshots__/channel_item.test.js.snap index 2a65161cd..302538d24 100644 --- a/app/components/sidebars/main/channels_list/channel_item/__snapshots__/channel_item.test.js.snap +++ b/app/components/sidebars/main/channels_list/channel_item/__snapshots__/channel_item.test.js.snap @@ -56,7 +56,6 @@ exports[`ChannelItem should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -173,7 +172,6 @@ exports[`ChannelItem should match snapshot for current user i.e currentUser (you "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -289,7 +287,6 @@ exports[`ChannelItem should match snapshot for current user i.e currentUser (you "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -405,7 +402,6 @@ exports[`ChannelItem should match snapshot for deactivated user and is currentCh "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -510,7 +506,6 @@ exports[`ChannelItem should match snapshot for deactivated user and is searchRes "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -616,7 +611,6 @@ exports[`ChannelItem should match snapshot for deactivated user and not searchRe "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -726,7 +720,6 @@ exports[`ChannelItem should match snapshot with draft 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -834,7 +827,6 @@ exports[`ChannelItem should match snapshot with mentions and muted 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -902,7 +894,7 @@ exports[`ChannelItem should match snapshot with mentions and muted 1`] = ` onPress={[Function]} style={ Object { - "backgroundColor": "#ffffff", + "backgroundColor": undefined, "height": 21, "padding": 3, "position": "relative", diff --git a/app/screens/channel/channel_nav_bar/__snapshots__/channel_nav_bar.test.js.snap b/app/screens/channel/channel_nav_bar/__snapshots__/channel_nav_bar.test.js.snap index 329721d83..7db69c304 100644 --- a/app/screens/channel/channel_nav_bar/__snapshots__/channel_nav_bar.test.js.snap +++ b/app/screens/channel/channel_nav_bar/__snapshots__/channel_nav_bar.test.js.snap @@ -38,7 +38,6 @@ exports[`ChannelNavBar should match, full snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/channel/channel_nav_bar/channel_drawer_button/__snapshots__/channel_drawer_button.test.js.snap b/app/screens/channel/channel_nav_bar/channel_drawer_button/__snapshots__/channel_drawer_button.test.js.snap index 1f0dd3675..42aec1dc8 100644 --- a/app/screens/channel/channel_nav_bar/channel_drawer_button/__snapshots__/channel_drawer_button.test.js.snap +++ b/app/screens/channel/channel_nav_bar/channel_drawer_button/__snapshots__/channel_drawer_button.test.js.snap @@ -98,7 +98,7 @@ exports[`ChannelDrawerButton should match, full snapshot 2`] = ` onPress={[Function]} style={ Object { - "backgroundColor": "#ffffff", + "backgroundColor": undefined, "height": 19, "padding": 3, } diff --git a/app/screens/channel_info/__snapshots__/channel_info.test.js.snap b/app/screens/channel_info/__snapshots__/channel_info.test.js.snap index 5f998e075..fd0cd0029 100644 --- a/app/screens/channel_info/__snapshots__/channel_info.test.js.snap +++ b/app/screens/channel_info/__snapshots__/channel_info.test.js.snap @@ -44,7 +44,6 @@ exports[`channel_info should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -96,7 +95,6 @@ exports[`channel_info should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -145,7 +143,6 @@ exports[`channel_info should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -194,7 +191,6 @@ exports[`channel_info should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -242,7 +238,6 @@ exports[`channel_info should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -292,7 +287,6 @@ exports[`channel_info should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -342,7 +336,6 @@ exports[`channel_info should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -392,7 +385,6 @@ exports[`channel_info should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -442,7 +434,6 @@ exports[`channel_info should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -493,7 +484,6 @@ exports[`channel_info should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -556,7 +546,6 @@ exports[`channel_info should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/channel_info/__snapshots__/channel_info_header.test.js.snap b/app/screens/channel_info/__snapshots__/channel_info_header.test.js.snap index 479afcd5c..0122d3937 100644 --- a/app/screens/channel_info/__snapshots__/channel_info_header.test.js.snap +++ b/app/screens/channel_info/__snapshots__/channel_info_header.test.js.snap @@ -47,7 +47,6 @@ exports[`channel_info_header should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -464,7 +463,6 @@ exports[`channel_info_header should match snapshot when DM and hasGuests and is "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -909,7 +907,6 @@ exports[`channel_info_header should match snapshot when DM and hasGuests but its "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -1326,7 +1323,6 @@ exports[`channel_info_header should match snapshot when GM and hasGuests 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -1771,7 +1767,6 @@ exports[`channel_info_header should match snapshot when is group constrained 1`] "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -2210,7 +2205,6 @@ exports[`channel_info_header should match snapshot when public channel and hasGu "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/channel_members/__snapshots__/channel_members.test.js.snap b/app/screens/channel_members/__snapshots__/channel_members.test.js.snap index 999aacad0..5517ea5e7 100644 --- a/app/screens/channel_members/__snapshots__/channel_members.test.js.snap +++ b/app/screens/channel_members/__snapshots__/channel_members.test.js.snap @@ -68,7 +68,6 @@ exports[`ChannelMembers should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/edit_profile/__snapshots__/edit_profile.test.js.snap b/app/screens/edit_profile/__snapshots__/edit_profile.test.js.snap index dc81c2143..2830f2a22 100644 --- a/app/screens/edit_profile/__snapshots__/edit_profile.test.js.snap +++ b/app/screens/edit_profile/__snapshots__/edit_profile.test.js.snap @@ -40,7 +40,6 @@ exports[`edit_profile should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/error_teams_list/__snapshots__/error_teams_list.test.js.snap b/app/screens/error_teams_list/__snapshots__/error_teams_list.test.js.snap index 16c39697a..4f985c336 100644 --- a/app/screens/error_teams_list/__snapshots__/error_teams_list.test.js.snap +++ b/app/screens/error_teams_list/__snapshots__/error_teams_list.test.js.snap @@ -27,7 +27,6 @@ exports[`ErrorTeamsList should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/flagged_posts/__snapshots__/flagged_posts.test.js.snap b/app/screens/flagged_posts/__snapshots__/flagged_posts.test.js.snap index 6c2a19af1..e6c7cbacd 100644 --- a/app/screens/flagged_posts/__snapshots__/flagged_posts.test.js.snap +++ b/app/screens/flagged_posts/__snapshots__/flagged_posts.test.js.snap @@ -23,7 +23,6 @@ exports[`FlaggedPosts should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/interactive_dialog/__snapshots__/interactive_dialog.test.js.snap b/app/screens/interactive_dialog/__snapshots__/interactive_dialog.test.js.snap index 8bfa4f29b..8dc6f43f0 100644 --- a/app/screens/interactive_dialog/__snapshots__/interactive_dialog.test.js.snap +++ b/app/screens/interactive_dialog/__snapshots__/interactive_dialog.test.js.snap @@ -30,7 +30,6 @@ exports[`InteractiveDialog should display introduction text if present 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/more_channels/__snapshots__/more_channels.test.js.snap b/app/screens/more_channels/__snapshots__/more_channels.test.js.snap index a0921f6cd..9023ef399 100644 --- a/app/screens/more_channels/__snapshots__/more_channels.test.js.snap +++ b/app/screens/more_channels/__snapshots__/more_channels.test.js.snap @@ -96,7 +96,6 @@ exports[`MoreChannels should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/more_dms/selected_users/__snapshots__/selected_users.test.js.snap b/app/screens/more_dms/selected_users/__snapshots__/selected_users.test.js.snap index 7beed8f0b..31baa16f6 100644 --- a/app/screens/more_dms/selected_users/__snapshots__/selected_users.test.js.snap +++ b/app/screens/more_dms/selected_users/__snapshots__/selected_users.test.js.snap @@ -32,7 +32,6 @@ exports[`SelectedUsers should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -110,7 +109,6 @@ exports[`SelectedUsers should match snapshot for no warning message 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -170,7 +168,6 @@ exports[`SelectedUsers should match snapshot to show warning for ability to add "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -208,7 +205,6 @@ exports[`SelectedUsers should match snapshot to show warning for ability to add "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/post_options/__snapshots__/post_options.test.js.snap b/app/screens/post_options/__snapshots__/post_options.test.js.snap index c7c26d3a9..596d208c3 100644 --- a/app/screens/post_options/__snapshots__/post_options.test.js.snap +++ b/app/screens/post_options/__snapshots__/post_options.test.js.snap @@ -24,7 +24,6 @@ exports[`PostOptions should match snapshot, no option for system message to user "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -60,7 +59,6 @@ exports[`PostOptions should match snapshot, no option for system message to user "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -96,7 +94,6 @@ exports[`PostOptions should match snapshot, no option for system message to user "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -131,7 +128,6 @@ exports[`PostOptions should match snapshot, no option for system message to user "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -167,7 +163,6 @@ exports[`PostOptions should match snapshot, no option for system message to user "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -203,7 +198,6 @@ exports[`PostOptions should match snapshot, no option for system message to user "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -250,7 +244,6 @@ exports[`PostOptions should match snapshot, showing Delete option only for syste "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -286,7 +279,6 @@ exports[`PostOptions should match snapshot, showing Delete option only for syste "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -322,7 +314,6 @@ exports[`PostOptions should match snapshot, showing Delete option only for syste "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -357,7 +348,6 @@ exports[`PostOptions should match snapshot, showing Delete option only for syste "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -393,7 +383,6 @@ exports[`PostOptions should match snapshot, showing Delete option only for syste "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -429,7 +418,6 @@ exports[`PostOptions should match snapshot, showing Delete option only for syste "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -465,7 +453,6 @@ exports[`PostOptions should match snapshot, showing Delete option only for syste "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -512,7 +499,6 @@ exports[`PostOptions should match snapshot, showing all possible options 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -548,7 +534,6 @@ exports[`PostOptions should match snapshot, showing all possible options 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -584,7 +569,6 @@ exports[`PostOptions should match snapshot, showing all possible options 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -619,7 +603,6 @@ exports[`PostOptions should match snapshot, showing all possible options 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -655,7 +638,6 @@ exports[`PostOptions should match snapshot, showing all possible options 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -691,7 +673,6 @@ exports[`PostOptions should match snapshot, showing all possible options 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -727,7 +708,6 @@ exports[`PostOptions should match snapshot, showing all possible options 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/reaction_list/__snapshots__/reaction_header.test.js.snap b/app/screens/reaction_list/__snapshots__/reaction_header.test.js.snap index 45126e682..5215f84b3 100644 --- a/app/screens/reaction_list/__snapshots__/reaction_header.test.js.snap +++ b/app/screens/reaction_list/__snapshots__/reaction_header.test.js.snap @@ -35,7 +35,6 @@ exports[`ReactionHeader should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -70,7 +69,6 @@ exports[`ReactionHeader should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -112,7 +110,6 @@ Array [ "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -147,7 +144,6 @@ Array [ "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/reaction_list/__snapshots__/reaction_list.test.js.snap b/app/screens/reaction_list/__snapshots__/reaction_list.test.js.snap index 27a9ef411..173d12bd8 100644 --- a/app/screens/reaction_list/__snapshots__/reaction_list.test.js.snap +++ b/app/screens/reaction_list/__snapshots__/reaction_list.test.js.snap @@ -24,7 +24,6 @@ exports[`ReactionList should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -65,7 +64,6 @@ exports[`ReactionList should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -121,7 +119,6 @@ exports[`ReactionList should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -183,7 +180,6 @@ Array [ "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -239,7 +235,6 @@ Array [ "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/recent_mentions/__snapshots__/recent_mentions.test.js.snap b/app/screens/recent_mentions/__snapshots__/recent_mentions.test.js.snap index 4972ac358..33c35a8e9 100644 --- a/app/screens/recent_mentions/__snapshots__/recent_mentions.test.js.snap +++ b/app/screens/recent_mentions/__snapshots__/recent_mentions.test.js.snap @@ -23,7 +23,6 @@ exports[`RecentMentions should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/select_team/__snapshots__/select_team.test.js.snap b/app/screens/select_team/__snapshots__/select_team.test.js.snap index 449a83f73..9efe63707 100644 --- a/app/screens/select_team/__snapshots__/select_team.test.js.snap +++ b/app/screens/select_team/__snapshots__/select_team.test.js.snap @@ -18,7 +18,6 @@ exports[`SelectTeam should match snapshot for fail of teams 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -120,7 +119,6 @@ exports[`SelectTeam should match snapshot for teams 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/selector_screen/__snapshots__/selector_screen.test.js.snap b/app/screens/selector_screen/__snapshots__/selector_screen.test.js.snap index e14cde365..8c500650a 100644 --- a/app/screens/selector_screen/__snapshots__/selector_screen.test.js.snap +++ b/app/screens/selector_screen/__snapshots__/selector_screen.test.js.snap @@ -74,7 +74,6 @@ exports[`SelectorScreen should match snapshot for channels 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -170,7 +169,6 @@ exports[`SelectorScreen should match snapshot for channels 2`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -273,7 +271,6 @@ exports[`SelectorScreen should match snapshot for explicit options 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -369,7 +366,6 @@ exports[`SelectorScreen should match snapshot for searching 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -465,7 +461,6 @@ exports[`SelectorScreen should match snapshot for users 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -561,7 +556,6 @@ exports[`SelectorScreen should match snapshot for users 2`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/settings/display_settings/__snapshots__/display_settings.test.js.snap b/app/screens/settings/display_settings/__snapshots__/display_settings.test.js.snap index c114e1b40..763e89815 100644 --- a/app/screens/settings/display_settings/__snapshots__/display_settings.test.js.snap +++ b/app/screens/settings/display_settings/__snapshots__/display_settings.test.js.snap @@ -48,7 +48,6 @@ exports[`DisplaySettings should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -127,7 +126,6 @@ exports[`DisplaySettings should match snapshot on Tablet devices 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -167,7 +165,6 @@ exports[`DisplaySettings should match snapshot on Tablet devices 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/settings/notification_settings_email/__snapshots__/notification_settings_email.android.test.js.snap b/app/screens/settings/notification_settings_email/__snapshots__/notification_settings_email.android.test.js.snap index 008021b18..f3b4e57b5 100644 --- a/app/screens/settings/notification_settings_email/__snapshots__/notification_settings_email.android.test.js.snap +++ b/app/screens/settings/notification_settings_email/__snapshots__/notification_settings_email.android.test.js.snap @@ -27,7 +27,6 @@ exports[`NotificationSettingsEmailAndroid should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/settings/notification_settings_email/__snapshots__/notification_settings_email.ios.test.js.snap b/app/screens/settings/notification_settings_email/__snapshots__/notification_settings_email.ios.test.js.snap index b5bc0c1e8..6b4777560 100644 --- a/app/screens/settings/notification_settings_email/__snapshots__/notification_settings_email.ios.test.js.snap +++ b/app/screens/settings/notification_settings_email/__snapshots__/notification_settings_email.ios.test.js.snap @@ -24,7 +24,6 @@ exports[`NotificationSettingsEmailIos should match snapshot, renderEmailSection "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -67,7 +66,6 @@ exports[`NotificationSettingsEmailIos should match snapshot, renderEmailSection "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -119,7 +117,6 @@ exports[`NotificationSettingsEmailIos should match snapshot, renderEmailSection "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/settings/notification_settings_mentions_keywords/__snapshots__/notification_settings_mentions_keywords.test.js.snap b/app/screens/settings/notification_settings_mentions_keywords/__snapshots__/notification_settings_mentions_keywords.test.js.snap index d1fd4d46d..fecf1832a 100644 --- a/app/screens/settings/notification_settings_mentions_keywords/__snapshots__/notification_settings_mentions_keywords.test.js.snap +++ b/app/screens/settings/notification_settings_mentions_keywords/__snapshots__/notification_settings_mentions_keywords.test.js.snap @@ -47,7 +47,6 @@ NotificationSettingsMentionsKeywords { "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -131,7 +130,6 @@ NotificationSettingsMentionsKeywords { "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/settings/sidebar/__snapshots__/sidebar.test.js.snap b/app/screens/settings/sidebar/__snapshots__/sidebar.test.js.snap index 8d8386915..836af5ec8 100644 --- a/app/screens/settings/sidebar/__snapshots__/sidebar.test.js.snap +++ b/app/screens/settings/sidebar/__snapshots__/sidebar.test.js.snap @@ -35,7 +35,6 @@ exports[`SidebarSettings should match, full snapshot 2`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -90,7 +89,6 @@ exports[`SidebarSettings should match, full snapshot 2`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/settings/theme/__snapshots__/theme.test.js.snap b/app/screens/settings/theme/__snapshots__/theme.test.js.snap index a22cf10aa..9aaff6908 100644 --- a/app/screens/settings/theme/__snapshots__/theme.test.js.snap +++ b/app/screens/settings/theme/__snapshots__/theme.test.js.snap @@ -61,7 +61,6 @@ exports[`Theme should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -107,7 +106,6 @@ exports[`Theme should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -153,7 +151,6 @@ exports[`Theme should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -199,7 +196,6 @@ exports[`Theme should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/terms_of_service/__snapshots__/terms_of_service.test.js.snap b/app/screens/terms_of_service/__snapshots__/terms_of_service.test.js.snap index 803b8f1ef..324248811 100644 --- a/app/screens/terms_of_service/__snapshots__/terms_of_service.test.js.snap +++ b/app/screens/terms_of_service/__snapshots__/terms_of_service.test.js.snap @@ -305,7 +305,6 @@ exports[`TermsOfService should match snapshot for fail of get terms 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", diff --git a/app/screens/user_profile/__snapshots__/user_profile.test.js.snap b/app/screens/user_profile/__snapshots__/user_profile.test.js.snap index a0566f8f7..fbbb22f04 100644 --- a/app/screens/user_profile/__snapshots__/user_profile.test.js.snap +++ b/app/screens/user_profile/__snapshots__/user_profile.test.js.snap @@ -64,7 +64,6 @@ exports[`user_profile should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -96,7 +95,6 @@ exports[`user_profile should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", @@ -220,7 +218,6 @@ exports[`user_profile should match snapshot 1`] = ` "dndIndicator": "#f74343", "errorTextColor": "#fd5960", "linkColor": "#2389d7", - "mentionBg": "#ffffff", "mentionBj": "#ffffff", "mentionColor": "#145dbf", "mentionHighlightBg": "#ffe577", From d8f8dac79aad9b1be1d27f328788d8aa1d40d720 Mon Sep 17 00:00:00 2001 From: Harrison Healey Date: Fri, 25 Oct 2019 13:45:40 -0400 Subject: [PATCH 08/21] Fix android senderName call (mark-as-unread) (#3471) --- .../main/java/com/mattermost/rnbeta/CustomPushNotification.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android/app/src/main/java/com/mattermost/rnbeta/CustomPushNotification.java b/android/app/src/main/java/com/mattermost/rnbeta/CustomPushNotification.java index 1864ea1de..692dd5696 100644 --- a/android/app/src/main/java/com/mattermost/rnbeta/CustomPushNotification.java +++ b/android/app/src/main/java/com/mattermost/rnbeta/CustomPushNotification.java @@ -127,7 +127,7 @@ public class CustomPushNotification extends PushNotification { } if (PUSH_TYPE_MESSAGE.equals(type)) { - String senderName = getSenderName(data.getString("sender_name"), data.getString("channel_name"), data.getString("message")); + String senderName = getSenderName(data); data.putLong("time", new Date().getTime()); data.putString("sender_name", senderName); data.putString("sender_id", data.getString("sender_id")); From ddea1dedbe89143d2a7e849553f06887eb6353c3 Mon Sep 17 00:00:00 2001 From: Harrison Healey Date: Mon, 11 Nov 2019 14:46:24 -0500 Subject: [PATCH 09/21] MM-19812 Properly handle in-app update_badge notifications (#3531) --- app/utils/push_notifications.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/utils/push_notifications.js b/app/utils/push_notifications.js index 29e4dc274..94f1dd674 100644 --- a/app/utils/push_notifications.js +++ b/app/utils/push_notifications.js @@ -75,7 +75,7 @@ class PushNotificationUtils { if (data.type === 'clear') { dispatch(markChannelViewedAndRead(data.channel_id, null, false)); - } else { + } else if (data.type === 'message') { // get the posts for the channel as soon as possible retryGetPostsAction(getPosts(data.channel_id), dispatch, getState); From c37b921f47ccbd5fbbc603a4de15df0316ebb90a Mon Sep 17 00:00:00 2001 From: Harrison Healey Date: Wed, 13 Nov 2019 10:48:49 -0500 Subject: [PATCH 10/21] MM-19482 Stop rendering New Messages line differently for manually unread channels (#3524) * MM-19482 Stop rendering New Messages line differently for manually unread channels * Update mattermost-redux --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index b8926d1af..d97a929b5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4636,7 +4636,7 @@ "dependencies": { "json5": { "version": "0.5.1", - "resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", "dev": true } @@ -7759,8 +7759,8 @@ } }, "mattermost-redux": { - "version": "github:mattermost/mattermost-redux#77766b87ebd53c366152d2aceb4074ef569db0e9", - "from": "github:mattermost/mattermost-redux#77766b87ebd53c366152d2aceb4074ef569db0e9", + "version": "github:mattermost/mattermost-redux#4886198f19da9b15c7f24bdd2d7835b816b52534", + "from": "github:mattermost/mattermost-redux#4886198f19da9b15c7f24bdd2d7835b816b52534", "requires": { "gfycat-sdk": "1.4.18", "isomorphic-fetch": "2.2.1", diff --git a/package.json b/package.json index 630a487d8..9e665ee6d 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "intl": "1.2.5", "jail-monkey": "2.3.0", "jsc-android": "241213.1.0", - "mattermost-redux": "github:mattermost/mattermost-redux#77766b87ebd53c366152d2aceb4074ef569db0e9", + "mattermost-redux": "github:mattermost/mattermost-redux#4886198f19da9b15c7f24bdd2d7835b816b52534", "mime-db": "1.42.0", "moment-timezone": "0.5.27", "prop-types": "15.7.2", From 17a7054ae68bf60224f9c0c42efc89c70dab6352 Mon Sep 17 00:00:00 2001 From: Elias Nahum Date: Mon, 18 Nov 2019 11:04:52 -0300 Subject: [PATCH 11/21] MM-19993 Fix Channel spinner is black on dark theme (#3558) --- .../autocomplete_section_header.js | 7 +++- .../__snapshots__/index.test.js.snap | 10 +++++ app/components/custom_list/index.js | 13 +++++-- .../edit_channel_info/edit_channel_info.js | 2 +- .../emoji_picker/emoji_picker_base.js | 2 +- .../load_more_posts/load_more_posts.js | 2 +- .../__snapshots__/post_list.test.js.snap | 39 +++++++++++++++++-- app/components/post_list/post_list.js | 17 ++++---- app/screens/channel/channel_base.js | 5 ++- .../channel_add_members.js | 2 +- .../channel_members/channel_members.js | 2 +- app/screens/edit_post/edit_post.js | 2 +- app/screens/edit_profile/edit_profile.js | 2 +- .../error_teams_list/error_teams_list.js | 2 +- app/screens/more_channels/more_channels.js | 2 +- app/screens/more_dms/more_dms.js | 2 +- .../__snapshots__/permalink.test.js.snap | 2 +- app/screens/permalink/permalink.js | 2 +- app/screens/search/search.js | 10 +++-- .../__snapshots__/select_team.test.js.snap | 18 ++++++--- app/screens/select_team/select_team.js | 14 ++++++- .../terms_of_service.test.js.snap | 4 +- .../terms_of_service/terms_of_service.js | 2 +- .../__snapshots__/thread.ios.test.js.snap | 8 ++-- app/screens/thread/thread.android.js | 2 +- app/screens/thread/thread.ios.js | 2 +- app/screens/thread/thread_base.js | 10 +++-- 27 files changed, 134 insertions(+), 51 deletions(-) diff --git a/app/components/autocomplete/autocomplete_section_header.js b/app/components/autocomplete/autocomplete_section_header.js index 997a8cf44..0fb6f6d80 100644 --- a/app/components/autocomplete/autocomplete_section_header.js +++ b/app/components/autocomplete/autocomplete_section_header.js @@ -34,7 +34,12 @@ export default class AutocompleteSectionHeader extends PureComponent { defaultMessage={defaultMessage} style={style.sectionText} /> - {loading && } + {loading && + + } ); diff --git a/app/components/custom_list/__snapshots__/index.test.js.snap b/app/components/custom_list/__snapshots__/index.test.js.snap index 38087a1d3..e205d5f3e 100644 --- a/app/components/custom_list/__snapshots__/index.test.js.snap +++ b/app/components/custom_list/__snapshots__/index.test.js.snap @@ -31,6 +31,16 @@ exports[`CustomList should match snapshot with FlatList 1`] = ` onEndReachedThreshold={2} onLayout={[Function]} onScroll={[Function]} + refreshControl={ + + } removeClippedSubviews={true} renderItem={[Function]} scrollEventThrottle={60} diff --git a/app/components/custom_list/index.js b/app/components/custom_list/index.js index 42ae0461d..5b2acf0bb 100644 --- a/app/components/custom_list/index.js +++ b/app/components/custom_list/index.js @@ -3,7 +3,7 @@ import React, {PureComponent} from 'react'; import PropTypes from 'prop-types'; -import {FlatList, Keyboard, Platform, SectionList, Text, View} from 'react-native'; +import {FlatList, Keyboard, Platform, RefreshControl, SectionList, Text, View} from 'react-native'; import {ListTypes} from 'app/constants'; import {makeStyleSheetFromTheme, changeOpacity} from 'app/utils/theme'; @@ -113,6 +113,14 @@ export default class CustomList extends PureComponent { const {data, extraData, theme, onRefresh, refreshing} = this.props; const style = getStyleFromTheme(theme); + const refreshControl = ( + ); + return ( - + ); } diff --git a/app/components/emoji_picker/emoji_picker_base.js b/app/components/emoji_picker/emoji_picker_base.js index cafb8788f..58d6f4e30 100644 --- a/app/components/emoji_picker/emoji_picker_base.js +++ b/app/components/emoji_picker/emoji_picker_base.js @@ -440,7 +440,7 @@ export default class EmojiPicker extends PureComponent { const styles = getStyleSheetFromTheme(theme); return ( - + ); }; diff --git a/app/components/load_more_posts/load_more_posts.js b/app/components/load_more_posts/load_more_posts.js index 15e7c94b1..6578b4489 100644 --- a/app/components/load_more_posts/load_more_posts.js +++ b/app/components/load_more_posts/load_more_posts.js @@ -46,7 +46,7 @@ export default class LoadMorePosts extends PureComponent { return ( - + ); } diff --git a/app/components/post_list/__snapshots__/post_list.test.js.snap b/app/components/post_list/__snapshots__/post_list.test.js.snap index 82979e601..0c882c26f 100644 --- a/app/components/post_list/__snapshots__/post_list.test.js.snap +++ b/app/components/post_list/__snapshots__/post_list.test.js.snap @@ -41,7 +41,18 @@ exports[`PostList setting channel deep link 1`] = ` onLayout={[Function]} onScroll={[Function]} onScrollToIndexFailed={[Function]} - refreshing={false} + refreshControl={ + + } removeClippedSubviews={true} renderItem={[Function]} scrollEventThrottle={60} @@ -91,7 +102,18 @@ exports[`PostList setting permalink deep link 1`] = ` onLayout={[Function]} onScroll={[Function]} onScrollToIndexFailed={[Function]} - refreshing={false} + refreshControl={ + + } removeClippedSubviews={true} renderItem={[Function]} scrollEventThrottle={60} @@ -141,7 +163,18 @@ exports[`PostList should match snapshot 1`] = ` onLayout={[Function]} onScroll={[Function]} onScrollToIndexFailed={[Function]} - refreshing={false} + refreshControl={ + + } removeClippedSubviews={true} renderItem={[Function]} scrollEventThrottle={60} diff --git a/app/components/post_list/post_list.js b/app/components/post_list/post_list.js index 87f228c82..d2ed9dcf2 100644 --- a/app/components/post_list/post_list.js +++ b/app/components/post_list/post_list.js @@ -3,7 +3,7 @@ import React, {PureComponent} from 'react'; import PropTypes from 'prop-types'; -import {FlatList, StyleSheet} from 'react-native'; +import {FlatList, RefreshControl, StyleSheet} from 'react-native'; import EventEmitter from 'mattermost-redux/utils/event_emitter'; import * as PostListUtils from 'mattermost-redux/utils/post_list'; @@ -366,13 +366,16 @@ export default class PostList extends PureComponent { postIds, refreshing, scrollViewNativeID, + theme, } = this.props; - const refreshControl = {refreshing}; - - if (channelId) { - refreshControl.onRefresh = this.handleRefresh; - } + const refreshControl = ( + ); const hasPostsKey = postIds.length ? 'true' : 'false'; @@ -398,7 +401,7 @@ export default class PostList extends PureComponent { removeClippedSubviews={true} renderItem={this.renderItem} scrollEventThrottle={60} - {...refreshControl} + refreshControl={refreshControl} nativeID={scrollViewNativeID} /> ); diff --git a/app/screens/channel/channel_base.js b/app/screens/channel/channel_base.js index eb41aa3c4..9ac5c5054 100644 --- a/app/screens/channel/channel_base.js +++ b/app/screens/channel/channel_base.js @@ -292,7 +292,10 @@ export default class ChannelBase extends PureComponent { theme={theme} isLandscape={isLandscape} /> - + ); diff --git a/app/screens/channel_add_members/channel_add_members.js b/app/screens/channel_add_members/channel_add_members.js index 114a22ad5..6359d5ec8 100644 --- a/app/screens/channel_add_members/channel_add_members.js +++ b/app/screens/channel_add_members/channel_add_members.js @@ -303,7 +303,7 @@ export default class ChannelAddMembers extends PureComponent { return ( - + ); } diff --git a/app/screens/channel_members/channel_members.js b/app/screens/channel_members/channel_members.js index 54e590f0b..49cf3a4ac 100644 --- a/app/screens/channel_members/channel_members.js +++ b/app/screens/channel_members/channel_members.js @@ -335,7 +335,7 @@ export default class ChannelMembers extends PureComponent { return ( - + ); } diff --git a/app/screens/edit_post/edit_post.js b/app/screens/edit_post/edit_post.js index 4cd3791b6..888849ea5 100644 --- a/app/screens/edit_post/edit_post.js +++ b/app/screens/edit_post/edit_post.js @@ -173,7 +173,7 @@ export default class EditPost extends PureComponent { return ( - + ); } diff --git a/app/screens/edit_profile/edit_profile.js b/app/screens/edit_profile/edit_profile.js index 29dc6aa59..ed623ede3 100644 --- a/app/screens/edit_profile/edit_profile.js +++ b/app/screens/edit_profile/edit_profile.js @@ -560,7 +560,7 @@ export default class EditProfile extends PureComponent { return ( - + ); } diff --git a/app/screens/error_teams_list/error_teams_list.js b/app/screens/error_teams_list/error_teams_list.js index 2c6d28ee9..7d401338b 100644 --- a/app/screens/error_teams_list/error_teams_list.js +++ b/app/screens/error_teams_list/error_teams_list.js @@ -78,7 +78,7 @@ export default class ErrorTeamsList extends PureComponent { const style = getStyleFromTheme(theme); if (this.state.loading) { - return ; + return ; } return ( diff --git a/app/screens/more_channels/more_channels.js b/app/screens/more_channels/more_channels.js index 38952d8c8..de0cfbbbd 100644 --- a/app/screens/more_channels/more_channels.js +++ b/app/screens/more_channels/more_channels.js @@ -327,7 +327,7 @@ export default class MoreChannels extends PureComponent { let content; if (adding) { - content = (); + content = (); } else { const searchBarInput = { backgroundColor: changeOpacity(theme.centerChannelColor, 0.2), diff --git a/app/screens/more_dms/more_dms.js b/app/screens/more_dms/more_dms.js index 327be408f..0a64765e0 100644 --- a/app/screens/more_dms/more_dms.js +++ b/app/screens/more_dms/more_dms.js @@ -420,7 +420,7 @@ export default class MoreDirectMessages extends PureComponent { return ( - + ); } diff --git a/app/screens/permalink/__snapshots__/permalink.test.js.snap b/app/screens/permalink/__snapshots__/permalink.test.js.snap index 2569bba47..9e7f3cc06 100644 --- a/app/screens/permalink/__snapshots__/permalink.test.js.snap +++ b/app/screens/permalink/__snapshots__/permalink.test.js.snap @@ -124,7 +124,7 @@ exports[`Permalink should match snapshot 1`] = ` } > diff --git a/app/screens/permalink/permalink.js b/app/screens/permalink/permalink.js index 169ee0de8..9f8852337 100644 --- a/app/screens/permalink/permalink.js +++ b/app/screens/permalink/permalink.js @@ -370,7 +370,7 @@ export default class Permalink extends PureComponent { ); } else if (loading) { - postList = ; + postList = ; } else { postList = ( { - if (this.props.isSearchGettingMore) { - const style = getStyleFromTheme(this.props.theme); + const {isSearchGettingMore, theme} = this.props; + + if (isSearchGettingMore) { + const style = getStyleFromTheme(theme); return ( - + ); } @@ -634,7 +636,7 @@ export default class Search extends PureComponent { id: SEARCHING, component: ( - + ), }]; diff --git a/app/screens/select_team/__snapshots__/select_team.test.js.snap b/app/screens/select_team/__snapshots__/select_team.test.js.snap index 449a83f73..df1241320 100644 --- a/app/screens/select_team/__snapshots__/select_team.test.js.snap +++ b/app/screens/select_team/__snapshots__/select_team.test.js.snap @@ -97,11 +97,19 @@ exports[`SelectTeam should match snapshot for teams 1`] = ` listType="flat" loading={false} loadingComponent={ - + + + } onLoadMore={[Function]} onRefresh={[Function]} diff --git a/app/screens/select_team/select_team.js b/app/screens/select_team/select_team.js index 7d2c29703..9e34ac395 100644 --- a/app/screens/select_team/select_team.js +++ b/app/screens/select_team/select_team.js @@ -217,7 +217,7 @@ export default class SelectTeam extends PureComponent { const style = getStyleFromTheme(theme); if (this.state.joining) { - return ; + return ; } if (this.props.teamsRequest.status === RequestStatus.FAILURE) { @@ -262,7 +262,14 @@ export default class SelectTeam extends PureComponent { } + loadingComponent={ + + + + } refreshing={this.state.refreshing} onRefresh={this.onRefresh} onLoadMore={this.getTeams} @@ -300,6 +307,9 @@ const getStyleFromTheme = makeStyleSheetFromTheme((theme) => { width: '100%', height: 1, }, + footer: { + marginVertical: 10, + }, teamWrapper: { marginTop: 20, }, diff --git a/app/screens/terms_of_service/__snapshots__/terms_of_service.test.js.snap b/app/screens/terms_of_service/__snapshots__/terms_of_service.test.js.snap index b02f70ca2..3ac829734 100644 --- a/app/screens/terms_of_service/__snapshots__/terms_of_service.test.js.snap +++ b/app/screens/terms_of_service/__snapshots__/terms_of_service.test.js.snap @@ -272,7 +272,7 @@ exports[`TermsOfService should enable/disable navigator buttons on setNavigatorB exports[`TermsOfService should match snapshot 1`] = ` @@ -329,7 +329,7 @@ exports[`TermsOfService should match snapshot for fail of get terms 1`] = ` exports[`TermsOfService should match snapshot for get terms 1`] = ` diff --git a/app/screens/terms_of_service/terms_of_service.js b/app/screens/terms_of_service/terms_of_service.js index db72b2192..beed535bb 100644 --- a/app/screens/terms_of_service/terms_of_service.js +++ b/app/screens/terms_of_service/terms_of_service.js @@ -231,7 +231,7 @@ export default class TermsOfService extends PureComponent { const textStyles = getMarkdownTextStyles(theme); if (this.state.loading) { - return ; + return ; } if (this.state.getTermsError) { diff --git a/app/screens/thread/__snapshots__/thread.ios.test.js.snap b/app/screens/thread/__snapshots__/thread.ios.test.js.snap index 531bff0c7..dc90b29bd 100644 --- a/app/screens/thread/__snapshots__/thread.ios.test.js.snap +++ b/app/screens/thread/__snapshots__/thread.ios.test.js.snap @@ -32,7 +32,7 @@ exports[`thread should match snapshot, has root post 1`] = ` } renderFooter={ @@ -87,7 +87,7 @@ exports[`thread should match snapshot, no root post, loading 1`] = ` /> @@ -112,7 +112,7 @@ exports[`thread should match snapshot, render footer 1`] = ` } renderFooter={ @@ -157,7 +157,7 @@ exports[`thread should match snapshot, render footer 3`] = ` /> diff --git a/app/screens/thread/thread.android.js b/app/screens/thread/thread.android.js index a2e60c209..d6f62d6fc 100644 --- a/app/screens/thread/thread.android.js +++ b/app/screens/thread/thread.android.js @@ -53,7 +53,7 @@ export default class ThreadAndroid extends ThreadBase { ); } else { content = ( - + ); } diff --git a/app/screens/thread/thread.ios.js b/app/screens/thread/thread.ios.js index 0d035bdd9..1470856c1 100644 --- a/app/screens/thread/thread.ios.js +++ b/app/screens/thread/thread.ios.js @@ -85,7 +85,7 @@ export default class ThreadIOS extends ThreadBase { ); } else { content = ( - + ); } diff --git a/app/screens/thread/thread_base.js b/app/screens/thread/thread_base.js index 0aa3c357d..c99683d5e 100644 --- a/app/screens/thread/thread_base.js +++ b/app/screens/thread/thread_base.js @@ -106,13 +106,15 @@ export default class ThreadBase extends PureComponent { }; renderFooter = () => { - if (!this.hasRootPost() && this.props.threadLoadingStatus.status !== RequestStatus.STARTED) { + const {theme, threadLoadingStatus} = this.props; + + if (!this.hasRootPost() && threadLoadingStatus.status !== RequestStatus.STARTED) { return ( - + ); - } else if (this.props.threadLoadingStatus.status === RequestStatus.STARTED) { + } else if (threadLoadingStatus.status === RequestStatus.STARTED) { return ( - + ); } From 759d1ce86d490abf10fbacd899908f9e40f1b88f Mon Sep 17 00:00:00 2001 From: Valentijn Nieman Date: Mon, 18 Nov 2019 09:38:30 -0500 Subject: [PATCH 12/21] MM-19337 Enable users to view archived channels (#3514) * 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 --- app/actions/views/channel.js | 22 +++ .../channel_list_row/channel_list_row.js | 3 +- .../__snapshots__/more_channels.test.js.snap | 28 ++++ app/screens/more_channels/index.js | 22 ++- app/screens/more_channels/more_channels.js | 125 +++++++++++++++--- .../more_channels/more_channels.test.js | 20 ++- assets/base/i18n/en.json | 5 + package-lock.json | 4 +- package.json | 2 +- 9 files changed, 200 insertions(+), 31 deletions(-) diff --git a/app/actions/views/channel.js b/app/actions/views/channel.js index 4d89dcd77..fed9f0c7d 100644 --- a/app/actions/views/channel.js +++ b/app/actions/views/channel.js @@ -14,6 +14,8 @@ import { leaveChannel as serviceLeaveChannel, selectChannel, getChannelStats, + getChannels, + getArchivedChannels, } from 'mattermost-redux/actions/channels'; import { getPosts, @@ -73,6 +75,26 @@ export function loadChannelsByTeamName(teamName) { }; } +export function loadPublicAndArchivedChannels(teamId, publicPage, archivedPage, perPage, shouldLoadArchivedChannels) { + return async (dispatch) => { + return dispatch(getChannels( + teamId, + publicPage, + perPage + )).then(async (publicChannels) => { + if (shouldLoadArchivedChannels) { + const archivedChannels = await dispatch(getArchivedChannels( + teamId, + archivedPage, + perPage + )); + return archivedChannels; + } + return publicChannels; + }); + }; +} + export function loadProfilesAndTeamMembersForDMSidebar(teamId) { return async (dispatch, getState) => { const state = getState(); diff --git a/app/components/custom_list/channel_list_row/channel_list_row.js b/app/components/custom_list/channel_list_row/channel_list_row.js index 01feaf7a0..096339ae2 100644 --- a/app/components/custom_list/channel_list_row/channel_list_row.js +++ b/app/components/custom_list/channel_list_row/channel_list_row.js @@ -15,6 +15,7 @@ import CustomListRow from 'app/components/custom_list/custom_list_row'; export default class ChannelListRow extends React.PureComponent { static propTypes = { id: PropTypes.string.isRequired, + isArchived: PropTypes.bool, theme: PropTypes.object.isRequired, channel: PropTypes.object.isRequired, ...CustomListRow.propTypes, @@ -53,7 +54,7 @@ export default class ChannelListRow extends React.PureComponent { diff --git a/app/screens/more_channels/__snapshots__/more_channels.test.js.snap b/app/screens/more_channels/__snapshots__/more_channels.test.js.snap index a0921f6cd..ef31e17bd 100644 --- a/app/screens/more_channels/__snapshots__/more_channels.test.js.snap +++ b/app/screens/more_channels/__snapshots__/more_channels.test.js.snap @@ -43,6 +43,34 @@ exports[`MoreChannels should match snapshot 1`] = ` value="" /> + + + + + + { @@ -29,11 +31,19 @@ const joinableChannels = createSelector( } ); +const teamArchivedChannels = createSelector( + getChannelsInCurrentTeam, + (channels) => { + return channels.filter((c) => c.delete_at !== 0); + } +); + function mapStateToProps(state) { const config = getConfig(state); const license = getLicense(state); const roles = getCurrentUserRoles(state); - const channels = joinableChannels(state); + const channels = joinablePublicChannels(state); + const archivedChannels = teamArchivedChannels(state); const currentTeamId = getCurrentTeamId(state); return { @@ -41,8 +51,10 @@ function mapStateToProps(state) { currentUserId: getCurrentUserId(state), currentTeamId, channels, + archivedChannels, theme: getTheme(state), isLandscape: isLandscape(state), + canShowArchivedChannels: isMinimumServerVersion(state.entities.general.serverVersion, 5, 18), }; } @@ -51,7 +63,7 @@ function mapDispatchToProps(dispatch) { actions: bindActionCreators({ handleSelectChannel, joinChannel, - getChannels, + loadPublicAndArchivedChannels, searchChannels, setChannelDisplayName, }, dispatch), diff --git a/app/screens/more_channels/more_channels.js b/app/screens/more_channels/more_channels.js index de0cfbbbd..7f1c865e6 100644 --- a/app/screens/more_channels/more_channels.js +++ b/app/screens/more_channels/more_channels.js @@ -4,7 +4,8 @@ import React, {PureComponent} from 'react'; import PropTypes from 'prop-types'; import {intlShape} from 'react-intl'; -import {Platform, View} from 'react-native'; +import {Platform, View, Text} from 'react-native'; +import Icon from 'react-native-vector-icons/FontAwesome'; import {Navigation} from 'react-native-navigation'; import {debounce} from 'mattermost-redux/actions/helpers'; @@ -12,6 +13,7 @@ import {General} from 'mattermost-redux/constants'; import EventEmitter from 'mattermost-redux/utils/event_emitter'; import {paddingHorizontal as padding} from 'app/components/safe_area_view/iphone_x_spacing'; +import BottomSheet from 'app/utils/bottom_sheet'; import CustomList from 'app/components/custom_list'; import ChannelListRow from 'app/components/custom_list/channel_list_row'; import FormattedText from 'app/components/formatted_text'; @@ -33,18 +35,20 @@ export default class MoreChannels extends PureComponent { actions: PropTypes.shape({ handleSelectChannel: PropTypes.func.isRequired, joinChannel: PropTypes.func.isRequired, - getChannels: PropTypes.func.isRequired, + loadPublicAndArchivedChannels: PropTypes.func.isRequired, searchChannels: PropTypes.func.isRequired, setChannelDisplayName: PropTypes.func.isRequired, }).isRequired, componentId: PropTypes.string, canCreateChannels: PropTypes.bool.isRequired, channels: PropTypes.array, + archivedChannels: PropTypes.array, closeButton: PropTypes.object, currentUserId: PropTypes.string.isRequired, currentTeamId: PropTypes.string.isRequired, theme: PropTypes.object.isRequired, isLandscape: PropTypes.bool.isRequired, + canShowArchivedChannels: PropTypes.bool.isRequired, }; static defaultProps = { @@ -59,12 +63,15 @@ export default class MoreChannels extends PureComponent { super(props, context); this.searchTimeoutId = 0; - this.page = -1; + this.publicPage = -1; + this.archivedPage = -1; this.next = true; this.mounted = false; this.state = { channels: props.channels.slice(0, General.CHANNELS_CHUNK_SIZE), + archivedChannels: props.archivedChannels.slice(0, General.CHANNELS_CHUNK_SIZE), + typeOfChannels: 'public', loading: false, adding: false, term: '', @@ -130,10 +137,11 @@ export default class MoreChannels extends PureComponent { } cancelSearch = () => { - const {channels} = this.props; + const {channels, archivedChannels} = this.props; this.setState({ channels, + archivedChannels, term: '', }); }; @@ -143,15 +151,17 @@ export default class MoreChannels extends PureComponent { }; doGetChannels = () => { - const {actions, currentTeamId} = this.props; + const {actions, currentTeamId, canShowArchivedChannels} = this.props; const {loading, term} = this.state; if (this.next && !loading && !term && this.mounted) { this.setState({loading: true}, () => { - actions.getChannels( + actions.loadPublicAndArchivedChannels( currentTeamId, - this.page + 1, - General.CHANNELS_CHUNK_SIZE + this.publicPage + 1, + this.archivedPage + 1, + General.CHANNELS_CHUNK_SIZE, + canShowArchivedChannels, ).then(this.loadedChannels); }); } @@ -295,36 +305,77 @@ export default class MoreChannels extends PureComponent { renderItem = (props) => { return ( - + ); } searchChannels = (text) => { - const {actions, channels, currentTeamId} = this.props; + const {actions, channels, archivedChannels, currentTeamId, canShowArchivedChannels} = this.props; + const {typeOfChannels} = this.state; if (text) { - const filtered = this.filterChannels(channels, text); - this.setState({ - channels: filtered, - term: text, - }); - clearTimeout(this.searchTimeoutId); - + if (typeOfChannels === 'public') { + const filtered = this.filterChannels(channels, text); + this.setState({ + channels: filtered, + term: text, + }); + clearTimeout(this.searchTimeoutId); + } else if (typeOfChannels === 'archived' && canShowArchivedChannels) { + const filtered = this.filterChannels(archivedChannels, text); + this.setState({ + archivedChannels: filtered, + term: text, + }); + clearTimeout(this.searchTimeoutId); + } this.searchTimeoutId = setTimeout(() => { - actions.searchChannels(currentTeamId, text.toLowerCase()); + actions.searchChannels(currentTeamId, text.toLowerCase(), typeOfChannels === 'archived'); }, General.SEARCH_TIMEOUT_MILLISECONDS); } else { this.cancelSearch(); } }; + handleDropdownClick = () => { + const {formatMessage} = this.context.intl; + const publicChannelsText = formatMessage({id: 'more_channels.publicChannels', defaultMessage: 'Public Channels'}); + const archivedChannelsText = formatMessage({id: 'more_channels.archivedChannels', defaultMessage: 'Archived Channels'}); + const titleText = formatMessage({id: 'more_channels.dropdownTitle', defaultMessage: 'Show'}); + const cancelText = 'Cancel'; + BottomSheet.showBottomSheetWithOptions({ + options: [publicChannelsText, archivedChannelsText, cancelText], + cancelButtonIndex: 2, + title: titleText, + }, (value) => { + let typeOfChannels; + switch (value) { + case 0: + typeOfChannels = 'public'; + break; + case 1: + typeOfChannels = 'archived'; + break; + default: + typeOfChannels = this.state.typeOfChannels; + } + this.setState({typeOfChannels}); + }); + } + render() { const {formatMessage} = this.context.intl; - const {theme, isLandscape} = this.props; - const {adding, channels, loading, term} = this.state; + const {theme, isLandscape, canShowArchivedChannels} = this.props; + const {adding, channels, archivedChannels, loading, term, typeOfChannels} = this.state; const more = term ? () => true : this.getChannels; const style = getStyleFromTheme(theme); + const publicChannelsText = formatMessage({id: 'more_channels.showPublicChannels', defaultMessage: 'Show: Public Channels'}); + const archivedChannelsText = formatMessage({id: 'more_channels.showArchivedChannels', defaultMessage: 'Show: Archived Channels'}); + let content; if (adding) { content = (); @@ -340,6 +391,31 @@ export default class MoreChannels extends PureComponent { }), }; + let activeChannels = channels; + + if (canShowArchivedChannels && typeOfChannels === 'archived') { + activeChannels = archivedChannels; + } + + let channelDropdown; + if (canShowArchivedChannels) { + channelDropdown = ( + + + {typeOfChannels === 'public' ? publicChannelsText : archivedChannelsText} + {' '} + + + + ); + } + content = ( @@ -362,8 +438,9 @@ export default class MoreChannels extends PureComponent { value={term} /> + {channelDropdown} { fontSize: 26, color: changeOpacity(theme.centerChannelColor, 0.5), }, + channelDropdown: { + fontWeight: 'bold', + marginLeft: 10, + marginTop: 20, + marginBottom: 10, + }, }; }); diff --git a/app/screens/more_channels/more_channels.test.js b/app/screens/more_channels/more_channels.test.js index c2ebd9628..300735e54 100644 --- a/app/screens/more_channels/more_channels.test.js +++ b/app/screens/more_channels/more_channels.test.js @@ -16,7 +16,7 @@ describe('MoreChannels', () => { const actions = { handleSelectChannel: jest.fn(), joinChannel: jest.fn(), - getChannels: jest.fn().mockResolvedValue({data: [{id: 'id2', name: 'name2', display_name: 'display_name2'}]}), + loadPublicAndArchivedChannels: jest.fn().mockResolvedValue({data: [{id: 'id2', name: 'name2', display_name: 'display_name2'}]}), searchChannels: jest.fn(), setChannelDisplayName: jest.fn(), }; @@ -25,12 +25,14 @@ describe('MoreChannels', () => { actions, canCreateChannels: true, channels: [{id: 'id', name: 'name', display_name: 'display_name'}], + archivedChannels: [{id: 'id2', name: 'archived', display_name: 'archived channel'}], closeButton: {}, currentUserId: 'current_user_id', currentTeamId: 'current_team_id', theme: Preferences.THEMES.default, componentId: 'component-id', isLandscape: false, + canShowArchivedChannels: true, }; test('should match snapshot', () => { @@ -91,4 +93,20 @@ describe('MoreChannels', () => { expect(wrapper.state('term')).toEqual(''); expect(wrapper.state('channels')).toEqual(baseProps.channels); }); + + test('should search correct channels', () => { + const wrapper = shallow( + , + {context: {intl: {formatMessage: jest.fn()}}}, + ); + const instance = wrapper.instance(); + + wrapper.setState({typeOfChannels: 'public'}); + instance.searchChannels('display_name'); + expect(wrapper.state('channels')).toEqual(baseProps.channels); + + wrapper.setState({typeOfChannels: 'archived'}); + instance.searchChannels('archived channel'); + expect(wrapper.state('archivedChannels')).toEqual(baseProps.archivedChannels); + }); }); diff --git a/assets/base/i18n/en.json b/assets/base/i18n/en.json index 061d6bc87..c75414a53 100644 --- a/assets/base/i18n/en.json +++ b/assets/base/i18n/en.json @@ -492,7 +492,12 @@ "modal.manual_status.auto_responder.message_dnd": "Would you like to switch your status to \"Do Not Disturb\" and disable Automatic Replies?", "modal.manual_status.auto_responder.message_offline": "Would you like to switch your status to \"Offline\" and disable Automatic Replies?", "modal.manual_status.auto_responder.message_online": "Would you like to switch your status to \"Online\" and disable Automatic Replies?", + "more_channels.archivedChannels": "Archived Channels", + "more_channels.dropdownTitle": "Show", "more_channels.noMore": "No more channels to join", + "more_channels.publicChannels": "Public Channels", + "more_channels.showArchivedChannels": "Show: Archived Channels", + "more_channels.showPublicChannels": "Show: Public Channels", "more_channels.title": "More Channels", "msg_typing.areTyping": "{users} and {last} are typing...", "msg_typing.isTyping": "{user} is typing...", diff --git a/package-lock.json b/package-lock.json index 9fe3dd749..68639aecd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7816,8 +7816,8 @@ } }, "mattermost-redux": { - "version": "github:mattermost/mattermost-redux#98a375cea54f78fb6c0ede01ee4e9aec009f9fa5", - "from": "github:mattermost/mattermost-redux#98a375cea54f78fb6c0ede01ee4e9aec009f9fa5", + "version": "github:mattermost/mattermost-redux#ebd4fd361e982bf2f9b5737642dc5fcf6e1fa3f7", + "from": "github:mattermost/mattermost-redux#ebd4fd361e982bf2f9b5737642dc5fcf6e1fa3f7", "requires": { "form-data": "2.5.1", "gfycat-sdk": "1.4.18", diff --git a/package.json b/package.json index e9e0f22c4..19e8001e0 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "intl": "1.2.5", "jail-monkey": "2.3.0", "jsc-android": "241213.1.0", - "mattermost-redux": "github:mattermost/mattermost-redux#98a375cea54f78fb6c0ede01ee4e9aec009f9fa5", + "mattermost-redux": "github:mattermost/mattermost-redux#ebd4fd361e982bf2f9b5737642dc5fcf6e1fa3f7", "mime-db": "1.42.0", "moment-timezone": "0.5.27", "prop-types": "15.7.2", From c68138150e478acdc72022dba0e0435d8c2ad582 Mon Sep 17 00:00:00 2001 From: Elias Nahum Date: Mon, 18 Nov 2019 12:16:30 -0300 Subject: [PATCH 13/21] Fix theme color for the more channel options (#3565) --- .../more_channels/__snapshots__/more_channels.test.js.snap | 1 + app/screens/more_channels/more_channels.js | 1 + 2 files changed, 2 insertions(+) diff --git a/app/screens/more_channels/__snapshots__/more_channels.test.js.snap b/app/screens/more_channels/__snapshots__/more_channels.test.js.snap index ef31e17bd..0a0b899b7 100644 --- a/app/screens/more_channels/__snapshots__/more_channels.test.js.snap +++ b/app/screens/more_channels/__snapshots__/more_channels.test.js.snap @@ -56,6 +56,7 @@ exports[`MoreChannels should match snapshot 1`] = ` onPress={[Function]} style={ Object { + "color": "#3d3c40", "fontWeight": "bold", "marginBottom": 10, "marginLeft": 10, diff --git a/app/screens/more_channels/more_channels.js b/app/screens/more_channels/more_channels.js index 7f1c865e6..f8f00b2d3 100644 --- a/app/screens/more_channels/more_channels.js +++ b/app/screens/more_channels/more_channels.js @@ -489,6 +489,7 @@ const getStyleFromTheme = makeStyleSheetFromTheme((theme) => { color: changeOpacity(theme.centerChannelColor, 0.5), }, channelDropdown: { + color: theme.centerChannelColor, fontWeight: 'bold', marginLeft: 10, marginTop: 20, From 00874eb3ffccbd6b1f6f02ea0c5d1dea2d754993 Mon Sep 17 00:00:00 2001 From: Elias Nahum Date: Mon, 18 Nov 2019 12:31:29 -0300 Subject: [PATCH 14/21] MM-20007 Fix app crashes when previewing some gif files (#3563) --- app/components/message_attachments/attachment_thumbnail.js | 5 +++-- app/components/progressive_image/progressive_image.js | 4 +++- app/screens/image_preview/image_preview.js | 4 ++-- package-lock.json | 5 +++++ 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/app/components/message_attachments/attachment_thumbnail.js b/app/components/message_attachments/attachment_thumbnail.js index fe7f443be..8f660e378 100644 --- a/app/components/message_attachments/attachment_thumbnail.js +++ b/app/components/message_attachments/attachment_thumbnail.js @@ -2,8 +2,9 @@ // See LICENSE.txt for license information. import React, {PureComponent} from 'react'; -import {Image, StyleSheet, View} from 'react-native'; +import {StyleSheet, View} from 'react-native'; import PropTypes from 'prop-types'; +import FastImage from 'react-native-fast-image'; export default class AttachmentThumbnail extends PureComponent { static propTypes = { @@ -19,7 +20,7 @@ export default class AttachmentThumbnail extends PureComponent { return ( - - diff --git a/package-lock.json b/package-lock.json index 68639aecd..9a885108c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1293,6 +1293,11 @@ "resolved": "https://registry.npmjs.org/@react-native-community/async-storage/-/async-storage-1.6.2.tgz", "integrity": "sha512-EJGsbrHubK1mGxPjWB74AaHAd5m9I+Gg2RRPZzMK6org7QOU9WOBnIMFqoeVto3hKOaEPlk8NV74H6G34/2pZQ==" }, + "@react-native-community/cameraroll": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@react-native-community/cameraroll/-/cameraroll-1.3.0.tgz", + "integrity": "sha512-QJl9N34euvGU7s/Gn6jhsqi70O4SmxFxuy+yBnW7ehE8qtPYO91gyLLrtiWdTfYvuVCUNvX/G0LKJQLm8SojAA==" + }, "@react-native-community/cli-platform-android": { "version": "3.0.0-alpha.7", "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-3.0.0-alpha.7.tgz", From b2e657b159e1b65abf5ece44ca5a7a569c51ff34 Mon Sep 17 00:00:00 2001 From: Elias Nahum Date: Mon, 18 Nov 2019 12:56:01 -0300 Subject: [PATCH 15/21] MM-19991 Filtering search by channel should also show the channel name and not only its ID (#3561) --- .../autocomplete/channel_mention_item/index.js | 6 +++--- app/selectors/autocomplete.js | 18 +++++++++--------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/app/components/autocomplete/channel_mention_item/index.js b/app/components/autocomplete/channel_mention_item/index.js index c70208684..1671fd391 100644 --- a/app/components/autocomplete/channel_mention_item/index.js +++ b/app/components/autocomplete/channel_mention_item/index.js @@ -20,7 +20,7 @@ function mapStateToProps(state, ownProps) { let isBot = false; let isGuest = false; - if (channel.type === General.DM_CHANNEL) { + if (channel?.type === General.DM_CHANNEL) { const teammate = getUser(state, channel.teammate_id); if (teammate) { displayName = teammate.username; @@ -31,8 +31,8 @@ function mapStateToProps(state, ownProps) { return { displayName, - name: channel.name, - type: channel.type, + name: channel?.name, + type: channel?.type, isBot, isGuest, theme: getTheme(state), diff --git a/app/selectors/autocomplete.js b/app/selectors/autocomplete.js index 838202a11..926a44a48 100644 --- a/app/selectors/autocomplete.js +++ b/app/selectors/autocomplete.js @@ -48,11 +48,11 @@ export const getMatchTermForChannelMention = (() => { lastIsSearch = isSearch; if (match) { if (isSearch) { - lastMatchTerm = match[1]; + lastMatchTerm = match[1].toLowerCase(); } else if (match.index > 0 && value[match.index - 1] === '~') { lastMatchTerm = null; } else { - lastMatchTerm = match[2]; + lastMatchTerm = match[2].toLowerCase(); } } else { lastMatchTerm = null; @@ -152,7 +152,7 @@ export const filterMyChannels = createSelector( if (matchTerm) { channels = myChannels.filter((c) => { return (c.type === General.OPEN_CHANNEL || c.type === General.PRIVATE_CHANNEL) && - (c.name.startsWith(matchTerm) || c.display_name.startsWith(matchTerm)); + (c.name.toLowerCase().startsWith(matchTerm) || c.display_name.toLowerCase().startsWith(matchTerm)); }); } else { channels = myChannels.filter((c) => { @@ -175,7 +175,7 @@ export const filterOtherChannels = createSelector( let channels; if (matchTerm) { channels = otherChannels.filter((c) => { - return (c.name.startsWith(matchTerm) || c.display_name.startsWith(matchTerm)); + return (c.name.toLowerCase().startsWith(matchTerm) || c.display_name.toLowerCase().startsWith(matchTerm)); }); } else { channels = otherChannels; @@ -200,9 +200,9 @@ export const filterPublicChannels = createSelector( if (matchTerm) { channels = myChannels.filter((c) => { return c.type === General.OPEN_CHANNEL && - (c.name.startsWith(matchTerm) || c.display_name.startsWith(matchTerm)); + (c.name.toLowerCase().startsWith(matchTerm) || c.display_name.toLowerCase().startsWith(matchTerm)); }).concat( - otherChannels.filter((c) => c.name.startsWith(matchTerm) || c.display_name.startsWith(matchTerm)) + otherChannels.filter((c) => c.name.toLowerCase().startsWith(matchTerm) || c.display_name.toLowerCase().startsWith(matchTerm)) ); } else { channels = myChannels.filter((c) => { @@ -232,7 +232,7 @@ export const filterPrivateChannels = createSelector( if (matchTerm) { channels = myChannels.filter((c) => { return c.type === General.PRIVATE_CHANNEL && - (c.name.startsWith(matchTerm) || c.display_name.startsWith(matchTerm)); + (c.name.toLowerCase().startsWith(matchTerm) || c.display_name.toLowerCase().startsWith(matchTerm)); }); } else { channels = myChannels.filter((c) => { @@ -261,10 +261,10 @@ export const filterDirectAndGroupMessages = createSelector( let channels; if (matchTerm) { channels = myChannels.filter((c) => { - if (c.type === General.DM_CHANNEL && (originalChannels[c.id].display_name.startsWith(matchTerm))) { + if (c.type === General.DM_CHANNEL && (originalChannels[c.id].display_name.toLowerCase().startsWith(matchTerm))) { return true; } - if (c.type === General.GM_CHANNEL && (c.name.startsWith(matchTerm) || c.display_name.replace(/ /g, '').startsWith(matchTerm))) { + if (c.type === General.GM_CHANNEL && (c.name.toLowerCase().startsWith(matchTerm) || c.display_name.toLowerCase().replace(/ /g, '').startsWith(matchTerm))) { return true; } return false; From 84a874918d6be0129440b00c4324b0ee17cc7ad8 Mon Sep 17 00:00:00 2001 From: Amy Blais Date: Mon, 18 Nov 2019 13:15:04 -0500 Subject: [PATCH 16/21] v1.25 Changelog (#3440) --- CHANGELOG.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b98e4f991..fad40dad6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,37 @@ # Mattermost Mobile Apps Changelog +## 1.25.0 Release +- Release Date: November 16, 2019 +- Server Versions Supported: Server v5.9+ is required, Self-Signed SSL Certificates are not supported unless the user installs the CA certificate on their device + +### Compatibility + - Android operating system 7+ [is required by Google](https://android-developers.googleblog.com/2017/12/improving-app-security-and-performance.html). + - iPhone 5s devices and later with iOS 11+ is required. + +### Bug Fixes + - Fixed an issue where Mattermost monokai theme no longer worked properly on mobile apps. + - Fixed an issue on Android where the notification badge count didn't update when using multiple channels. + - Fixed an issue on Android where test notifications did not work properly. + - Fixed an issue where "In-app" notifications caused the app badge count to get out of sync. + - Fixed an issue on Android where email notification setting displayed was not updated when the setting was changed. + - Fixed an issue where Favorite channels list didn't update if the app was running in the background. + - Fixed an issue where the timezone setting did not update when changing it back to set automatically. + - Fixed an issue on iOS where clicking on a hashtag from "recent mentions" (or flagged posts) returned the user to the channel instead of displaying hashtag search results. + - Fixed an issue where tapping on a hashtag engaged a keyboard for a moment before displaying search results. + - Fixed an issue where posts of the same thread appeared to be from different threads if separated by a new message line. + - Fixed styling issues on iOS for Name, Purpose and Header information on the channel info screen. + - Fixed styling issues with bot posts timestamps in search results and pinned posts. + - Fixed styling issues on single sign-on screen in landscape view on iOS iPhone X and later. + - Fixed styling issues on iOS for the Helper text on Settings screens. + - Fixed an issue where the thread view header theme was inconsistent during transition back to main channel view. + - Fixed an issue on iOS where the navigation bar tucked under the phone's status bar when switching orientation. + - Fixed an issue on iOS where the keyboard flashed darker when Automatic Replies had been previously enabled. + - Fixed an issue on Android where uploading pictures from storage or camera required unwanted permissions. + - Fixed an issue where ``mobile.message_length.message`` did not match webapp's ``create_post.error_message``. + +### Known Issues + - App slows down when opening a channel with large number of animated emoji. [MM-15792](https://mattermost.atlassian.net/browse/MM-15792) + ## 1.24.0 Release - Release Date: October 16, 2019 - Server Versions Supported: Server v5.9+ is required, Self-Signed SSL Certificates are not supported unless the user installs the CA certificate on their device From ba76e5eac7043e67b9f03d1af5652ff730aa852b Mon Sep 17 00:00:00 2001 From: Miguel Alatzar Date: Mon, 18 Nov 2019 14:29:49 -0800 Subject: [PATCH 17/21] [MM-16232] ID loaded push notifications (#3562) * [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 --- .circleci/config.yml | 9 +++-- Makefile | 3 +- .../rnbeta/CustomPushNotification.java | 39 +++++++++++++++---- .../mattermost/rnbeta/ReceiptDelivery.java | 34 +++++++++++++--- .../push_notifications.ios.js | 17 ++++---- .../NotificationService.swift | 34 +++++++++++++--- .../UploadAttachments/UploadSession.swift | 17 ++++++-- .../react-native-notifications+2.0.6.patch | 18 +++++++-- 8 files changed, 134 insertions(+), 37 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index d2b61f1fb..dd272f7f6 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -91,15 +91,18 @@ commands: steps: - restore_cache: name: Restore npm cache - key: v1-npm-{{ checksum "package.json" }}-{{ arch }} + key: v2-npm-{{ checksum "package.json" }}-{{ arch }} - run: name: Getting JavaScript dependencies - command: NODE_ENV=development npm install + command: NODE_ENV=development npm install --ignore-scripts - save_cache: name: Save npm cache - key: v1-npm-{{ checksum "package.json" }}-{{ arch }} + key: v2-npm-{{ checksum "package.json" }}-{{ arch }} paths: - node_modules + - run: + name: "Run post install scripts" + command: make post-install pods-dependencies: description: "Get cocoapods dependencies" diff --git a/Makefile b/Makefile index 33549d57c..8823431df 100644 --- a/Makefile +++ b/Makefile @@ -74,6 +74,7 @@ clean: ## Cleans dependencies, previous builds and temp files @echo Cleanup finished post-install: + @./node_modules/.bin/patch-package @./node_modules/.bin/jetify @rm -f node_modules/intl/.babelrc @@ -84,8 +85,6 @@ post-install: @sed -i'' -e 's|"./lib/locales": false|"./lib/locales": "./lib/locales"|g' node_modules/intl-relativeformat/package.json @sed -i'' -e 's|"./locale-data/complete.js": false|"./locale-data/complete.js": "./locale-data/complete.js"|g' node_modules/intl/package.json - @./node_modules/.bin/patch-package - start: | pre-run ## Starts the React Native packager server $(call start_packager) diff --git a/android/app/src/main/java/com/mattermost/rnbeta/CustomPushNotification.java b/android/app/src/main/java/com/mattermost/rnbeta/CustomPushNotification.java index 3824054ad..0c272ec8e 100644 --- a/android/app/src/main/java/com/mattermost/rnbeta/CustomPushNotification.java +++ b/android/app/src/main/java/com/mattermost/rnbeta/CustomPushNotification.java @@ -20,6 +20,8 @@ import android.net.Uri; import android.os.Bundle; import android.os.Build; import android.provider.Settings.System; +import androidx.annotation.Nullable; +import android.util.Log; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Collections; @@ -35,6 +37,9 @@ import com.wix.reactnativenotifications.core.JsIOHelper; import static com.wix.reactnativenotifications.Defs.NOTIFICATION_RECEIVED_EVENT_NAME; +import com.mattermost.react_native_interface.ResolvePromise; +import com.facebook.react.bridge.WritableMap; + public class CustomPushNotification extends PushNotification { public static final int MESSAGE_NOTIFICATION_ID = 435345; public static final String GROUP_KEY_MESSAGES = "mm_group_key_messages"; @@ -42,6 +47,8 @@ public class CustomPushNotification extends PushNotification { public static final String KEY_TEXT_REPLY = "CAN_REPLY"; public static final String NOTIFICATION_REPLIED_EVENT_NAME = "notificationReplied"; + private static final String PUSH_TYPE_ID_LOADED = "id_loaded"; + private NotificationChannel mHighImportanceChannel; private NotificationChannel mMinImportanceChannel; @@ -93,16 +100,34 @@ public class CustomPushNotification extends PushNotification { @Override public void onReceived() throws InvalidNotificationException { - Bundle data = mNotificationProps.asBundle(); - final String channelId = data.getString("channel_id"); - final String type = data.getString("type"); - final String ackId = data.getString("ack_id"); + final Bundle initialData = mNotificationProps.asBundle(); + final String type = initialData.getString("type"); + final String ackId = initialData.getString("ack_id"); + final String postId = initialData.getString("post_id"); + final String channelId = initialData.getString("channel_id"); int notificationId = MESSAGE_NOTIFICATION_ID; if (ackId != null) { - notificationReceiptDelivery(ackId, type); + notificationReceiptDelivery(ackId, postId, type, new ResolvePromise() { + @Override + public void resolve(@Nullable Object value) { + if (PUSH_TYPE_ID_LOADED.equals(type)) { + Bundle response = (Bundle) value; + mNotificationProps = createProps(response); + } + } + + @Override + public void reject(String code, String message) { + Log.e("ReactNative", code + ": " + message); + } + }); } + // notificationReceiptDelivery can override mNotificationProps + // so we fetch the bundle again + final Bundle data = mNotificationProps.asBundle(); + if (channelId != null) { notificationId = channelId.hashCode(); Object objCount = channelIdToNotificationCount.get(channelId); @@ -493,8 +518,8 @@ public class CustomPushNotification extends PushNotification { return message.replaceFirst(senderName, "").replaceFirst(": ", "").trim(); } - private void notificationReceiptDelivery(String ackId, String type) { - ReceiptDelivery.send(context, ackId, type); + private void notificationReceiptDelivery(String ackId, String postId, String type, ResolvePromise promise) { + ReceiptDelivery.send(context, ackId, postId, type, promise); } private void createNotificationChannels() { diff --git a/android/app/src/main/java/com/mattermost/rnbeta/ReceiptDelivery.java b/android/app/src/main/java/com/mattermost/rnbeta/ReceiptDelivery.java index d63f9de60..e768179f4 100644 --- a/android/app/src/main/java/com/mattermost/rnbeta/ReceiptDelivery.java +++ b/android/app/src/main/java/com/mattermost/rnbeta/ReceiptDelivery.java @@ -2,6 +2,7 @@ package com.mattermost.rnbeta; import android.content.Context; import androidx.annotation.Nullable; +import android.os.Bundle; import android.util.Log; import java.lang.System; @@ -18,13 +19,14 @@ import org.json.JSONException; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.WritableMap; +import com.facebook.react.bridge.Arguments; import com.mattermost.react_native_interface.ResolvePromise; public class ReceiptDelivery { static final String CURRENT_SERVER_URL = "@currentServerUrl"; - public static void send (Context context, final String ackId, final String type) { + public static void send(Context context, final String ackId, final String postId, final String type, ResolvePromise promise) { final ReactApplicationContext reactApplicationContext = new ReactApplicationContext(context); MattermostCredentialsHelper.getCredentialsForCurrentServer(reactApplicationContext, new ResolvePromise() { @@ -47,17 +49,22 @@ public class ReceiptDelivery { } Log.i("ReactNative", String.format("Send receipt delivery ACK=%s TYPE=%s to URL=%s with TOKEN=%s", ackId, type, serverUrl, token)); - execute(serverUrl, token, ackId, type); + execute(serverUrl, postId, token, ackId, type, promise); } } }); } - protected static void execute(String serverUrl, String token, String ackId, String type) { - if (token == null || serverUrl == null) { + protected static void execute(String serverUrl, String postId, String token, String ackId, String type, ResolvePromise promise) { + if (token == null) { + promise.reject("Receipt delivery failure", "Invalid token"); return; } + if (serverUrl == null) { + promise.reject("Receipt delivery failure", "Invalid server URL"); + } + JSONObject json; long receivedAt = System.currentTimeMillis(); @@ -67,8 +74,10 @@ public class ReceiptDelivery { json.put("received_at", receivedAt); json.put("platform", "android"); json.put("type", type); + json.put("post_id", postId); } catch (JSONException e) { Log.e("ReactNative", "Receipt delivery failed to build json payload"); + promise.reject("Receipt delivery failure", e.toString()); return; } @@ -86,9 +95,24 @@ public class ReceiptDelivery { .build(); try { - client.newCall(request).execute(); + Response response = client.newCall(request).execute(); + String responseBody = response.body().toString(); + if (response.code() != 200) { + throw new Exception(responseBody); + } + JSONObject jsonResponse = new JSONObject(responseBody); + Bundle bundle = new Bundle(); + String keys[] = new String[] {"post_id", "category", "message", "team_id", "channel_id", "channel_name", "type", "sender_id", "sender_name", "version"}; + for (int i = 0; i < keys.length; i++) { + String key = keys[i]; + if (jsonResponse.has(key)) { + bundle.putString(key, jsonResponse.getString(key)); + } + } + promise.resolve(bundle); } catch (Exception e) { Log.e("ReactNative", "Receipt delivery failed to send"); + promise.reject("Receipt delivery failure", e.toString()); } } } diff --git a/app/push_notifications/push_notifications.ios.js b/app/push_notifications/push_notifications.ios.js index b04850f0c..8868fd94d 100644 --- a/app/push_notifications/push_notifications.ios.js +++ b/app/push_notifications/push_notifications.ios.js @@ -38,7 +38,7 @@ class PushNotification { this.deviceNotification = { data, foreground, - message: data.message, + message: data.body || data.message, userInfo: data.userInfo, userInteraction, }; @@ -155,9 +155,10 @@ class PushNotification { ephemeralStore.appStartedFromPushNotification = true; } + const data = notification.getData(); const info = { - ...notification.getData(), - message: notification.getMessage(), + ...data, + message: data.body || notification.getMessage(), }; if (!userInteraction) { @@ -166,9 +167,10 @@ class PushNotification { }; onNotificationReceivedForeground = (notification) => { + const data = notification.getData(); const info = { - ...notification.getData(), - message: notification.getMessage(), + ...data, + message: data.body || notification.getMessage(), }; this.handleNotification(info, true, false); }; @@ -177,9 +179,10 @@ class PushNotification { if (action.identifier === REPLY_ACTION) { this.handleReply(notification, action.text, completion); } else { + const data = notification.getData(); const info = { - ...notification.getData(), - message: notification.getMessage(), + ...data, + message: data.body || notification.getMessage(), }; this.handleNotification(info, false, true); completion(); diff --git a/ios/NotificationService/NotificationService.swift b/ios/NotificationService/NotificationService.swift index 371a7f36f..5e686d4c5 100644 --- a/ios/NotificationService/NotificationService.swift +++ b/ios/NotificationService/NotificationService.swift @@ -9,15 +9,37 @@ class NotificationService: UNNotificationServiceExtension { override func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) { self.contentHandler = contentHandler bestAttemptContent = (request.content.mutableCopy() as? UNMutableNotificationContent) - if let bestAttemptContent = bestAttemptContent { + let ackId = bestAttemptContent.userInfo["ack_id"] + let type = bestAttemptContent.userInfo["type"] + let postId = bestAttemptContent.userInfo["post_id"] UploadSession.shared.notificationReceipt( - notificationId: bestAttemptContent.userInfo["ack_id"], + notificationId: ackId, receivedAt: Date().millisencondsSince1970, - type: bestAttemptContent.userInfo["type"] - ) - - contentHandler(bestAttemptContent) + type: type, + postId: postId + ) { data, error in + if (type as? String == "id_loaded") { + guard let data = data, error == nil else { + return + } + + let json = try? JSONSerialization.jsonObject(with: data, options: .allowFragments) as! Dictionary + bestAttemptContent.title = json!["channel_name"] as! String + bestAttemptContent.body = json!["message"] as! String + + bestAttemptContent.userInfo["channel_name"] = json!["channel_name"] as! String + bestAttemptContent.userInfo["team_id"] = json!["team_id"] as? String + bestAttemptContent.userInfo["sender_id"] = json!["sender_id"] as! String + bestAttemptContent.userInfo["sender_name"] = json!["sender_name"] as! String + bestAttemptContent.userInfo["root_id"] = json!["root_id"] as? String + bestAttemptContent.userInfo["override_username"] = json!["override_username"] as? String + bestAttemptContent.userInfo["override_icon_url"] = json!["override_icon_url"] as? String + bestAttemptContent.userInfo["from_webhook"] = json!["from_webhook"] as? String + } + + contentHandler(bestAttemptContent) + } } } diff --git a/ios/UploadAttachments/UploadAttachments/UploadSession.swift b/ios/UploadAttachments/UploadAttachments/UploadSession.swift index d0dcd858e..7cad6f6ee 100644 --- a/ios/UploadAttachments/UploadAttachments/UploadSession.swift +++ b/ios/UploadAttachments/UploadAttachments/UploadSession.swift @@ -126,8 +126,12 @@ import os.log } }) } - + public func notificationReceipt(notificationId: Any?, receivedAt: Int, type: Any?) { + notificationReceipt(notificationId:notificationId, receivedAt:receivedAt, type:type, postId:nil, completion:{_, _ in}) + } + + public func notificationReceipt(notificationId: Any?, receivedAt: Int, type: Any?, postId: Any? = nil, completion: @escaping (Data?, Error?) -> Void) { if (notificationId != nil) { let store = StoreManager.shared() as StoreManager let entities = store.getEntities(true) @@ -142,18 +146,23 @@ import os.log "id": notificationId as Any, "received_at": receivedAt, "platform": "ios", - "type": type as Any + "type": type as Any, + "post_id": postId as Any ] if !JSONSerialization.isValidJSONObject(jsonObject) {return} - + guard let url = URL(string: urlString) else {return} var request = URLRequest(url: url) request.httpMethod = "POST" request.setValue("Bearer \(sessionToken!)", forHTTPHeaderField: "Authorization") request.setValue("application/json; charset=utf-8", forHTTPHeaderField: "Content-Type") request.httpBody = try? JSONSerialization.data(withJSONObject: jsonObject, options: .prettyPrinted) - URLSession(configuration: .ephemeral).dataTask(with: request).resume() + + let task = URLSession(configuration: .ephemeral).dataTask(with: request) { data, _, error in + completion(data, error) + } + task.resume() } } } diff --git a/patches/react-native-notifications+2.0.6.patch b/patches/react-native-notifications+2.0.6.patch index 56857ce1d..041401825 100644 --- a/patches/react-native-notifications+2.0.6.patch +++ b/patches/react-native-notifications+2.0.6.patch @@ -165,7 +165,7 @@ index 0d70024..47b962e 100644 PushNotificationProps asProps(); } diff --git a/node_modules/react-native-notifications/android/app/src/main/java/com/wix/reactnativenotifications/core/notification/PushNotification.java b/node_modules/react-native-notifications/android/app/src/main/java/com/wix/reactnativenotifications/core/notification/PushNotification.java -index 5e4e3d2..871e157 100644 +index 5e4e3d2..ec37f87 100644 --- a/node_modules/react-native-notifications/android/app/src/main/java/com/wix/reactnativenotifications/core/notification/PushNotification.java +++ b/node_modules/react-native-notifications/android/app/src/main/java/com/wix/reactnativenotifications/core/notification/PushNotification.java @@ -1,5 +1,6 @@ @@ -175,16 +175,28 @@ index 5e4e3d2..871e157 100644 import android.app.Notification; import android.app.NotificationChannel; import android.app.NotificationManager; -@@ -20,7 +21,9 @@ import com.wix.reactnativenotifications.core.InitialNotificationHolder; +@@ -20,18 +21,20 @@ import com.wix.reactnativenotifications.core.InitialNotificationHolder; import com.wix.reactnativenotifications.core.JsIOHelper; import com.wix.reactnativenotifications.core.NotificationIntentAdapter; import com.wix.reactnativenotifications.core.ProxyService; +import com.wix.reactnativenotifications.core.helpers.ScheduleNotificationHelper; - + +import static com.wix.reactnativenotifications.Defs.LOGTAG; import static com.wix.reactnativenotifications.Defs.NOTIFICATION_OPENED_EVENT_NAME; import static com.wix.reactnativenotifications.Defs.NOTIFICATION_RECEIVED_EVENT_NAME; import static com.wix.reactnativenotifications.Defs.NOTIFICATION_RECEIVED_FOREGROUND_EVENT_NAME; + + public class PushNotification implements IPushNotification { + ++ protected PushNotificationProps mNotificationProps; + final protected Context mContext; + final protected AppLifecycleFacade mAppLifecycleFacade; + final protected AppLaunchHelper mAppLaunchHelper; + final protected JsIOHelper mJsIOHelper; +- final protected PushNotificationProps mNotificationProps; + final protected AppVisibilityListener mAppVisibilityListener = new AppVisibilityListener() { + @Override + public void onAppVisible() { @@ -80,6 +83,41 @@ public class PushNotification implements IPushNotification { return postNotification(notificationId); } From d41f51ea0495dda76b90c28f918a56472ed8f841 Mon Sep 17 00:00:00 2001 From: Elias Nahum Date: Mon, 18 Nov 2019 21:11:16 -0300 Subject: [PATCH 18/21] Update Podfile.lock --- ios/Podfile.lock | 29 ----------------------------- 1 file changed, 29 deletions(-) diff --git a/ios/Podfile.lock b/ios/Podfile.lock index b90ad2810..2cf1c1e62 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -25,15 +25,6 @@ PODS: - React - KeyboardTrackingView (5.5.0): - React - - libwebp (1.0.3): - - libwebp/demux (= 1.0.3) - - libwebp/mux (= 1.0.3) - - libwebp/webp (= 1.0.3) - - libwebp/demux (1.0.3): - - libwebp/webp - - libwebp/mux (1.0.3): - - libwebp/demux - - libwebp/webp (1.0.3) - RCTRequired (0.61.2) - RCTTypeSafety (0.61.2): - FBLazyVector (= 0.61.2) @@ -268,10 +259,6 @@ PODS: - React - RNDeviceInfo (2.1.2): - React - - RNFastImage (7.0.2): - - React - - SDWebImage (~> 5.0) - - SDWebImageWebPCoder (~> 0.2.3) - RNGestureHandler (1.4.1): - React - RNKeychain (4.0.1): @@ -287,12 +274,6 @@ PODS: - React - RNVectorIcons (6.6.0): - React - - SDWebImage (5.2.2): - - SDWebImage/Core (= 5.2.2) - - SDWebImage/Core (5.2.2) - - SDWebImageWebPCoder (0.2.5): - - libwebp (~> 1.0) - - SDWebImage/Core (~> 5.0) - Sentry (4.4.0): - Sentry/Core (= 4.4.0) - Sentry/Core (4.4.0) @@ -348,7 +329,6 @@ DEPENDENCIES: - rn-fetch-blob (from `../node_modules/rn-fetch-blob`) - "RNCAsyncStorage (from `../node_modules/@react-native-community/async-storage`)" - RNDeviceInfo (from `../node_modules/react-native-device-info`) - - RNFastImage (from `../node_modules/react-native-fast-image`) - RNGestureHandler (from `../node_modules/react-native-gesture-handler`) - RNKeychain (from `../node_modules/react-native-keychain`) - RNReactNativeDocViewer (from `../node_modules/react-native-doc-viewer`) @@ -363,9 +343,6 @@ DEPENDENCIES: SPEC REPOS: https://github.com/cocoapods/specs.git: - boost-for-react-native - - libwebp - - SDWebImage - - SDWebImageWebPCoder - Sentry - Swime - XCDYouTubeKit @@ -458,8 +435,6 @@ EXTERNAL SOURCES: :path: "../node_modules/@react-native-community/async-storage" RNDeviceInfo: :path: "../node_modules/react-native-device-info" - RNFastImage: - :path: "../node_modules/react-native-fast-image" RNGestureHandler: :path: "../node_modules/react-native-gesture-handler" RNKeychain: @@ -487,7 +462,6 @@ SPEC CHECKSUMS: glog: 1f3da668190260b06b429bb211bfbee5cd790c28 jail-monkey: 0830c18bb6f085938a4c8529d554f9b29230a5a4 KeyboardTrackingView: d4d7236123b401ed9b1e02869e7943117740c522 - libwebp: 057912d6d0abfb6357d8bb05c0ea470301f5d61e RCTRequired: c639d59ed389cfb1f1203f65c2ea946d8ec586e2 RCTTypeSafety: dc23fb655d6c77667c78e327bf661bc11e3b8aec RCTYouTube: a36b9960e040063877fb8dc61fff19d3bd1a97ff @@ -523,7 +497,6 @@ SPEC CHECKSUMS: rn-fetch-blob: 3258c6483235bb7daf16cf921306ffb18406071f RNCAsyncStorage: 5ae4d57458804e99f73d427214442a6b10a53856 RNDeviceInfo: fd8296de6fca8b743cdc499b896f48e8a9f1faf5 - RNFastImage: 9b0c22643872bb7494c8d87bbbb66cc4c0d9e7a2 RNGestureHandler: 4cb47a93019c1a201df2644413a0a1569a51c8aa RNKeychain: 45dbd50d1ac4bd42c3740f76ffb135abf05746d0 RNReactNativeDocViewer: 571c6ac38483531b8fb521d02a6ba54652ed10a7 @@ -531,8 +504,6 @@ SPEC CHECKSUMS: RNSentry: 2803ba8c8129dcf26b79e9b4d8c80168be6e4390 RNSVG: be27aa7c58819f97399388ae53d7fa0572f32c7f RNVectorIcons: 0bb4def82230be1333ddaeee9fcba45f0b288ed4 - SDWebImage: 5fcdb02cc35e05fc35791ec514b191d27189f872 - SDWebImageWebPCoder: 947093edd1349d820c40afbd9f42acb6cdecd987 Sentry: 26650184fe71eb7476dfd2737acb5ea6cc64b4b1 Swime: d7b2c277503b6cea317774aedc2dce05613f8b0b XCDYouTubeKit: 4ca4e3322fa556ec1c32932d378365c15ce1386e From 6c1c64f81d42d2239b0719fff05d48f67d916d28 Mon Sep 17 00:00:00 2001 From: Matheus Cardoso Date: Mon, 18 Nov 2019 22:10:38 -0300 Subject: [PATCH 19/21] MM-17838 Wrap reactions when they exceed screen size (#3144) * 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 --- app/components/reactions/index.js | 11 +- app/components/reactions/reactions.js | 26 ++-- app/constants/emoji.js | 1 + app/screens/post_options/index.js | 160 +++++++++++++------------ app/screens/post_options/index.test.js | 26 +++- package-lock.json | 2 +- 6 files changed, 130 insertions(+), 96 deletions(-) diff --git a/app/components/reactions/index.js b/app/components/reactions/index.js index 2ea6fe1a5..62dc1914d 100644 --- a/app/components/reactions/index.js +++ b/app/components/reactions/index.js @@ -14,6 +14,7 @@ import {getTheme} from 'mattermost-redux/selectors/entities/preferences'; import {getChannel, isChannelReadOnlyById} from 'mattermost-redux/selectors/entities/channels'; import {addReaction} from 'app/actions/views/emoji'; +import {MAX_ALLOWED_REACTIONS} from 'app/constants/emoji'; import Reactions from './reactions'; @@ -27,17 +28,23 @@ function makeMapStateToProps() { const channelIsArchived = channel.delete_at !== 0; const channelIsReadOnly = isChannelReadOnlyById(state, channelId); + const currentUserId = getCurrentUserId(state); + const reactions = getReactionsForPostSelector(state, ownProps.postId); + let canAddReaction = true; let canRemoveReaction = true; + let canAddMoreReactions = true; if (channelIsArchived || channelIsReadOnly) { canAddReaction = false; canRemoveReaction = false; + canAddMoreReactions = false; } else if (hasNewPermissions(state)) { canAddReaction = haveIChannelPermission(state, { team: teamId, channel: channelId, permission: Permissions.ADD_REACTION, }); + canAddMoreReactions = Object.values(reactions).length < MAX_ALLOWED_REACTIONS; canRemoveReaction = haveIChannelPermission(state, { team: teamId, channel: channelId, @@ -45,14 +52,12 @@ function makeMapStateToProps() { }); } - const currentUserId = getCurrentUserId(state); - const reactions = getReactionsForPostSelector(state, ownProps.postId); - return { currentUserId, reactions, theme: getTheme(state), canAddReaction, + canAddMoreReactions, canRemoveReaction, }; }; diff --git a/app/components/reactions/reactions.js b/app/components/reactions/reactions.js index 65edb8ffc..f144bec1a 100644 --- a/app/components/reactions/reactions.js +++ b/app/components/reactions/reactions.js @@ -5,7 +5,7 @@ import React, {PureComponent} from 'react'; import PropTypes from 'prop-types'; import { Image, - ScrollView, + View, } from 'react-native'; import {intlShape} from 'react-intl'; import MaterialIcon from 'react-native-vector-icons/MaterialIcons'; @@ -26,13 +26,14 @@ export default class Reactions extends PureComponent { getReactionsForPost: PropTypes.func.isRequired, removeReaction: PropTypes.func.isRequired, }).isRequired, + canAddReaction: PropTypes.bool, + canAddMoreReactions: PropTypes.bool, + canRemoveReaction: PropTypes.bool.isRequired, currentUserId: PropTypes.string.isRequired, position: PropTypes.oneOf(['right', 'left']), postId: PropTypes.string.isRequired, reactions: PropTypes.object, theme: PropTypes.object.isRequired, - canAddReaction: PropTypes.bool, - canRemoveReaction: PropTypes.bool.isRequired, }; static defaultProps = { @@ -132,7 +133,7 @@ export default class Reactions extends PureComponent { }; render() { - const {position, reactions, canAddReaction} = this.props; + const {position, reactions, canAddMoreReactions} = this.props; const styles = getStyleSheet(this.props.theme); if (!reactions) { @@ -140,7 +141,7 @@ export default class Reactions extends PureComponent { } let addMoreReactions = null; - if (canAddReaction) { + if (canAddMoreReactions) { addMoreReactions = ( + {reactionElements} - + ); } } @@ -207,5 +203,11 @@ const getStyleSheet = makeStyleSheetFromTheme((theme) => { paddingHorizontal: 6, width: 40, }, + reactionsContainer: { + flex: 1, + flexDirection: 'row', + flexWrap: 'wrap', + alignContent: 'flex-start', + }, }; }); diff --git a/app/constants/emoji.js b/app/constants/emoji.js index e3742cfa7..b0526efa9 100644 --- a/app/constants/emoji.js +++ b/app/constants/emoji.js @@ -2,3 +2,4 @@ // See LICENSE.txt for license information. export const ALL_EMOJIS = 'all_emojis'; +export const MAX_ALLOWED_REACTIONS = 40; \ No newline at end of file diff --git a/app/screens/post_options/index.js b/app/screens/post_options/index.js index f326b45e5..65bc68992 100644 --- a/app/screens/post_options/index.js +++ b/app/screens/post_options/index.js @@ -13,6 +13,7 @@ import { removePost, } from 'mattermost-redux/actions/posts'; import {General, Permissions} from 'mattermost-redux/constants'; +import {makeGetReactionsForPost} from 'mattermost-redux/selectors/entities/posts'; import {getChannel, getCurrentChannelId} from 'mattermost-redux/selectors/entities/channels'; import {getCurrentUserId} from 'mattermost-redux/selectors/entities/users'; import {getConfig, getLicense, hasNewPermissions} from 'mattermost-redux/selectors/entities/general'; @@ -21,94 +22,103 @@ import {haveIChannelPermission} from 'mattermost-redux/selectors/entities/roles' import {getCurrentTeamId, getCurrentTeamUrl} from 'mattermost-redux/selectors/entities/teams'; import {canEditPost} from 'mattermost-redux/utils/post_utils'; +import {MAX_ALLOWED_REACTIONS} from 'app/constants/emoji'; import {THREAD} from 'app/constants/screen'; import {addReaction} from 'app/actions/views/emoji'; import {getDimensions, isLandscape} from 'app/selectors/device'; import PostOptions from './post_options'; -export function mapStateToProps(state, ownProps) { - const post = ownProps.post; - const channel = getChannel(state, post.channel_id) || {}; - const config = getConfig(state); - const license = getLicense(state); - const currentUserId = getCurrentUserId(state); - const currentTeamId = getCurrentTeamId(state); - const currentChannelId = getCurrentChannelId(state); +export function makeMapStateToProps() { + const getReactionsForPostSelector = makeGetReactionsForPost(); - const channelIsArchived = channel.delete_at !== 0; + return (state, ownProps) => { + const post = ownProps.post; + const channel = getChannel(state, post.channel_id) || {}; + const config = getConfig(state); + const license = getLicense(state); + const currentUserId = getCurrentUserId(state); + const currentTeamId = getCurrentTeamId(state); + const currentChannelId = getCurrentChannelId(state); + const reactions = getReactionsForPostSelector(state, post.id); + const channelIsArchived = channel.delete_at !== 0; - let canAddReaction = true; - let canReply = true; - let canCopyPermalink = true; - let canCopyText = false; - let canEdit = false; - let canEditUntil = -1; - let {canDelete} = ownProps; - let canFlag = true; - let canPin = true; + let canAddReaction = true; + let canReply = true; + let canCopyPermalink = true; + let canCopyText = false; + let canEdit = false; + let canEditUntil = -1; + let {canDelete} = ownProps; + let canFlag = true; + let canPin = true; - if (hasNewPermissions(state)) { - canAddReaction = haveIChannelPermission(state, { - team: currentTeamId, - channel: post.channel_id, - permission: Permissions.ADD_REACTION, - }); - } - - if (ownProps.location === THREAD) { - canReply = false; - } - - if (channelIsArchived || ownProps.channelIsReadOnly) { - canAddReaction = false; - canReply = false; - canDelete = false; - canPin = false; - } else { - canEdit = canEditPost(state, config, license, currentTeamId, currentChannelId, currentUserId, post); - if (canEdit && license.IsLicensed === 'true' && - (config.AllowEditPost === General.ALLOW_EDIT_POST_TIME_LIMIT || (config.PostEditTimeLimit !== -1 && config.PostEditTimeLimit !== '-1')) - ) { - canEditUntil = post.create_at + (config.PostEditTimeLimit * 1000); + if (hasNewPermissions(state)) { + canAddReaction = haveIChannelPermission(state, { + team: currentTeamId, + channel: post.channel_id, + permission: Permissions.ADD_REACTION, + }); } - } - if (ownProps.isSystemMessage) { - canAddReaction = false; - canReply = false; - canCopyPermalink = false; - canEdit = false; - canPin = false; - canFlag = false; - } - if (ownProps.hasBeenDeleted) { - canDelete = false; - } + if (ownProps.location === THREAD) { + canReply = false; + } - if (!ownProps.showAddReaction) { - canAddReaction = false; - } + if (channelIsArchived || ownProps.channelIsReadOnly) { + canAddReaction = false; + canReply = false; + canDelete = false; + canPin = false; + } else { + canEdit = canEditPost(state, config, license, currentTeamId, currentChannelId, currentUserId, post); + if (canEdit && license.IsLicensed === 'true' && + (config.AllowEditPost === General.ALLOW_EDIT_POST_TIME_LIMIT || (config.PostEditTimeLimit !== -1 && config.PostEditTimeLimit !== '-1')) + ) { + canEditUntil = post.create_at + (config.PostEditTimeLimit * 1000); + } + } - if (!ownProps.isSystemMessage && ownProps.managedConfig?.copyAndPasteProtection !== 'true' && post.message) { - canCopyText = true; - } + if (ownProps.isSystemMessage) { + canAddReaction = false; + canReply = false; + canCopyPermalink = false; + canEdit = false; + canPin = false; + canFlag = false; + } + if (ownProps.hasBeenDeleted) { + canDelete = false; + } - return { - ...getDimensions(state), - canAddReaction, - canReply, - canCopyPermalink, - canCopyText, - canEdit, - canEditUntil, - canDelete, - canFlag, - canPin, - currentTeamUrl: getCurrentTeamUrl(state), - isMyPost: currentUserId === post.user_id, - theme: getTheme(state), - isLandscape: isLandscape(state), + if (!ownProps.showAddReaction) { + canAddReaction = false; + } + + if (!ownProps.isSystemMessage && ownProps.managedConfig?.copyAndPasteProtection !== 'true' && post.message) { + canCopyText = true; + } + + if (reactions && Object.values(reactions).length >= MAX_ALLOWED_REACTIONS) { + canAddReaction = false; + } + + return { + ...getDimensions(state), + canAddReaction, + canReply, + canCopyPermalink, + canCopyText, + canEdit, + canEditUntil, + canDelete, + canFlag, + canPin, + currentTeamUrl: getCurrentTeamUrl(state), + isMyPost: currentUserId === post.user_id, + theme: getTheme(state), + isLandscape: isLandscape(state), + }; }; } @@ -126,4 +136,4 @@ function mapDispatchToProps(dispatch) { }; } -export default connect(mapStateToProps, mapDispatchToProps)(PostOptions); +export default connect(makeMapStateToProps, mapDispatchToProps)(PostOptions); diff --git a/app/screens/post_options/index.test.js b/app/screens/post_options/index.test.js index b3b8cff04..d07bd1131 100644 --- a/app/screens/post_options/index.test.js +++ b/app/screens/post_options/index.test.js @@ -1,6 +1,6 @@ // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. -import {mapStateToProps} from './index'; +import {makeMapStateToProps} from './index'; import * as channelSelectors from 'mattermost-redux/selectors/entities/channels'; import * as generalSelectors from 'mattermost-redux/selectors/entities/general'; @@ -24,10 +24,24 @@ deviceSelectors.getDimensions = jest.fn(); deviceSelectors.isLandscape = jest.fn(); preferencesSelectors.getTheme = jest.fn(); -describe('mapStateToProps', () => { - const baseState = {}; +describe('makeMapStateToProps', () => { + const baseState = { + entities: { + posts: { + posts: { + post_id: {}, + }, + reactions: { + post_id: {}, + }, + }, + }, + }; + const baseOwnProps = { - post: {}, + post: { + id: 'post_id', + }, }; test('canFlag is false for system messages', () => { @@ -36,6 +50,7 @@ describe('mapStateToProps', () => { isSystemMessage: true, }; + const mapStateToProps = makeMapStateToProps(); const props = mapStateToProps(baseState, ownProps); expect(props.canFlag).toBe(false); }); @@ -46,7 +61,8 @@ describe('mapStateToProps', () => { isSystemMessage: false, }; + const mapStateToProps = makeMapStateToProps(); const props = mapStateToProps(baseState, ownProps); expect(props.canFlag).toBe(true); }); -}); \ No newline at end of file +}); diff --git a/package-lock.json b/package-lock.json index 9a885108c..ee528d3fa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4673,7 +4673,7 @@ "dependencies": { "json5": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz", "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", "dev": true } From 609260dac31212cf93df8a666e0f3c96b70fdfd7 Mon Sep 17 00:00:00 2001 From: Elias Nahum Date: Tue, 19 Nov 2019 13:46:48 -0300 Subject: [PATCH 20/21] Update Podfile.lock --- ios/Podfile.lock | 29 +++++++++++++++++++++++++++++ package-lock.json | 4 ++-- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 2cf1c1e62..b90ad2810 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -25,6 +25,15 @@ PODS: - React - KeyboardTrackingView (5.5.0): - React + - libwebp (1.0.3): + - libwebp/demux (= 1.0.3) + - libwebp/mux (= 1.0.3) + - libwebp/webp (= 1.0.3) + - libwebp/demux (1.0.3): + - libwebp/webp + - libwebp/mux (1.0.3): + - libwebp/demux + - libwebp/webp (1.0.3) - RCTRequired (0.61.2) - RCTTypeSafety (0.61.2): - FBLazyVector (= 0.61.2) @@ -259,6 +268,10 @@ PODS: - React - RNDeviceInfo (2.1.2): - React + - RNFastImage (7.0.2): + - React + - SDWebImage (~> 5.0) + - SDWebImageWebPCoder (~> 0.2.3) - RNGestureHandler (1.4.1): - React - RNKeychain (4.0.1): @@ -274,6 +287,12 @@ PODS: - React - RNVectorIcons (6.6.0): - React + - SDWebImage (5.2.2): + - SDWebImage/Core (= 5.2.2) + - SDWebImage/Core (5.2.2) + - SDWebImageWebPCoder (0.2.5): + - libwebp (~> 1.0) + - SDWebImage/Core (~> 5.0) - Sentry (4.4.0): - Sentry/Core (= 4.4.0) - Sentry/Core (4.4.0) @@ -329,6 +348,7 @@ DEPENDENCIES: - rn-fetch-blob (from `../node_modules/rn-fetch-blob`) - "RNCAsyncStorage (from `../node_modules/@react-native-community/async-storage`)" - RNDeviceInfo (from `../node_modules/react-native-device-info`) + - RNFastImage (from `../node_modules/react-native-fast-image`) - RNGestureHandler (from `../node_modules/react-native-gesture-handler`) - RNKeychain (from `../node_modules/react-native-keychain`) - RNReactNativeDocViewer (from `../node_modules/react-native-doc-viewer`) @@ -343,6 +363,9 @@ DEPENDENCIES: SPEC REPOS: https://github.com/cocoapods/specs.git: - boost-for-react-native + - libwebp + - SDWebImage + - SDWebImageWebPCoder - Sentry - Swime - XCDYouTubeKit @@ -435,6 +458,8 @@ EXTERNAL SOURCES: :path: "../node_modules/@react-native-community/async-storage" RNDeviceInfo: :path: "../node_modules/react-native-device-info" + RNFastImage: + :path: "../node_modules/react-native-fast-image" RNGestureHandler: :path: "../node_modules/react-native-gesture-handler" RNKeychain: @@ -462,6 +487,7 @@ SPEC CHECKSUMS: glog: 1f3da668190260b06b429bb211bfbee5cd790c28 jail-monkey: 0830c18bb6f085938a4c8529d554f9b29230a5a4 KeyboardTrackingView: d4d7236123b401ed9b1e02869e7943117740c522 + libwebp: 057912d6d0abfb6357d8bb05c0ea470301f5d61e RCTRequired: c639d59ed389cfb1f1203f65c2ea946d8ec586e2 RCTTypeSafety: dc23fb655d6c77667c78e327bf661bc11e3b8aec RCTYouTube: a36b9960e040063877fb8dc61fff19d3bd1a97ff @@ -497,6 +523,7 @@ SPEC CHECKSUMS: rn-fetch-blob: 3258c6483235bb7daf16cf921306ffb18406071f RNCAsyncStorage: 5ae4d57458804e99f73d427214442a6b10a53856 RNDeviceInfo: fd8296de6fca8b743cdc499b896f48e8a9f1faf5 + RNFastImage: 9b0c22643872bb7494c8d87bbbb66cc4c0d9e7a2 RNGestureHandler: 4cb47a93019c1a201df2644413a0a1569a51c8aa RNKeychain: 45dbd50d1ac4bd42c3740f76ffb135abf05746d0 RNReactNativeDocViewer: 571c6ac38483531b8fb521d02a6ba54652ed10a7 @@ -504,6 +531,8 @@ SPEC CHECKSUMS: RNSentry: 2803ba8c8129dcf26b79e9b4d8c80168be6e4390 RNSVG: be27aa7c58819f97399388ae53d7fa0572f32c7f RNVectorIcons: 0bb4def82230be1333ddaeee9fcba45f0b288ed4 + SDWebImage: 5fcdb02cc35e05fc35791ec514b191d27189f872 + SDWebImageWebPCoder: 947093edd1349d820c40afbd9f42acb6cdecd987 Sentry: 26650184fe71eb7476dfd2737acb5ea6cc64b4b1 Swime: d7b2c277503b6cea317774aedc2dce05613f8b0b XCDYouTubeKit: 4ca4e3322fa556ec1c32932d378365c15ce1386e diff --git a/package-lock.json b/package-lock.json index ee528d3fa..c1aee1a7c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4673,7 +4673,7 @@ "dependencies": { "json5": { "version": "0.5.1", - "resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", "dev": true } @@ -8854,7 +8854,7 @@ } }, "mmjstool": { - "version": "github:mattermost/mattermost-utilities#b3e2e308b8b85469849a91c21958b46a89ab33ab", + "version": "github:mattermost/mattermost-utilities#ce99d7a9e82128a02fd36e44720a4aef2653810d", "from": "github:mattermost/mattermost-utilities", "dev": true, "requires": { From 7af63a7bfe85f35814534284e40f51bbc1ece0ea Mon Sep 17 00:00:00 2001 From: Elias Nahum Date: Tue, 19 Nov 2019 13:51:41 -0300 Subject: [PATCH 21/21] Fix CircleCI iOS build by adding watchman (#3574) --- .circleci/config.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index dd272f7f6..636c4c05d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -160,7 +160,9 @@ commands: working_directory: fastlane name: Run fastlane to build iOS no_output_timeout: 30m - command: bundle exec fastlane ios build + command: | + HOMEBREW_NO_AUTO_UPDATE=1 brew install watchman + bundle exec fastlane ios build deploy-to-store: description: "Deploy build to store"