mirror of
				https://github.com/tooot-app/app
				synced 2025-06-05 22:19:13 +02:00 
			
		
		
		
	Try to fix crashes for Text
This commit is contained in:
		| @@ -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", | ||||||
|   | |||||||
| @@ -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} | ||||||
|   | |||||||
| @@ -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> | ||||||
|   ) |   ) | ||||||
| } | } | ||||||
|   | |||||||
| @@ -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} | ||||||
|   | |||||||
| @@ -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]) | ||||||
|   | |||||||
| @@ -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'} | ||||||
|   | |||||||
| @@ -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} | ||||||
|   | |||||||
| @@ -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} | ||||||
|   | |||||||
| @@ -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={[ | ||||||
|   | |||||||
| @@ -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 /> | ||||||
|     </> |     </> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user