diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/view/com/composer/Composer.tsx | 51 |
1 files changed, 19 insertions, 32 deletions
diff --git a/src/view/com/composer/Composer.tsx b/src/view/com/composer/Composer.tsx index 3eb7fbac6..8fdc62bc3 100644 --- a/src/view/com/composer/Composer.tsx +++ b/src/view/com/composer/Composer.tsx @@ -293,13 +293,27 @@ export const ComposePost = ({ return false }, [images, extGifAlt, extGif, requireAltTextEnabled]) + const isEmptyPost = + richtext.text.trim().length === 0 && + images.length === 0 && + !extLink && + !extGif && + !quote && + videoState.status === 'idle' + + const canPost = + graphemeLength <= MAX_GRAPHEME_LENGTH && + !isAltTextRequiredAndMissing && + !isEmptyPost && + videoState.status !== 'error' + const onPressPublish = React.useCallback( async (finishedUploading: boolean) => { - if (isPublishing || graphemeLength > MAX_GRAPHEME_LENGTH) { + if (isPublishing) { return } - if (isAltTextRequiredAndMissing) { + if (!canPost) { return } @@ -313,19 +327,6 @@ export const ComposePost = ({ } setError('') - - if ( - richtext.text.trim().length === 0 && - images.length === 0 && - !extLink && - !extGif && - !quote && - videoState.status === 'idle' - ) { - setError(_(msg`Did you want to say anything?`)) - return - } - setIsPublishing(true) let postUri @@ -410,10 +411,8 @@ export const ComposePost = ({ agent, draft, extLink, - extGif, images, - graphemeLength, - isAltTextRequiredAndMissing, + canPost, isPublishing, langPrefs.postLanguage, onClose, @@ -421,7 +420,6 @@ export const ComposePost = ({ quote, initQuote, replyTo, - richtext.text, setLangPrefs, videoState.asset, videoState.status, @@ -438,11 +436,6 @@ export const ComposePost = ({ } }, [onPressPublish, publishOnUpload, videoState.pendingPublish]) - const canPost = useMemo( - () => graphemeLength <= MAX_GRAPHEME_LENGTH && !isAltTextRequiredAndMissing, - [graphemeLength, isAltTextRequiredAndMissing], - ) - const onEmojiButtonPress = useCallback(() => { openEmojiPicker?.(textInput.current?.getCursorPosition()) }, [openEmojiPicker]) @@ -692,7 +685,7 @@ function ComposerTopBar({ <ActivityIndicator /> </View> </> - ) : canPost ? ( + ) : ( <Button testID="composerPublishBtn" label={isReply ? 'Publish reply' : 'Publish post'} @@ -702,7 +695,7 @@ function ComposerTopBar({ size="small" style={[a.rounded_full, a.py_sm]} onPress={onPublish} - disabled={isPublishQueued}> + disabled={!canPost || isPublishQueued}> <ButtonText style={[a.text_md]}> {isReply ? ( <Trans context="action">Reply</Trans> @@ -711,12 +704,6 @@ function ComposerTopBar({ )} </ButtonText> </Button> - ) : ( - <View style={[styles.postBtn, pal.btn]}> - <Text style={[pal.textLight, s.f16, s.bold]}> - <Trans context="action">Post</Trans> - </Text> - </View> )} </View> {children} |