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 = (