diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 478da943..ca759e9e 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -306,7 +306,7 @@ PODS: - React-Core - react-native-language-detection (0.2.2): - React - - react-native-menu (0.7.2): + - react-native-menu (0.7.3): - React - react-native-mmkv (2.5.1): - MMKV (>= 1.2.13) @@ -748,7 +748,7 @@ SPEC CHECKSUMS: react-native-image-picker: 60f4246eb5bb7187fc15638a8c1f13abd3820695 react-native-ios-context-menu: b170594b4448c0cd10c79e13432216bac99de1ac react-native-language-detection: f414937fa715108ab50a6269a3de0bcb95e4ceb0 - react-native-menu: 8e172cfcf0e42e92f028e7781eddf84d430cae24 + react-native-menu: 9d7d6f819cc7fa14a15cf86888c53f3240d86f1b react-native-mmkv: 69b9c003f10afdd01addf7c6ee784ce42ee2eff3 react-native-netinfo: 2517ad504b3d303e90d7a431b0fcaef76d207983 react-native-pager-view: 54bed894cecebe28cede54c01038d9d1e122de43 diff --git a/ios/tooot/Info.plist b/ios/tooot/Info.plist index d6741b51..4317bfa3 100644 --- a/ios/tooot/Info.plist +++ b/ios/tooot/Info.plist @@ -86,5 +86,7 @@ Automatic UIViewControllerBasedStatusBarAppearance + CADisableMinimumFrameDurationOnPhone + diff --git a/package.json b/package.json index 714441c9..08394d14 100644 --- a/package.json +++ b/package.json @@ -90,7 +90,6 @@ "react-native-tab-view": "^3.3.4", "react-redux": "^8.0.5", "rn-placeholder": "^3.0.3", - "rtl-detect": "^1.0.4", "valid-url": "^1.0.9", "zeego": "^1.0.2" }, diff --git a/src/components/AccountButton.tsx b/src/components/AccountButton.tsx index d36f6bb4..ff3e497f 100644 --- a/src/components/AccountButton.tsx +++ b/src/components/AccountButton.tsx @@ -15,7 +15,7 @@ interface Props { const AccountButton: React.FC = ({ account, selected = false, additionalActions }) => { const navigation = useNavigation() const accountDetails = getAccountDetails( - ['auth.account.acct', 'auth.domain', 'auth.account.id'], + ['auth.domain', 'auth.account.acct', 'auth.account.domain', 'auth.account.id'], account ) if (!accountDetails) return null @@ -28,7 +28,7 @@ const AccountButton: React.FC = ({ account, selected = false, additionalA marginBottom: StyleConstants.Spacing.M, marginRight: StyleConstants.Spacing.M }} - content={`@${accountDetails['auth.account.acct']}@${accountDetails['auth.domain']}${ + content={`@${accountDetails['auth.account.acct']}@${accountDetails['auth.account.domain']}${ selected ? ' ✓' : '' }`} onPress={() => { diff --git a/src/components/Instance/index.tsx b/src/components/Instance/index.tsx index 0e9cbd71..4ab99862 100644 --- a/src/components/Instance/index.tsx +++ b/src/components/Instance/index.tsx @@ -123,6 +123,8 @@ const ComponentInstance: React.FC = ({ 'auth.domain': domain, 'auth.account.id': id, 'auth.account.acct': acct, + // @ts-ignore + 'auth.account.domain': instanceQuery.data?.domain || instanceQuery.data?.uri, 'auth.account.avatar_static': avatar_static, version: instanceQuery.data?.version || '0', preferences: undefined, @@ -190,7 +192,7 @@ const ComponentInstance: React.FC = ({ const processUpdate = useCallback(() => { if (domain) { const accounts = getGlobalStorage.object('accounts') - if (accounts && accounts.filter(account => account.startsWith(`${domain}/`)).length) { + if (accounts?.filter(account => account.startsWith(`${domain}/`)).length) { Alert.alert( t('componentInstance:update.alert.title'), t('componentInstance:update.alert.message'), diff --git a/src/components/Timeline/Shared/Content.tsx b/src/components/Timeline/Shared/Content.tsx index a803c5e7..c6003378 100644 --- a/src/components/Timeline/Shared/Content.tsx +++ b/src/components/Timeline/Shared/Content.tsx @@ -3,10 +3,10 @@ import CustomText from '@components/Text' import { usePreferencesQuery } from '@utils/queryHooks/preferences' import { StyleConstants } from '@utils/styles/constants' import { useTheme } from '@utils/styles/ThemeManager' +import i18next from 'i18next' import React, { useContext } from 'react' import { useTranslation } from 'react-i18next' import { Platform, View } from 'react-native' -import { isRtlLang } from 'rtl-detect' import StatusContext from './Context' export interface Props { @@ -23,6 +23,11 @@ const TimelineContent: React.FC = ({ notificationOwnToot = false, setSpoi const { data: preferences } = usePreferencesQuery() + const isRTLiOSTextStyles = + Platform.OS === 'ios' && status.language && i18next.dir(status.language) === 'rtl' + ? ({ writingDirection: 'rtl' } as { writingDirection: 'rtl' }) + : undefined + return ( {status.spoiler_text?.length ? ( @@ -37,11 +42,7 @@ const TimelineContent: React.FC = ({ notificationOwnToot = false, setSpoi numberOfLines={999} highlighted={highlighted} disableDetails={disableDetails} - textStyles={ - Platform.OS === 'ios' && status.language && isRtlLang(status.language) - ? { writingDirection: 'rtl' } - : undefined - } + textStyles={isRTLiOSTextStyles} /> {inThread ? ( = ({ notificationOwnToot = false, setSpoi setSpoilerExpanded={setSpoilerExpanded} highlighted={highlighted} disableDetails={disableDetails} - textStyles={ - Platform.OS === 'ios' && status.language && isRtlLang(status.language) - ? { writingDirection: 'rtl' } - : undefined - } + textStyles={isRTLiOSTextStyles} /> ) : ( @@ -90,11 +87,7 @@ const TimelineContent: React.FC = ({ notificationOwnToot = false, setSpoi tags={status.tags} numberOfLines={highlighted || inThread ? 999 : notificationOwnToot ? 2 : undefined} disableDetails={disableDetails} - textStyles={ - Platform.OS === 'ios' && status.language && isRtlLang(status.language) - ? { writingDirection: 'rtl' } - : undefined - } + textStyles={isRTLiOSTextStyles} /> )} diff --git a/src/i18n/en/components/timeline.json b/src/i18n/en/components/timeline.json index 2e948368..361afa6d 100644 --- a/src/i18n/en/components/timeline.json +++ b/src/i18n/en/components/timeline.json @@ -115,7 +115,7 @@ "accessibilityHint": "User's account" } }, - "application": "Via {{application}}", + "application": "via {{application}}", "edited": { "accessibilityLabel": "Toot edited" }, diff --git a/src/screens/Compose/Root/Header/PostingAs.tsx b/src/screens/Compose/Root/Header/PostingAs.tsx index dcfc03e5..cc79dbbe 100644 --- a/src/screens/Compose/Root/Header/PostingAs.tsx +++ b/src/screens/Compose/Root/Header/PostingAs.tsx @@ -23,7 +23,7 @@ const ComposePostingAs = () => { {t('content.root.header.postingAs', { acct: getAccountStorage.string('auth.account.acct'), - domain: getAccountStorage.string('auth.domain') + domain: getAccountStorage.string('auth.account.domain') })} diff --git a/src/screens/Tabs/Me/FollowedTags.tsx b/src/screens/Tabs/Me/FollowedTags.tsx index f00fe9d3..085d7f75 100644 --- a/src/screens/Tabs/Me/FollowedTags.tsx +++ b/src/screens/Tabs/Me/FollowedTags.tsx @@ -53,7 +53,6 @@ const TabMeFollowedTags: React.FC> renderItem={({ item }) => ( {}} children={