diff --git a/app/components/post_list/post/body/body.tsx b/app/components/post_list/post/body/body.tsx index 99517312c..34a2b1e24 100644 --- a/app/components/post_list/post/body/body.tsx +++ b/app/components/post_list/post/body/body.tsx @@ -178,6 +178,8 @@ const Body = ({ {body} {post.failed && diff --git a/app/components/post_list/post/body/failed/failed.tsx b/app/components/post_list/post/body/failed/failed.tsx index e5c524cbc..b63805917 100644 --- a/app/components/post_list/post/body/failed/failed.tsx +++ b/app/components/post_list/post/body/failed/failed.tsx @@ -2,20 +2,21 @@ // See LICENSE.txt for license information. import React, {useCallback} from 'react'; -import {StyleSheet} from 'react-native'; +import {intlShape, injectIntl} from 'react-intl'; +import {Keyboard, StyleSheet} from 'react-native'; import {showModalOverCurrentContext} from '@actions/navigation'; import CompassIcon from '@components/compass_icon'; import TouchableWithFeedback from '@components/touchable_with_feedback'; import NavigationTypes from '@constants/navigation'; import EventEmitter from '@mm-redux/utils/event_emitter'; -import {t} from '@utils/i18n'; import type {Post} from '@mm-redux/types/posts'; import type {Theme} from '@mm-redux/types/theme'; type FailedProps = { createPost: (post: Post) => void; + intl: typeof intlShape; post: Post; removePost: (post: Post) => void; theme: Theme; @@ -28,38 +29,39 @@ const styles = StyleSheet.create({ }, }); -const Failed = ({createPost, post, removePost, theme}: FailedProps) => { +const Failed = ({createPost, intl, post, removePost, theme}: FailedProps) => { const onPress = useCallback(() => { const screen = 'OptionsModal'; const passProps = { - title: { - id: t('mobile.post.failed_title'), + title: intl.formatMessage({ + id: 'mobile.post.failed_title', defaultMessage: 'Unable to send your message:', - }, + }), items: [{ action: () => { EventEmitter.emit(NavigationTypes.NAVIGATION_CLOSE_MODAL); createPost(post); }, - text: { - id: t('mobile.post.failed_retry'), + text: intl.formatMessage({ + id: 'mobile.post.failed_retry', defaultMessage: 'Try Again', - }, + }), }, { action: () => { EventEmitter.emit(NavigationTypes.NAVIGATION_CLOSE_MODAL); removePost(post); }, - text: { - id: t('mobile.post.failed_delete'), + text: intl.formatMessage({ + id: 'mobile.post.failed_delete', defaultMessage: 'Delete Message', - }, + }), textStyle: { color: '#CC3239', }, }], }; + Keyboard.dismiss(); showModalOverCurrentContext(screen, passProps); }, []); @@ -77,5 +79,4 @@ const Failed = ({createPost, post, removePost, theme}: FailedProps) => { ); }; - -export default Failed; +export default injectIntl(Failed); diff --git a/app/components/sidebars/main/channels_list/list/__snapshots__/list.test.js.snap b/app/components/sidebars/main/channels_list/list/__snapshots__/list.test.js.snap index 78ee4906d..155afee53 100644 --- a/app/components/sidebars/main/channels_list/list/__snapshots__/list.test.js.snap +++ b/app/components/sidebars/main/channels_list/list/__snapshots__/list.test.js.snap @@ -16,7 +16,6 @@ exports[`ChannelsList List should match snapshot 1`] = ` maxToRenderPerBatch={10} onScrollBeginDrag={[Function]} onViewableItemsChanged={[Function]} - removeClippedSubviews={false} renderItem={[Function]} renderSectionHeader={[Function]} sections={Array []} @@ -49,7 +48,6 @@ exports[`ChannelsList List should match snapshot with collapsed threads enabled maxToRenderPerBatch={10} onScrollBeginDrag={[Function]} onViewableItemsChanged={[Function]} - removeClippedSubviews={false} renderItem={[Function]} renderSectionHeader={[Function]} sections={Array []} @@ -122,7 +120,6 @@ exports[`ChannelsList List should match snapshot with unreads not on top 1`] = ` maxToRenderPerBatch={10} onScrollBeginDrag={[Function]} onViewableItemsChanged={[Function]} - removeClippedSubviews={false} renderItem={[Function]} renderSectionHeader={[Function]} sections={Array []} diff --git a/app/components/sidebars/main/channels_list/list/list.js b/app/components/sidebars/main/channels_list/list/list.js index 8f4298677..7b5b8a35a 100644 --- a/app/components/sidebars/main/channels_list/list/list.js +++ b/app/components/sidebars/main/channels_list/list/list.js @@ -557,7 +557,6 @@ export default class List extends PureComponent { ref={this.setListRef} sections={showLegacySidebar ? sections : categorySections} contentContainerStyle={{paddingBottom}} - removeClippedSubviews={Platform.OS === 'android'} renderItem={showLegacySidebar ? this.renderItem : this.renderCategoryItem} renderSectionHeader={showLegacySidebar ? this.renderSectionHeader : this.renderCategoryHeader} keyboardShouldPersistTaps={'always'} diff --git a/app/screens/options_modal/__snapshots__/options_modal_list.test.js.snap b/app/screens/options_modal/__snapshots__/options_modal_list.test.js.snap index a825a9092..a3d4a7926 100644 --- a/app/screens/options_modal/__snapshots__/options_modal_list.test.js.snap +++ b/app/screens/options_modal/__snapshots__/options_modal_list.test.js.snap @@ -5,8 +5,10 @@ exports[`OptionModalList should match snapshot 1`] = ` style={ Object { "alignItems": "center", - "flex": 1, + "bottom": 0, + "height": "100%", "justifyContent": "flex-end", + "width": "100%", } } > @@ -27,7 +29,7 @@ exports[`OptionModalList should match snapshot 1`] = ` "borderTopLeftRadius": 12, "borderTopRightRadius": 12, "paddingBottom": 25, - "paddingVertical": 10, + "paddingTop": 10, }, ] } diff --git a/app/screens/options_modal/options_modal.js b/app/screens/options_modal/options_modal.js index af4ddf345..9359f9621 100644 --- a/app/screens/options_modal/options_modal.js +++ b/app/screens/options_modal/options_modal.js @@ -92,7 +92,7 @@ export default class OptionsModal extends PureComponent { return ( - +