···11import React, {useCallback, useMemo} from 'react'
22-import {StyleSheet, Keyboard} from 'react-native'
22+import {Keyboard, StyleSheet} from 'react-native'
33import {
44 FontAwesomeIcon,
55 FontAwesomeIconStyle,
66} from '@fortawesome/react-native-fontawesome'
77-import {Text} from 'view/com/util/text/Text'
77+import {msg} from '@lingui/macro'
88+import {useLingui} from '@lingui/react'
99+1010+import {useModalControls} from '#/state/modals'
1111+import {
1212+ hasPostLanguage,
1313+ toPostLanguages,
1414+ useLanguagePrefs,
1515+ useLanguagePrefsApi,
1616+} from '#/state/preferences/languages'
1717+import {usePalette} from 'lib/hooks/usePalette'
1818+import {isNative} from 'platform/detection'
819import {
920 DropdownButton,
1021 DropdownItem,
1122 DropdownItemButton,
1223} from 'view/com/util/forms/DropdownButton'
1313-import {usePalette} from 'lib/hooks/usePalette'
1414-import {isNative} from 'platform/detection'
2424+import {Text} from 'view/com/util/text/Text'
1525import {codeToLanguageName} from '../../../../locale/helpers'
1616-import {useModalControls} from '#/state/modals'
1717-import {
1818- useLanguagePrefs,
1919- useLanguagePrefsApi,
2020- toPostLanguages,
2121- hasPostLanguage,
2222-} from '#/state/preferences/languages'
2323-import {msg} from '@lingui/macro'
2424-import {useLingui} from '@lingui/react'
25262627export function SelectLangBtn() {
2728 const pal = usePalette('default')
+19-9
src/view/com/util/forms/DropdownButton.tsx
···22import {
33 Dimensions,
44 GestureResponderEvent,
55+ Platform,
56 StyleProp,
67 StyleSheet,
78 TouchableOpacity,
···1011 View,
1112 ViewStyle,
1213} from 'react-native'
1313-import {IconProp} from '@fortawesome/fontawesome-svg-core'
1414import RootSiblings from 'react-native-root-siblings'
1515+import {FullWindowOverlay} from 'react-native-screens'
1616+import {IconProp} from '@fortawesome/fontawesome-svg-core'
1517import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
1616-import {Text} from '../text/Text'
1717-import {Button, ButtonType} from './Button'
1818+import {msg} from '@lingui/macro'
1919+import {useLingui} from '@lingui/react'
2020+2121+import {HITSLOP_10} from 'lib/constants'
2222+import {usePalette} from 'lib/hooks/usePalette'
1823import {colors} from 'lib/styles'
1919-import {usePalette} from 'lib/hooks/usePalette'
2024import {useTheme} from 'lib/ThemeContext'
2121-import {HITSLOP_10} from 'lib/constants'
2222-import {useLingui} from '@lingui/react'
2323-import {msg} from '@lingui/macro'
2425import {isWeb} from 'platform/detection'
2626+import {Text} from '../text/Text'
2727+import {Button, ButtonType} from './Button'
25282629const ESTIMATED_BTN_HEIGHT = 50
2730const ESTIMATED_SEP_HEIGHT = 16
···239242 // - (On mobile) be buttons by default, accept `label` and `nativeID`
240243 // props, and always have an explicit label
241244 return (
242242- <>
245245+ <Wrapper>
243246 {/* This TouchableWithoutFeedback renders the background so if the user clicks outside, the dropdown closes */}
244247 <TouchableWithoutFeedback
245248 onPress={onOuterPress}
···304307 return null
305308 })}
306309 </View>
307307- </>
310310+ </Wrapper>
308311 )
309312}
313313+314314+// on iOS, due to formSheet presentation style, we need to render the overlay
315315+// as a full screen overlay
316316+const Wrapper = Platform.select({
317317+ ios: FullWindowOverlay,
318318+ default: ({children}) => <>{children}</>,
319319+})
310320311321function isSep(item: DropdownItem): item is DropdownItemSeparator {
312322 return 'sep' in item && item.sep
+4-3
src/view/shell/Composer.web.tsx
···11import React from 'react'
22import {StyleSheet, View} from 'react-native'
33import Animated, {FadeIn, FadeInDown, FadeOut} from 'react-native-reanimated'
44-import {ComposePost} from '../com/composer/Composer'
55-import {useComposerState} from 'state/shell/composer'
44+55+import {useWebBodyScrollLock} from '#/lib/hooks/useWebBodyScrollLock'
66import {usePalette} from 'lib/hooks/usePalette'
77import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries'
88-import {useWebBodyScrollLock} from '#/lib/hooks/useWebBodyScrollLock'
88+import {useComposerState} from 'state/shell/composer'
99import {
1010 EmojiPicker,
1111 EmojiPickerState,
1212} from 'view/com/composer/text-input/web/EmojiPicker.web'
1313+import {ComposePost} from '../com/composer/Composer'
13141415const BOTTOM_BAR_HEIGHT = 61
1516