about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/view/com/composer/Composer.tsx36
-rw-r--r--src/view/com/composer/text-input/TextInput.tsx6
-rw-r--r--src/view/com/composer/text-input/mobile/Autocomplete.tsx2
-rw-r--r--src/view/com/util/UserAvatar.tsx25
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>