From f64135a6df618204cbb3749f4c0be32c38dea36f Mon Sep 17 00:00:00 2001 From: xmflsct Date: Tue, 22 Aug 2023 00:03:06 +0200 Subject: [PATCH] Fix #756 --- package.json | 2 +- src/components/Timeline/Shared/Card/Neodb.tsx | 26 +++++++++---------- src/components/Timeline/Shared/Card/index.tsx | 6 ++--- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/package.json b/package.json index dd6b0859..d2ee9ef6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "tooot", - "version": "4.10.1", + "version": "4.10.2", "description": "tooot for Mastodon", "author": "xmflsct ", "license": "GPL-3.0-or-later", diff --git a/src/components/Timeline/Shared/Card/Neodb.tsx b/src/components/Timeline/Shared/Card/Neodb.tsx index 42229b3e..2b3fabba 100644 --- a/src/components/Timeline/Shared/Card/Neodb.tsx +++ b/src/components/Timeline/Shared/Card/Neodb.tsx @@ -1,22 +1,20 @@ import GracefullyImage from '@components/GracefullyImage' -import openLink from '@components/openLink' import CustomText from '@components/Text' +import openLink from '@components/openLink' import { useNeodbQuery } from '@utils/queryHooks/neodb' -import { StyleConstants } from '@utils/styles/constants' import { useTheme } from '@utils/styles/ThemeManager' +import { StyleConstants } from '@utils/styles/constants' import * as Linking from 'expo-linking' -import { useState } from 'react' +import { useContext, useState } from 'react' import { Pressable, View } from 'react-native' +import StatusContext from '../Context' import { Rating } from './Rating' -export type Props = { - card: Mastodon.Card -} - -export const CardNeodb: React.FC = ({ card }) => { +export const CardNeodb: React.FC = () => { + const { status } = useContext(StatusContext) const { colors } = useTheme() - const path = Linking.parse(card.url).path + const path = Linking.parse(status?.card?.url || '').path if (!path) return null const segments = path?.split('/') @@ -26,7 +24,7 @@ export const CardNeodb: React.FC = ({ card }) => { ) return null - const [headingLines, setHeadingLines] = useState(3) + const [headingLines, setHeadingLines] = useState() const { data } = useNeodbQuery({ path }) @@ -41,7 +39,7 @@ export const CardNeodb: React.FC = ({ card }) => { padding: StyleConstants.Spacing.S, flexDirection: 'row' }} - onPress={() => openLink(card.url)} + onPress={() => status?.card?.url && openLink(status.card.url)} > {data.cover_image_url ? ( = ({ card }) => { fontWeight='Bold' style={{ color: colors.primaryDefault }} numberOfLines={3} - onTextLayout={({ nativeEvent }) => setHeadingLines(nativeEvent.lines.length)} + onTextLayout={({ nativeEvent }) => + !headingLines && setHeadingLines(nativeEvent.lines.length) + } children={heading.filter(d => d).join(' ')} /> @@ -77,7 +77,7 @@ export const CardNeodb: React.FC = ({ card }) => { d).join(' / ')} /> diff --git a/src/components/Timeline/Shared/Card/index.tsx b/src/components/Timeline/Shared/Card/index.tsx index 5dc3012a..4fa89458 100644 --- a/src/components/Timeline/Shared/Card/index.tsx +++ b/src/components/Timeline/Shared/Card/index.tsx @@ -1,7 +1,7 @@ import ComponentAccount from '@components/Account' import GracefullyImage from '@components/GracefullyImage' -import openLink from '@components/openLink' import CustomText from '@components/Text' +import openLink from '@components/openLink' import { useNavigation } from '@react-navigation/native' import { StackNavigationProp } from '@react-navigation/stack' import { isDevelopment } from '@utils/helpers/checkEnvironment' @@ -9,8 +9,8 @@ import { urlMatcher } from '@utils/helpers/urlMatcher' import { TabLocalStackParamList } from '@utils/navigation/navigators' import { useAccountQuery } from '@utils/queryHooks/account' import { useStatusQuery } from '@utils/queryHooks/status' -import { StyleConstants } from '@utils/styles/constants' import { useTheme } from '@utils/styles/ThemeManager' +import { StyleConstants } from '@utils/styles/constants' import React, { useContext, useEffect, useState } from 'react' import { useTranslation } from 'react-i18next' import { Pressable, View } from 'react-native' @@ -32,7 +32,7 @@ const TimelineCard: React.FC = () => { i18n.language.toLowerCase().startsWith('zh-hans')) || isDevelopment ) { - return + return } const { colors } = useTheme()