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,13 +70,15 @@ export function ThreadItemPost({
} }
return ( return (
<ThreadItemPostInner <OnDeviceTranslationProvider>
item={item} <ThreadItemPostInner
postShadow={postShadow} item={item}
threadgateRecord={threadgateRecord} postShadow={postShadow}
overrides={overrides} threadgateRecord={threadgateRecord}
onPostSuccess={onPostSuccess} overrides={overrides}
/> 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,15 +72,17 @@ export function ThreadItemTreePost({
} }
return ( return (
<ThreadItemTreePostInner <OnDeviceTranslationProvider>
// Safeguard from clobbering per-post state below: <ThreadItemTreePostInner
key={postShadow.uri} // Safeguard from clobbering per-post state below:
item={item} key={postShadow.uri}
postShadow={postShadow} item={item}
threadgateRecord={threadgateRecord} postShadow={postShadow}
overrides={overrides} threadgateRecord={threadgateRecord}
onPostSuccess={onPostSuccess} overrides={overrides}
/> 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 && (