diff --git a/native/chat/chat-list.react.js b/native/chat/chat-list.react.js --- a/native/chat/chat-list.react.js +++ b/native/chat/chat-list.react.js @@ -4,13 +4,14 @@ import _sum from 'lodash/fp/sum'; import * as React from 'react'; import { - FlatList, Animated, Easing, StyleSheet, TouchableWithoutFeedback, View, + FlatList as ReactNativeFlatList, } from 'react-native'; +import { FlatList } from 'react-native-gesture-handler'; import { localIDPrefix } from 'lib/shared/message-utils'; @@ -27,13 +28,16 @@ import NewMessagesPill from './new-messages-pill.react'; import { chatMessageItemHeight, chatMessageItemKey } from './utils'; +type FlatListElementRef = React.ElementRef; +type FlatListProps = React.ElementConfig; + const animationSpec = { duration: 150, useNativeDriver: true, }; type BaseProps = { - ...React.ElementConfig, + ...FlatListProps, +navigation: ChatNavigationProp<'MessageList'>, +data: $ReadOnlyArray, ... @@ -54,7 +58,7 @@ newMessageCount: 0, }; - flatList: ?React.ElementRef; + flatList: ?FlatListElementRef; scrollPos = 0; newMessagesPillProgress = new Animated.Value(0); @@ -211,7 +215,7 @@ ); } - flatListRef = (flatList: ?React.ElementRef) => { + flatListRef = (flatList: any) => { this.flatList = flatList; }; diff --git a/native/chat/parent-thread-header.react.js b/native/chat/parent-thread-header.react.js --- a/native/chat/parent-thread-header.react.js +++ b/native/chat/parent-thread-header.react.js @@ -1,7 +1,8 @@ // @flow import * as React from 'react'; -import { View, Text, ScrollView } from 'react-native'; +import { View, Text } from 'react-native'; +import { ScrollView } from 'react-native-gesture-handler'; import type { ThreadInfo, ThreadType } from 'lib/types/thread-types'; diff --git a/native/chat/settings/delete-thread.react.js b/native/chat/settings/delete-thread.react.js --- a/native/chat/settings/delete-thread.react.js +++ b/native/chat/settings/delete-thread.react.js @@ -6,10 +6,10 @@ Text, View, TextInput as BaseTextInput, - ScrollView, Alert, ActivityIndicator, } from 'react-native'; +import { ScrollView } from 'react-native-gesture-handler'; import { deleteThreadActionTypes, diff --git a/native/chat/settings/thread-settings.react.js b/native/chat/settings/thread-settings.react.js --- a/native/chat/settings/thread-settings.react.js +++ b/native/chat/settings/thread-settings.react.js @@ -2,7 +2,8 @@ import invariant from 'invariant'; import * as React from 'react'; -import { View, FlatList, Platform } from 'react-native'; +import { View, Platform } from 'react-native'; +import { FlatList } from 'react-native-gesture-handler'; import { createSelector } from 'reselect'; import tinycolor from 'tinycolor2'; diff --git a/native/components/thread-ancestors.react.js b/native/components/thread-ancestors.react.js --- a/native/components/thread-ancestors.react.js +++ b/native/components/thread-ancestors.react.js @@ -2,7 +2,8 @@ import Icon from '@expo/vector-icons/FontAwesome5'; import * as React from 'react'; -import { View, ScrollView } from 'react-native'; +import { View } from 'react-native'; +import { ScrollView } from 'react-native-gesture-handler'; import { ancestorThreadInfos } from 'lib/selectors/thread-selectors'; import type { ThreadInfo } from 'lib/types/thread-types'; diff --git a/native/profile/appearance-preferences.react.js b/native/profile/appearance-preferences.react.js --- a/native/profile/appearance-preferences.react.js +++ b/native/profile/appearance-preferences.react.js @@ -1,7 +1,8 @@ // @flow import * as React from 'react'; -import { View, Text, ScrollView, Platform } from 'react-native'; +import { View, Text, Platform } from 'react-native'; +import { ScrollView } from 'react-native-gesture-handler'; import { useDispatch } from 'react-redux'; import type { Dispatch } from 'lib/types/redux-types'; diff --git a/native/profile/build-info.react.js b/native/profile/build-info.react.js --- a/native/profile/build-info.react.js +++ b/native/profile/build-info.react.js @@ -1,7 +1,8 @@ // @flow import * as React from 'react'; -import { View, Text, ScrollView } from 'react-native'; +import { View, Text } from 'react-native'; +import { ScrollView } from 'react-native-gesture-handler'; import { persistConfig, codeVersion } from '../redux/persist'; import { StaffContext } from '../staff/staff-context'; diff --git a/native/profile/default-notifications-preferences.react.js b/native/profile/default-notifications-preferences.react.js --- a/native/profile/default-notifications-preferences.react.js +++ b/native/profile/default-notifications-preferences.react.js @@ -1,7 +1,8 @@ // @flow import * as React from 'react'; -import { View, Text, ScrollView, Platform, Alert } from 'react-native'; +import { View, Text, Platform, Alert } from 'react-native'; +import { ScrollView } from 'react-native-gesture-handler'; import { setUserSettings, diff --git a/native/profile/delete-account.react.js b/native/profile/delete-account.react.js --- a/native/profile/delete-account.react.js +++ b/native/profile/delete-account.react.js @@ -6,10 +6,10 @@ Text, View, TextInput as BaseTextInput, - ScrollView, Alert, ActivityIndicator, } from 'react-native'; +import { ScrollView } from 'react-native-gesture-handler'; import { deleteAccountActionTypes, diff --git a/native/profile/dev-tools.react.js b/native/profile/dev-tools.react.js --- a/native/profile/dev-tools.react.js +++ b/native/profile/dev-tools.react.js @@ -1,8 +1,9 @@ // @flow import * as React from 'react'; -import { View, Text, ScrollView, Platform } from 'react-native'; +import { View, Text, Platform } from 'react-native'; import ExitApp from 'react-native-exit-app'; +import { ScrollView } from 'react-native-gesture-handler'; import { useDispatch } from 'react-redux'; import type { Dispatch } from 'lib/types/redux-types'; diff --git a/native/profile/edit-password.react.js b/native/profile/edit-password.react.js --- a/native/profile/edit-password.react.js +++ b/native/profile/edit-password.react.js @@ -7,10 +7,10 @@ Text, View, TextInput as BaseTextInput, - ScrollView, Alert, ActivityIndicator, } from 'react-native'; +import { ScrollView } from 'react-native-gesture-handler'; import { changeUserPasswordActionTypes, diff --git a/native/profile/privacy-preferences.react.js b/native/profile/privacy-preferences.react.js --- a/native/profile/privacy-preferences.react.js +++ b/native/profile/privacy-preferences.react.js @@ -1,7 +1,8 @@ // @flow import * as React from 'react'; -import { View, Text, ScrollView } from 'react-native'; +import { View, Text } from 'react-native'; +import { ScrollView } from 'react-native-gesture-handler'; import { useStyles } from '../themes/colors'; import ToggleReport from './toggle-report.react'; diff --git a/native/profile/relationship-list.react.js b/native/profile/relationship-list.react.js --- a/native/profile/relationship-list.react.js +++ b/native/profile/relationship-list.react.js @@ -2,7 +2,8 @@ import invariant from 'invariant'; import * as React from 'react'; -import { View, Text, FlatList, Alert, Platform } from 'react-native'; +import { View, Text, Alert, Platform } from 'react-native'; +import { FlatList } from 'react-native-gesture-handler'; import { createSelector } from 'reselect'; import {