From e40656128d2fad41762ec1e7f022bc10fcdd25fc Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Tue, 25 Feb 2025 08:07:45 -0800 Subject: #6861: Use available space to make focus on Composer TextInput easier (copy) (#7836) * 6861: Use available space to make focus on Composer TextInput easier * Undo web * bluesky-social#6861: Adjust focus area for native platforms taking Embeds into consideration * use atoms * remove empty div * remove debug atom, whoopsie --------- Co-authored-by: GrizliK1988 Co-authored-by: Dan Abramov --- src/view/com/composer/Composer.tsx | 36 ++++++++++---------------- src/view/com/composer/text-input/TextInput.tsx | 6 +++-- src/view/com/util/UserAvatar.tsx | 25 +++++++++++++++--- 3 files changed, 40 insertions(+), 27 deletions(-) (limited to 'src') diff --git a/src/view/com/composer/Composer.tsx b/src/view/com/composer/Composer.tsx index e8fe1a7ce..e80b80449 100644 --- a/src/view/com/composer/Composer.tsx +++ b/src/view/com/composer/Composer.tsx @@ -657,6 +657,7 @@ export const ComposePost = ({ ref={scrollViewRef} layout={native(LinearTransition)} onScroll={scrollHandler} + contentContainerStyle={a.flex_grow} style={a.flex_1} keyboardShouldPersistTaps="always" onContentSizeChange={onScrollViewContentSizeChange} @@ -795,19 +796,22 @@ let ComposerPost = React.memo(function ComposerPost({ ) return ( - - + + )} - - - {embed.quote?.uri ? ( + {embed.quote?.uri ? ( + @@ -1088,8 +1091,8 @@ function ComposerEmbeds({ dispatch({type: 'embed_remove_quote'})} /> )} - ) : null} - + + ) : null} ) } @@ -1469,7 +1472,6 @@ const styles = StyleSheet.create({ marginLeft: 12, }, stickyFooterWeb: { - // @ts-ignore web-only position: 'sticky', bottom: 0, }, @@ -1503,19 +1505,9 @@ 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 55fd3650f..22d1f1d08 100644 --- a/src/view/com/composer/text-input/TextInput.tsx +++ b/src/view/com/composer/text-input/TextInput.tsx @@ -249,9 +249,11 @@ export const TextInput = forwardRef(function TextInputImpl( multiline scrollEnabled={false} numberOfLines={2} + {...props} style={[ inputTextStyle, a.w_full, + a.h_full, { textAlignVertical: 'top', minHeight: 60, @@ -261,8 +263,8 @@ export const TextInput = forwardRef(function TextInputImpl( borderWidth: 1, borderColor: 'transparent', }, - ]} - {...props}> + props.style, + ]}> {textDecorated} void + style?: StyleProp } interface EditableUserAvatarProps extends BaseUserAvatarProps { @@ -180,6 +188,7 @@ let UserAvatar = ({ moderation, usePlainRNImage = false, onLoad, + style, }: UserAvatarProps): React.ReactNode => { const pal = usePalette('default') const backgroundColor = pal.colors.backgroundLight @@ -217,9 +226,19 @@ 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 */) ? ( - + {usePlainRNImage ? ( ) : ( - + {alert} -- cgit 1.4.1