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