add on-device translation to replies

This commit is contained in:
Samuel Newman
2026-03-03 16:19:57 +02:00
parent 12b34bb0c5
commit 7e47fdfff7
2 changed files with 26 additions and 16 deletions
@@ -38,12 +38,14 @@ import {PostHider} from '#/components/moderation/PostHider'
import {type AppModerationCause} from '#/components/Pills' import {type AppModerationCause} from '#/components/Pills'
import {Embed, PostEmbedViewContext} from '#/components/Post/Embed' import {Embed, PostEmbedViewContext} from '#/components/Post/Embed'
import {ShowMoreTextButton} from '#/components/Post/ShowMoreTextButton' import {ShowMoreTextButton} from '#/components/Post/ShowMoreTextButton'
import {TranslatedPost} from '#/components/Post/Translated'
import {PostControls, PostControlsSkeleton} from '#/components/PostControls' import {PostControls, PostControlsSkeleton} from '#/components/PostControls'
import {RichText} from '#/components/RichText' import {RichText} from '#/components/RichText'
import * as Skele from '#/components/Skeleton' import * as Skele from '#/components/Skeleton'
import {SubtleHover} from '#/components/SubtleHover' import {SubtleHover} from '#/components/SubtleHover'
import {Text} from '#/components/Typography' import {Text} from '#/components/Typography'
import {useActorStatus} from '#/features/liveNow' import {useActorStatus} from '#/features/liveNow'
import {Provider as OnDeviceTranslationProvider} from '#/translation'
export type ThreadItemPostProps = { export type ThreadItemPostProps = {
item: Extract<ThreadItem, {type: 'threadPost'}> item: Extract<ThreadItem, {type: 'threadPost'}>
@@ -68,6 +70,7 @@ export function ThreadItemPost({
} }
return ( return (
<OnDeviceTranslationProvider>
<ThreadItemPostInner <ThreadItemPostInner
item={item} item={item}
postShadow={postShadow} postShadow={postShadow}
@@ -75,6 +78,7 @@ export function ThreadItemPost({
overrides={overrides} overrides={overrides}
onPostSuccess={onPostSuccess} onPostSuccess={onPostSuccess}
/> />
</OnDeviceTranslationProvider>
) )
} }
@@ -318,6 +322,7 @@ const ThreadItemPostInner = memo(function ThreadItemPostInner({
onPress={onPressShowMore} onPress={onPressShowMore}
/> />
)} )}
<TranslatedPost postText={richText.text} standalone />
</View> </View>
) : undefined} ) : undefined}
{post.embed && ( {post.embed && (
@@ -38,11 +38,13 @@ import {PostHider} from '#/components/moderation/PostHider'
import {type AppModerationCause} from '#/components/Pills' import {type AppModerationCause} from '#/components/Pills'
import {Embed, PostEmbedViewContext} from '#/components/Post/Embed' import {Embed, PostEmbedViewContext} from '#/components/Post/Embed'
import {ShowMoreTextButton} from '#/components/Post/ShowMoreTextButton' import {ShowMoreTextButton} from '#/components/Post/ShowMoreTextButton'
import {TranslatedPost} from '#/components/Post/Translated'
import {PostControls, PostControlsSkeleton} from '#/components/PostControls' import {PostControls, PostControlsSkeleton} from '#/components/PostControls'
import {RichText} from '#/components/RichText' import {RichText} from '#/components/RichText'
import * as Skele from '#/components/Skeleton' import * as Skele from '#/components/Skeleton'
import {SubtleHover} from '#/components/SubtleHover' import {SubtleHover} from '#/components/SubtleHover'
import {Text} from '#/components/Typography' import {Text} from '#/components/Typography'
import {Provider as OnDeviceTranslationProvider} from '#/translation'
/** /**
* Mimic the space in PostMeta * Mimic the space in PostMeta
@@ -70,6 +72,7 @@ export function ThreadItemTreePost({
} }
return ( return (
<OnDeviceTranslationProvider>
<ThreadItemTreePostInner <ThreadItemTreePostInner
// Safeguard from clobbering per-post state below: // Safeguard from clobbering per-post state below:
key={postShadow.uri} key={postShadow.uri}
@@ -79,6 +82,7 @@ export function ThreadItemTreePost({
overrides={overrides} overrides={overrides}
onPostSuccess={onPostSuccess} onPostSuccess={onPostSuccess}
/> />
</OnDeviceTranslationProvider>
) )
} }
@@ -358,6 +362,7 @@ const ThreadItemTreePostInner = memo(function ThreadItemTreePostInner({
onPress={onPressShowMore} onPress={onPressShowMore}
/> />
)} )}
<TranslatedPost postText={richText.text} standalone />
</View> </View>
) : null} ) : null}
{post.embed && ( {post.embed && (