Small revert to be on the safe side (#7932)

* Revert "fix autocomplete (#7930)"

This reverts commit f06a78017a.

* Revert "#6861: Use available space to make focus on Composer TextInput easier (copy) (#7836)"

This reverts commit e40656128d.
This commit is contained in:
Eric Bailey
2025-03-07 10:34:14 -06:00
committed by GitHub
parent f06a78017a
commit 0014b8b9cd
4 changed files with 28 additions and 41 deletions
+17 -9
View File
@@ -657,7 +657,6 @@ export const ComposePost = ({
ref={scrollViewRef} ref={scrollViewRef}
layout={native(LinearTransition)} layout={native(LinearTransition)}
onScroll={scrollHandler} onScroll={scrollHandler}
contentContainerStyle={a.flex_grow}
style={a.flex_1} style={a.flex_1}
keyboardShouldPersistTaps="always" keyboardShouldPersistTaps="always"
onContentSizeChange={onScrollViewContentSizeChange} onContentSizeChange={onScrollViewContentSizeChange}
@@ -796,22 +795,19 @@ let ComposerPost = React.memo(function ComposerPost({
) )
return ( return (
<View style={[styles.post, !isActive && styles.inactivePost]}>
<View <View
style={[ style={[
a.mx_lg, styles.textInputLayout,
!isActive && styles.inactivePost, isNative && styles.textInputLayoutMobile,
isTextOnly && isNative && a.flex_grow,
]}> ]}>
<View style={[a.flex_row, isNative && a.flex_1]}>
<UserAvatar <UserAvatar
avatar={currentProfile?.avatar} avatar={currentProfile?.avatar}
size={50} size={50}
type={currentProfile?.associated?.labeler ? 'labeler' : 'user'} type={currentProfile?.associated?.labeler ? 'labeler' : 'user'}
style={[a.mt_xs]}
/> />
<TextInput <TextInput
ref={textInput} ref={textInput}
style={[a.pt_xs]}
richtext={richtext} richtext={richtext}
placeholder={selectTextInputPlaceholder} placeholder={selectTextInputPlaceholder}
autoFocus autoFocus
@@ -1081,8 +1077,9 @@ function ComposerEmbeds({
</Animated.View> </Animated.View>
)} )}
</LayoutAnimationConfig> </LayoutAnimationConfig>
{embed.quote?.uri ? (
<View style={!video ? [a.mt_md] : []}> <View style={!video ? [a.mt_md] : []}>
{embed.quote?.uri ? (
<View style={[s.mt5, s.mb2, isWeb && s.mb10]}> <View style={[s.mt5, s.mb2, isWeb && s.mb10]}>
<View style={{pointerEvents: 'none'}}> <View style={{pointerEvents: 'none'}}>
<LazyQuoteEmbed uri={embed.quote.uri} /> <LazyQuoteEmbed uri={embed.quote.uri} />
@@ -1091,8 +1088,8 @@ function ComposerEmbeds({
<QuoteX onRemove={() => dispatch({type: 'embed_remove_quote'})} /> <QuoteX onRemove={() => dispatch({type: 'embed_remove_quote'})} />
)} )}
</View> </View>
</View>
) : null} ) : null}
</View>
</> </>
) )
} }
@@ -1472,6 +1469,7 @@ const styles = StyleSheet.create({
marginLeft: 12, marginLeft: 12,
}, },
stickyFooterWeb: { stickyFooterWeb: {
// @ts-ignore web-only
position: 'sticky', position: 'sticky',
bottom: 0, bottom: 0,
}, },
@@ -1505,9 +1503,19 @@ const styles = StyleSheet.create({
justifyContent: 'center', justifyContent: 'center',
marginRight: 5, marginRight: 5,
}, },
post: {
marginHorizontal: 16,
},
inactivePost: { inactivePost: {
opacity: 0.5, opacity: 0.5,
}, },
textInputLayout: {
flexDirection: 'row',
paddingTop: 4,
},
textInputLayoutMobile: {
flex: 1,
},
addExtLinkBtn: { addExtLinkBtn: {
borderWidth: 1, borderWidth: 1,
borderRadius: 24, borderRadius: 24,
@@ -249,11 +249,9 @@ export const TextInput = forwardRef(function TextInputImpl(
multiline multiline
scrollEnabled={false} scrollEnabled={false}
numberOfLines={2} numberOfLines={2}
{...props}
style={[ style={[
inputTextStyle, inputTextStyle,
a.w_full, a.w_full,
!autocompletePrefix && a.h_full,
{ {
textAlignVertical: 'top', textAlignVertical: 'top',
minHeight: 60, minHeight: 60,
@@ -263,8 +261,8 @@ export const TextInput = forwardRef(function TextInputImpl(
borderWidth: 1, borderWidth: 1,
borderColor: 'transparent', borderColor: 'transparent',
}, },
props.style, ]}
]}> {...props}>
{textDecorated} {textDecorated}
</PasteInput> </PasteInput>
<Autocomplete <Autocomplete
@@ -49,7 +49,7 @@ export function Autocomplete({
a.px_sm, a.px_sm,
a.py_md, a.py_md,
]} ]}
key={item.did}> key={item.handle}>
<PressableScale <PressableScale
testID="autocompleteButton" testID="autocompleteButton"
style={[ style={[
+3 -22
View File
@@ -1,12 +1,5 @@
import React, {memo, useMemo} from 'react' import React, {memo, useMemo} from 'react'
import { import {Image, Pressable, StyleSheet, View} from 'react-native'
Image,
Pressable,
StyleProp,
StyleSheet,
View,
ViewStyle,
} from 'react-native'
import {Image as RNImage} from 'react-native-image-crop-picker' import {Image as RNImage} from 'react-native-image-crop-picker'
import Svg, {Circle, Path, Rect} from 'react-native-svg' import Svg, {Circle, Path, Rect} from 'react-native-svg'
import {ModerationUI} from '@atproto/api' import {ModerationUI} from '@atproto/api'
@@ -55,7 +48,6 @@ interface UserAvatarProps extends BaseUserAvatarProps {
moderation?: ModerationUI moderation?: ModerationUI
usePlainRNImage?: boolean usePlainRNImage?: boolean
onLoad?: () => void onLoad?: () => void
style?: StyleProp<ViewStyle>
} }
interface EditableUserAvatarProps extends BaseUserAvatarProps { interface EditableUserAvatarProps extends BaseUserAvatarProps {
@@ -189,7 +181,6 @@ let UserAvatar = ({
moderation, moderation,
usePlainRNImage = false, usePlainRNImage = false,
onLoad, onLoad,
style,
}: UserAvatarProps): React.ReactNode => { }: UserAvatarProps): React.ReactNode => {
const pal = usePalette('default') const pal = usePalette('default')
const backgroundColor = pal.colors.backgroundLight const backgroundColor = pal.colors.backgroundLight
@@ -227,19 +218,9 @@ let UserAvatar = ({
) )
}, [moderation?.alert, size, pal]) }, [moderation?.alert, size, pal])
const containerStyle = useMemo(() => {
return [
{
width: size,
height: size,
},
style,
]
}, [size, style])
return avatar && return avatar &&
!((moderation?.blur && isAndroid) /* android crashes with blur */) ? ( !((moderation?.blur && isAndroid) /* android crashes with blur */) ? (
<View style={containerStyle}> <View style={{width: size, height: size}}>
{usePlainRNImage ? ( {usePlainRNImage ? (
<Image <Image
accessibilityIgnoresInvertColors accessibilityIgnoresInvertColors
@@ -268,7 +249,7 @@ let UserAvatar = ({
{alert} {alert}
</View> </View>
) : ( ) : (
<View style={containerStyle}> <View style={{width: size, height: size}}>
<DefaultAvatar type={type} shape={finalShape} size={size} /> <DefaultAvatar type={type} shape={finalShape} size={size} />
{alert} {alert}
</View> </View>