diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/view/com/composer/Composer.tsx | 36 | ||||
-rw-r--r-- | src/view/com/composer/text-input/TextInput.tsx | 6 | ||||
-rw-r--r-- | src/view/com/composer/text-input/mobile/Autocomplete.tsx | 2 | ||||
-rw-r--r-- | src/view/com/util/UserAvatar.tsx | 25 |
4 files changed, 28 insertions, 41 deletions
diff --git a/src/view/com/composer/Composer.tsx b/src/view/com/composer/Composer.tsx index e80b80449..e8fe1a7ce 100644 --- a/src/view/com/composer/Composer.tsx +++ b/src/view/com/composer/Composer.tsx @@ -657,7 +657,6 @@ export const ComposePost = ({ ref={scrollViewRef} layout={native(LinearTransition)} onScroll={scrollHandler} - contentContainerStyle={a.flex_grow} style={a.flex_1} keyboardShouldPersistTaps="always" onContentSizeChange={onScrollViewContentSizeChange} @@ -796,22 +795,19 @@ let ComposerPost = React.memo(function ComposerPost({ ) return ( - <View - style={[ - a.mx_lg, - !isActive && styles.inactivePost, - isTextOnly && isNative && a.flex_grow, - ]}> - <View style={[a.flex_row, isNative && a.flex_1]}> + <View style={[styles.post, !isActive && styles.inactivePost]}> + <View + style={[ + styles.textInputLayout, + isNative && styles.textInputLayoutMobile, + ]}> <UserAvatar avatar={currentProfile?.avatar} size={50} type={currentProfile?.associated?.labeler ? 'labeler' : 'user'} - style={[a.mt_xs]} /> <TextInput ref={textInput} - style={[a.pt_xs]} richtext={richtext} placeholder={selectTextInputPlaceholder} autoFocus @@ -1081,8 +1077,9 @@ function ComposerEmbeds({ </Animated.View> )} </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={{pointerEvents: 'none'}}> <LazyQuoteEmbed uri={embed.quote.uri} /> @@ -1091,8 +1088,8 @@ function ComposerEmbeds({ <QuoteX onRemove={() => dispatch({type: 'embed_remove_quote'})} /> )} </View> - </View> - ) : null} + ) : null} + </View> </> ) } @@ -1472,6 +1469,7 @@ const styles = StyleSheet.create({ marginLeft: 12, }, stickyFooterWeb: { + // @ts-ignore web-only position: 'sticky', bottom: 0, }, @@ -1505,9 +1503,19 @@ const styles = StyleSheet.create({ justifyContent: 'center', marginRight: 5, }, + post: { + marginHorizontal: 16, + }, inactivePost: { opacity: 0.5, }, + textInputLayout: { + flexDirection: 'row', + paddingTop: 4, + }, + textInputLayoutMobile: { + flex: 1, + }, addExtLinkBtn: { borderWidth: 1, borderRadius: 24, diff --git a/src/view/com/composer/text-input/TextInput.tsx b/src/view/com/composer/text-input/TextInput.tsx index 6f5e812ed..55fd3650f 100644 --- a/src/view/com/composer/text-input/TextInput.tsx +++ b/src/view/com/composer/text-input/TextInput.tsx @@ -249,11 +249,9 @@ export const TextInput = forwardRef(function TextInputImpl( multiline scrollEnabled={false} numberOfLines={2} - {...props} style={[ inputTextStyle, a.w_full, - !autocompletePrefix && a.h_full, { textAlignVertical: 'top', minHeight: 60, @@ -263,8 +261,8 @@ export const TextInput = forwardRef(function TextInputImpl( borderWidth: 1, borderColor: 'transparent', }, - props.style, - ]}> + ]} + {...props}> {textDecorated} </PasteInput> <Autocomplete diff --git a/src/view/com/composer/text-input/mobile/Autocomplete.tsx b/src/view/com/composer/text-input/mobile/Autocomplete.tsx index 5e91ef149..0fda6843b 100644 --- a/src/view/com/composer/text-input/mobile/Autocomplete.tsx +++ b/src/view/com/composer/text-input/mobile/Autocomplete.tsx @@ -49,7 +49,7 @@ export function Autocomplete({ a.px_sm, a.py_md, ]} - key={item.did}> + key={item.handle}> <PressableScale testID="autocompleteButton" style={[ diff --git a/src/view/com/util/UserAvatar.tsx b/src/view/com/util/UserAvatar.tsx index 20fc1c65d..e0a31c139 100644 --- a/src/view/com/util/UserAvatar.tsx +++ b/src/view/com/util/UserAvatar.tsx @@ -1,12 +1,5 @@ import React, {memo, useMemo} from 'react' -import { - Image, - Pressable, - StyleProp, - StyleSheet, - View, - ViewStyle, -} from 'react-native' +import {Image, Pressable, StyleSheet, View} from 'react-native' import {Image as RNImage} from 'react-native-image-crop-picker' import Svg, {Circle, Path, Rect} from 'react-native-svg' import {ModerationUI} from '@atproto/api' @@ -55,7 +48,6 @@ interface UserAvatarProps extends BaseUserAvatarProps { moderation?: ModerationUI usePlainRNImage?: boolean onLoad?: () => void - style?: StyleProp<ViewStyle> } interface EditableUserAvatarProps extends BaseUserAvatarProps { @@ -189,7 +181,6 @@ let UserAvatar = ({ moderation, usePlainRNImage = false, onLoad, - style, }: UserAvatarProps): React.ReactNode => { const pal = usePalette('default') const backgroundColor = pal.colors.backgroundLight @@ -227,19 +218,9 @@ let UserAvatar = ({ ) }, [moderation?.alert, size, pal]) - const containerStyle = useMemo(() => { - return [ - { - width: size, - height: size, - }, - style, - ] - }, [size, style]) - return avatar && !((moderation?.blur && isAndroid) /* android crashes with blur */) ? ( - <View style={containerStyle}> + <View style={{width: size, height: size}}> {usePlainRNImage ? ( <Image accessibilityIgnoresInvertColors @@ -268,7 +249,7 @@ let UserAvatar = ({ {alert} </View> ) : ( - <View style={containerStyle}> + <View style={{width: size, height: size}}> <DefaultAvatar type={type} shape={finalShape} size={size} /> {alert} </View> |