diff options
author | Samuel Newman <mozzius@protonmail.com> | 2025-08-11 18:37:39 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-08-11 08:37:39 -0700 |
commit | bb949e4f44c4ed1e19c7bddc5779515b419a7022 (patch) | |
tree | 9cb70c6573ee6c4224de38b625f91483e52a5983 /src/components | |
parent | 2a6172cbaf2db0eda2a7cd2afaeef4b60aadf3ba (diff) | |
download | voidsky-bb949e4f44c4ed1e19c7bddc5779515b419a7022.tar.zst |
Fix translations on Android using PROCESS_TEXT intent (#8486)
* use intents to translate text on android * clean up config plugins * restore day night plugin just to be safe * leave a comment for why we can't open translate directly * add todo * fix lockfile lint
Diffstat (limited to 'src/components')
-rw-r--r-- | src/components/PostControls/PostMenu/PostMenuItems.tsx | 12 | ||||
-rw-r--r-- | src/components/dms/MessageContextMenu.tsx | 13 |
2 files changed, 8 insertions, 17 deletions
diff --git a/src/components/PostControls/PostMenu/PostMenuItems.tsx b/src/components/PostControls/PostMenu/PostMenuItems.tsx index ecc3d0174..3fd919cd3 100644 --- a/src/components/PostControls/PostMenu/PostMenuItems.tsx +++ b/src/components/PostControls/PostMenu/PostMenuItems.tsx @@ -19,6 +19,7 @@ import {useNavigation} from '@react-navigation/native' import {DISCOVER_DEBUG_DIDS} from '#/lib/constants' import {useOpenLink} from '#/lib/hooks/useOpenLink' +import {useTranslate} from '#/lib/hooks/useTranslate' import {getCurrentRoute} from '#/lib/routes/helpers' import {makeProfileLink} from '#/lib/routes/links' import { @@ -28,7 +29,6 @@ import { import {logEvent, useGate} from '#/lib/statsig/statsig' import {richTextToString} from '#/lib/strings/rich-text-helpers' import {toShareUrl} from '#/lib/strings/url-helpers' -import {getTranslatorLink} from '#/locale/helpers' import {logger} from '#/logger' import {type Shadow} from '#/state/cache/post-shadow' import {useProfileShadow} from '#/state/cache/profile-shadow' @@ -118,6 +118,7 @@ let PostMenuItems = ({ const {hidePost} = useHiddenPostsApi() const feedFeedback = useFeedFeedbackContext() const openLink = useOpenLink() + const translate = useTranslate() const navigation = useNavigation<NavigationProp>() const {mutedWordsDialogControl} = useGlobalDialogsControlContext() const blockPromptControl = useDialogControl() @@ -172,11 +173,6 @@ let PostMenuItems = ({ return makeProfileLink(postAuthor, 'post', urip.rkey) }, [postUri, postAuthor]) - const translatorUrl = getTranslatorLink( - record.text, - langPrefs.primaryLanguage, - ) - const onDeletePost = () => { deletePostMutate({uri: postUri}).then( () => { @@ -234,8 +230,8 @@ let PostMenuItems = ({ Toast.show(_(msg`Copied to clipboard`), 'clipboard-check') } - const onPressTranslate = async () => { - await openLink(translatorUrl, true) + const onPressTranslate = () => { + translate(record.text, langPrefs.primaryLanguage) if ( bsky.dangerousIsType<AppBskyFeedPost.Record>( diff --git a/src/components/dms/MessageContextMenu.tsx b/src/components/dms/MessageContextMenu.tsx index d1771659d..670e677db 100644 --- a/src/components/dms/MessageContextMenu.tsx +++ b/src/components/dms/MessageContextMenu.tsx @@ -5,9 +5,8 @@ import {type ChatBskyConvoDefs, RichText} from '@atproto/api' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' -import {useOpenLink} from '#/lib/hooks/useOpenLink' +import {useTranslate} from '#/lib/hooks/useTranslate' import {richTextToString} from '#/lib/strings/rich-text-helpers' -import {getTranslatorLink} from '#/locale/helpers' import {logger} from '#/logger' import {isNative} from '#/platform/detection' import {useConvoActive} from '#/state/messages/convo' @@ -39,7 +38,7 @@ export let MessageContextMenu = ({ const deleteControl = usePromptControl() const reportControl = usePromptControl() const langPrefs = useLanguagePrefs() - const openLink = useOpenLink() + const translate = useTranslate() const isFromSelf = message.sender?.did === currentAccount?.did @@ -57,11 +56,7 @@ export let MessageContextMenu = ({ }, [_, message.text, message.facets]) const onPressTranslateMessage = useCallback(() => { - const translatorUrl = getTranslatorLink( - message.text, - langPrefs.primaryLanguage, - ) - openLink(translatorUrl, true) + translate(message.text, langPrefs.primaryLanguage) logger.metric( 'translate', @@ -72,7 +67,7 @@ export let MessageContextMenu = ({ }, {statsig: false}, ) - }, [langPrefs.primaryLanguage, message.text, openLink]) + }, [langPrefs.primaryLanguage, message.text, translate]) const onDelete = useCallback(() => { LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut) |