diff --git a/app/components/announcement_banner/__snapshots__/announcement_banner.test.js.snap b/app/components/announcement_banner/__snapshots__/announcement_banner.test.js.snap
index 17249b6f4..2453aeafa 100644
--- a/app/components/announcement_banner/__snapshots__/announcement_banner.test.js.snap
+++ b/app/components/announcement_banner/__snapshots__/announcement_banner.test.js.snap
@@ -61,4 +61,63 @@ exports[`AnnouncementBanner should match snapshot 1`] = `
`;
-exports[`AnnouncementBanner should match snapshot 2`] = `null`;
+exports[`AnnouncementBanner should match snapshot 2`] = `
+
+
+
+
+
+
+
+
+`;
diff --git a/app/components/announcement_banner/announcement_banner.js b/app/components/announcement_banner/announcement_banner.js
index b46bcf422..cf25581a1 100644
--- a/app/components/announcement_banner/announcement_banner.js
+++ b/app/components/announcement_banner/announcement_banner.js
@@ -5,6 +5,7 @@ import React, {PureComponent} from 'react';
import PropTypes from 'prop-types';
import {
Animated,
+ InteractionManager,
StyleSheet,
Text,
TouchableOpacity,
@@ -67,15 +68,25 @@ export default class AnnouncementBanner extends PureComponent {
toggleBanner = (show = true) => {
const value = show ? 38 : 0;
- Animated.timing(this.state.bannerHeight, {
- toValue: value,
- duration: 350,
- useNativeDriver: false,
- }).start();
+ if (show && !this.state.visible) {
+ this.setState({visible: show});
+ }
+
+ InteractionManager.runAfterInteractions(() => {
+ Animated.timing(this.state.bannerHeight, {
+ toValue: value,
+ duration: 350,
+ useNativeDriver: false,
+ }).start(() => {
+ if (this.state.visible !== show) {
+ this.setState({visible: show});
+ }
+ });
+ });
};
render() {
- if (!this.props.bannerEnabled) {
+ if (!this.state.visible) {
return null;
}
diff --git a/app/components/remove_markdown.js b/app/components/remove_markdown.js
index eb4d2562d..d55eea91f 100644
--- a/app/components/remove_markdown.js
+++ b/app/components/remove_markdown.js
@@ -33,9 +33,11 @@ export default class RemoveMarkdown extends React.PureComponent {
del: Renderer.forwardChildren,
code: Renderer.forwardChildren,
link: Renderer.forwardChildren,
+ image: this.renderNull,
atMention: Renderer.forwardChildren,
channelLink: Renderer.forwardChildren,
emoji: this.renderNull,
+ hashtag: Renderer.forwardChildren,
paragraph: Renderer.forwardChildren,
heading: Renderer.forwardChildren,
@@ -55,6 +57,9 @@ export default class RemoveMarkdown extends React.PureComponent {
table: this.renderNull,
table_row: this.renderNull,
table_cell: this.renderNull,
+
+ mention_highlight: Renderer.forwardChildren,
+ editedIndicator: Renderer.forwardChildren,
},
});
};
diff --git a/app/screens/expanded_announcement_banner/expanded_announcement_banner.js b/app/screens/expanded_announcement_banner/expanded_announcement_banner.js
index 54ea66cfc..5bedc9ad1 100644
--- a/app/screens/expanded_announcement_banner/expanded_announcement_banner.js
+++ b/app/screens/expanded_announcement_banner/expanded_announcement_banner.js
@@ -6,12 +6,12 @@ import React from 'react';
import {ScrollView, View} from 'react-native';
import Button from 'react-native-button';
-import FormattedText from 'app/components/formatted_text';
-import Markdown from 'app/components/markdown';
-import SafeAreaView from 'app/components/safe_area_view';
-import {getMarkdownTextStyles, getMarkdownBlockStyles} from 'app/utils/markdown';
-import {changeOpacity, makeStyleSheetFromTheme} from 'app/utils/theme';
-import {popTopScreen} from 'app/actions/navigation';
+import {popTopScreen} from '@actions/navigation';
+import FormattedText from '@components/formatted_text';
+import Markdown from '@components/markdown';
+import SafeAreaView from '@components/safe_area_view';
+import {getMarkdownTextStyles, getMarkdownBlockStyles} from '@utils/markdown';
+import {changeOpacity, makeStyleSheetFromTheme} from '@utils/theme';
export default class ExpandedAnnouncementBanner extends React.PureComponent {
static propTypes = {
@@ -20,6 +20,7 @@ export default class ExpandedAnnouncementBanner extends React.PureComponent {
}).isRequired,
allowDismissal: PropTypes.bool.isRequired,
bannerText: PropTypes.string.isRequired,
+ isLandscape: PropTypes.bool,
theme: PropTypes.object.isRequired,
}
@@ -38,10 +39,11 @@ export default class ExpandedAnnouncementBanner extends React.PureComponent {
};
render() {
- const style = getStyleSheet(this.props.theme);
+ const {allowDismissal, isLandscape, theme} = this.props;
+ const style = getStyleSheet(theme);
let dismissButton = null;
- if (this.props.allowDismissal) {
+ if (allowDismissal) {
dismissButton = (