diff options
Diffstat (limited to 'src/view/com/composer')
-rw-r--r-- | src/view/com/composer/ComposerReplyTo.tsx | 8 | ||||
-rw-r--r-- | src/view/com/composer/select-language/SuggestedLanguage.tsx | 32 | ||||
-rw-r--r-- | src/view/com/composer/text-input/TextInput.web.tsx | 1 |
3 files changed, 29 insertions, 12 deletions
diff --git a/src/view/com/composer/ComposerReplyTo.tsx b/src/view/com/composer/ComposerReplyTo.tsx index 678c8581f..39a1473a3 100644 --- a/src/view/com/composer/ComposerReplyTo.tsx +++ b/src/view/com/composer/ComposerReplyTo.tsx @@ -83,7 +83,11 @@ export function ComposerReplyTo({replyTo}: {replyTo: ComposerOptsPostRef}) { accessibilityHint={_( msg`Expand or collapse the full post you are replying to`, )}> - <UserAvatar avatar={replyTo.author.avatar} size={50} /> + <UserAvatar + avatar={replyTo.author.avatar} + size={50} + moderation={replyTo.moderation?.avatar} + /> <View style={styles.replyToPost}> <Text type="xl-medium" style={[pal.text]}> {sanitizeDisplayName( @@ -99,7 +103,7 @@ export function ComposerReplyTo({replyTo}: {replyTo: ComposerOptsPostRef}) { {replyTo.text} </Text> </View> - {images && ( + {images && !replyTo.moderation?.embed.blur && ( <ComposerReplyToImages images={images} showFull={showFull} /> )} </View> diff --git a/src/view/com/composer/select-language/SuggestedLanguage.tsx b/src/view/com/composer/select-language/SuggestedLanguage.tsx index 987d89d36..0bf62ae0d 100644 --- a/src/view/com/composer/select-language/SuggestedLanguage.tsx +++ b/src/view/com/composer/select-language/SuggestedLanguage.tsx @@ -23,7 +23,9 @@ const onIdle = globalThis.requestIdleCallback || (cb => setTimeout(cb, 1)) const cancelIdle = globalThis.cancelIdleCallback || clearTimeout export function SuggestedLanguage({text}: {text: string}) { - const [suggestedLanguage, setSuggestedLanguage] = useState<string>() + const [suggestedLanguage, setSuggestedLanguage] = useState< + string | undefined + >() const langPrefs = useLanguagePrefs() const setLangPrefs = useLanguagePrefsApi() const pal = usePalette('default') @@ -40,14 +42,7 @@ export function SuggestedLanguage({text}: {text: string}) { } const idle = onIdle(() => { - // Only select languages that have a high confidence and convert to code2 - const result = lande(textTrimmed).filter( - ([lang, value]) => value >= 0.97 && code3ToCode2Strict(lang), - ) - - setSuggestedLanguage( - result.length > 0 ? code3ToCode2Strict(result[0][0]) : undefined, - ) + setSuggestedLanguage(guessLanguage(textTrimmed)) }) return () => cancelIdle(idle) @@ -99,3 +94,22 @@ const styles = StyleSheet.create({ marginBottom: 10, }, }) + +/** + * This function is using the lande language model to attempt to detect the language + * We want to only make suggestions when we feel a high degree of certainty + * The magic numbers are based on debugging sessions against some test strings + */ +function guessLanguage(text: string): string | undefined { + const scores = lande(text).filter(([_lang, value]) => value >= 0.0002) + // if the model has multiple items with a score higher than 0.0002, it isn't certain enough + if (scores.length !== 1) { + return undefined + } + const [lang, value] = scores[0] + // if the model doesn't give a score of 0.97 or above, it isn't certain enough + if (value < 0.97) { + return undefined + } + return code3ToCode2Strict(lang) +} diff --git a/src/view/com/composer/text-input/TextInput.web.tsx b/src/view/com/composer/text-input/TextInput.web.tsx index f2012a630..af0d18743 100644 --- a/src/view/com/composer/text-input/TextInput.web.tsx +++ b/src/view/com/composer/text-input/TextInput.web.tsx @@ -316,7 +316,6 @@ function getImageFromUri( const type = item.type if (type === 'text/plain') { - console.log('hit') item.getAsString(async itemString => { if (isUriImage(itemString)) { const response = await fetch(itemString) |