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={