Try to fix crashes for Text

This commit is contained in:
Zhiyuan Zheng 2021-06-11 23:07:41 +02:00
parent c72f26c260
commit 0be23da843
10 changed files with 46 additions and 46 deletions

View File

@ -4,7 +4,7 @@
"native": "210511", "native": "210511",
"major": 2, "major": 2,
"minor": 0, "minor": 0,
"patch": 4, "patch": 5,
"expo": "41.0.0" "expo": "41.0.0"
}, },
"description": "tooot app for Mastodon", "description": "tooot app for Mastodon",

View File

@ -128,7 +128,7 @@ const TimelineConversation: React.FC<Props> = ({
status={conversation.last_status} status={conversation.last_status}
highlighted={highlighted} highlighted={highlighted}
/> />
{conversation.last_status.poll && ( {conversation.last_status.poll ? (
<TimelinePoll <TimelinePoll
queryKey={queryKey} queryKey={queryKey}
statusId={conversation.last_status.id} statusId={conversation.last_status.id}
@ -138,7 +138,7 @@ const TimelineConversation: React.FC<Props> = ({
conversation.last_status.id === instanceAccount?.id conversation.last_status.id === instanceAccount?.id
} }
/> />
)} ) : null}
</View> </View>
<TimelineActions <TimelineActions
queryKey={queryKey} queryKey={queryKey}

View File

@ -116,13 +116,13 @@ const TimelineDefault: React.FC<Props> = ({
}} }}
> >
{typeof actualStatus.content === 'string' && {typeof actualStatus.content === 'string' &&
actualStatus.content.length > 0 && ( actualStatus.content.length > 0 ? (
<TimelineContent <TimelineContent
status={actualStatus} status={actualStatus}
highlighted={highlighted} highlighted={highlighted}
disableDetails={disableDetails} disableDetails={disableDetails}
/> />
)} ) : null}
{queryKey && actualStatus.poll ? ( {queryKey && actualStatus.poll ? (
<TimelinePoll <TimelinePoll
queryKey={queryKey} queryKey={queryKey}
@ -138,9 +138,9 @@ const TimelineDefault: React.FC<Props> = ({
actualStatus.media_attachments.length ? ( actualStatus.media_attachments.length ? (
<TimelineAttachment status={actualStatus} /> <TimelineAttachment status={actualStatus} />
) : null} ) : null}
{!disableDetails && actualStatus.card && ( {!disableDetails && actualStatus.card ? (
<TimelineCard card={actualStatus.card} /> <TimelineCard card={actualStatus.card} />
)} ) : null}
{!disableDetails ? ( {!disableDetails ? (
<TimelineFullConversation queryKey={queryKey} status={actualStatus} /> <TimelineFullConversation queryKey={queryKey} status={actualStatus} />
) : null} ) : null}
@ -148,7 +148,7 @@ const TimelineDefault: React.FC<Props> = ({
<TimelineActionsUsers status={actualStatus} highlighted={highlighted} /> <TimelineActionsUsers status={actualStatus} highlighted={highlighted} />
</View> </View>
{queryKey && !disableDetails && ( {queryKey && !disableDetails ? (
<TimelineActions <TimelineActions
queryKey={queryKey} queryKey={queryKey}
rootQueryKey={rootQueryKey} rootQueryKey={rootQueryKey}
@ -162,7 +162,7 @@ const TimelineDefault: React.FC<Props> = ({
).map(d => d?.acct)} ).map(d => d?.acct)}
reblog={item.reblog ? true : false} reblog={item.reblog ? true : false}
/> />
)} ) : null}
</Pressable> </Pressable>
) )
} }

View File

@ -113,13 +113,13 @@ const TimelineNotifications: React.FC<Props> = ({
: StyleConstants.Avatar.M + StyleConstants.Spacing.S : StyleConstants.Avatar.M + StyleConstants.Spacing.S
}} }}
> >
{notification.status.content.length > 0 && ( {notification.status.content.length > 0 ? (
<TimelineContent <TimelineContent
status={notification.status} status={notification.status}
highlighted={highlighted} highlighted={highlighted}
/> />
)} ) : null}
{notification.status.poll && ( {notification.status.poll ? (
<TimelinePoll <TimelinePoll
queryKey={queryKey} queryKey={queryKey}
statusId={notification.status.id} statusId={notification.status.id}
@ -127,13 +127,13 @@ const TimelineNotifications: React.FC<Props> = ({
reblog={false} reblog={false}
sameAccount={notification.account.id === instanceAccount?.id} sameAccount={notification.account.id === instanceAccount?.id}
/> />
)} ) : null}
{notification.status.media_attachments.length > 0 && ( {notification.status.media_attachments.length > 0 ? (
<TimelineAttachment status={notification.status} /> <TimelineAttachment status={notification.status} />
)} ) : null}
{notification.status.card && ( {notification.status.card ? (
<TimelineCard card={notification.status.card} /> <TimelineCard card={notification.status.card} />
)} ) : null}
<TimelineFullConversation <TimelineFullConversation
queryKey={queryKey} queryKey={queryKey}
status={notification.status} status={notification.status}

View File

@ -182,7 +182,7 @@ const TimelineActions: React.FC<Props> = ({
color={iconColor} color={iconColor}
size={StyleConstants.Font.Size.L} size={StyleConstants.Font.Size.L}
/> />
{status.replies_count > 0 && ( {status.replies_count > 0 ? (
<Text <Text
style={{ style={{
color: theme.secondary, color: theme.secondary,
@ -192,7 +192,7 @@ const TimelineActions: React.FC<Props> = ({
> >
{status.replies_count} {status.replies_count}
</Text> </Text>
)} ) : null}
</> </>
), ),
[status.replies_count] [status.replies_count]
@ -210,7 +210,7 @@ const TimelineActions: React.FC<Props> = ({
} }
size={StyleConstants.Font.Size.L} size={StyleConstants.Font.Size.L}
/> />
{status.reblogs_count > 0 && ( {status.reblogs_count > 0 ? (
<Text <Text
style={{ style={{
color: color(status.reblogged), color: color(status.reblogged),
@ -220,7 +220,7 @@ const TimelineActions: React.FC<Props> = ({
> >
{status.reblogs_count} {status.reblogs_count}
</Text> </Text>
)} ) : null}
</> </>
) )
}, [status.reblogged, status.reblogs_count]) }, [status.reblogged, status.reblogs_count])
@ -233,7 +233,7 @@ const TimelineActions: React.FC<Props> = ({
color={color(status.favourited)} color={color(status.favourited)}
size={StyleConstants.Font.Size.L} size={StyleConstants.Font.Size.L}
/> />
{status.favourites_count > 0 && ( {status.favourites_count > 0 ? (
<Text <Text
style={{ style={{
color: color(status.favourited), color: color(status.favourited),
@ -244,7 +244,7 @@ const TimelineActions: React.FC<Props> = ({
> >
{status.favourites_count} {status.favourites_count}
</Text> </Text>
)} ) : null}
</> </>
) )
}, [status.favourited, status.favourites_count]) }, [status.favourited, status.favourites_count])

View File

@ -74,7 +74,7 @@ const AttachmentAudio: React.FC<Props> = ({
) : null ) : null
) : ( ) : (
<> <>
{audio.preview_url && ( {audio.preview_url ? (
<GracefullyImage <GracefullyImage
uri={{ uri={{
original: audio.preview_url, original: audio.preview_url,
@ -82,7 +82,7 @@ const AttachmentAudio: React.FC<Props> = ({
}} }}
style={styles.background} style={styles.background}
/> />
)} ) : null}
<Button <Button
type='icon' type='icon'
content={audioPlaying ? 'PauseCircle' : 'PlayCircle'} content={audioPlaying ? 'PauseCircle' : 'PlayCircle'}

View File

@ -27,14 +27,14 @@ const TimelineCard = React.memo(
}} }}
testID='base' testID='base'
> >
{card.image && ( {card.image ? (
<GracefullyImage <GracefullyImage
uri={{ original: card.image }} uri={{ original: card.image }}
blurhash={card.blurhash} blurhash={card.blurhash}
style={styles.left} style={styles.left}
imageStyle={styles.image} imageStyle={styles.image}
/> />
)} ) : null}
<View style={styles.right}> <View style={styles.right}>
<Text <Text
numberOfLines={2} numberOfLines={2}

View File

@ -107,15 +107,15 @@ const ScreenActionsRoot = React.memo(
case 'status': case 'status':
return ( return (
<> <>
{!sameAccount && ( {!sameAccount ? (
<ActionsAccount <ActionsAccount
queryKey={params.queryKey} queryKey={params.queryKey}
rootQueryKey={params.rootQueryKey} rootQueryKey={params.rootQueryKey}
account={params.status.account} account={params.status.account}
dismiss={dismiss} dismiss={dismiss}
/> />
)} ) : null}
{sameAccount && params.status && ( {sameAccount && params.status ? (
<ActionsStatus <ActionsStatus
navigation={navigation} navigation={navigation}
queryKey={params.queryKey} queryKey={params.queryKey}
@ -123,22 +123,22 @@ const ScreenActionsRoot = React.memo(
status={params.status} status={params.status}
dismiss={dismiss} dismiss={dismiss}
/> />
)} ) : null}
{!sameDomain && statusDomain && ( {!sameDomain && statusDomain ? (
<ActionsDomain <ActionsDomain
queryKey={params.queryKey} queryKey={params.queryKey}
rootQueryKey={params.rootQueryKey} rootQueryKey={params.rootQueryKey}
domain={statusDomain} domain={statusDomain}
dismiss={dismiss} dismiss={dismiss}
/> />
)} ) : null}
{params.status.visibility !== 'direct' && ( {params.status.visibility !== 'direct' ? (
<ActionsShare <ActionsShare
url={params.status.url || params.status.uri} url={params.status.url || params.status.uri}
type={params.type} type={params.type}
dismiss={dismiss} dismiss={dismiss}
/> />
)} ) : null}
<Button <Button
type='text' type='text'
content={t('common:buttons.cancel')} content={t('common:buttons.cancel')}
@ -152,9 +152,9 @@ const ScreenActionsRoot = React.memo(
case 'account': case 'account':
return ( return (
<> <>
{!sameAccount && ( {!sameAccount ? (
<ActionsAccount account={params.account} dismiss={dismiss} /> <ActionsAccount account={params.account} dismiss={dismiss} />
)} ) : null}
<ActionsShare <ActionsShare
url={params.account.url} url={params.account.url}
type={params.type} type={params.type}

View File

@ -130,7 +130,7 @@ const ComposeAttachments: React.FC<Props> = ({ accessibleRefAttachments }) => {
uri: item.local?.local_thumbnail || item.remote?.preview_url uri: item.local?.local_thumbnail || item.remote?.preview_url
}} }}
/> />
{item.remote?.meta?.original?.duration && ( {item.remote?.meta?.original?.duration ? (
<Text <Text
style={[ style={[
styles.duration, styles.duration,
@ -142,7 +142,7 @@ const ComposeAttachments: React.FC<Props> = ({ accessibleRefAttachments }) => {
> >
{item.remote.meta.original.duration} {item.remote.meta.original.duration}
</Text> </Text>
)} ) : null}
{item.uploading ? ( {item.uploading ? (
<View <View
style={[ style={[

View File

@ -18,11 +18,11 @@ const ComposeRootHeader: React.FC = () => {
return ( return (
<> <>
{instanceActive !== -1 && localInstances.length > 1 && ( {instanceActive !== -1 && localInstances.length > 1 ? (
<View style={styles.postingAs}> <View style={styles.postingAs}>
<ComposePostingAs /> <ComposePostingAs />
</View> </View>
)} ) : null}
{composeState.spoiler.active ? <ComposeSpoilerInput /> : null} {composeState.spoiler.active ? <ComposeSpoilerInput /> : null}
<ComposeTextInput /> <ComposeTextInput />
</> </>