Merge pull request #296 from tooot-app/main

Patch v4.0.1
This commit is contained in:
xmflsct 2022-05-16 23:54:50 +02:00 committed by GitHub
commit 028ee92d64
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
16 changed files with 34 additions and 37 deletions

View File

@ -3,9 +3,6 @@ export ENVIRONMENT="development"
export SENTRY_ORGANIZATION=""
export SENTRY_PROJECT=""
export SENTRY_AUTH_TOKEN=""
export SENTRY_DSN=""
export TOOOT_PUSH_KEY_PUBLIC=""
# Fastlane start
export LC_ALL=""

View File

@ -43,8 +43,6 @@ jobs:
SENTRY_ORGANIZATION: ${{ secrets.SENTRY_ORGANIZATION }}
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
TOOOT_PUSH_KEY_PUBLIC: ${{ secrets.TOOOT_PUSH_KEY_PUBLIC }}
FASTLANE_USER: ${{ secrets.FASTLANE_USER }}
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}
MATCH_GIT_URL: ${{ secrets.MATCH_GIT_URL }}

View File

@ -12,10 +12,6 @@ export default (): ExpoConfig => ({
version: toootVersion,
privacy: 'hidden',
assetBundlePatterns: ['assets/*'],
extra: {
sentryDSN: process.env.SENTRY_DSN,
toootPushKeyPublic: process.env.TOOOT_PUSH_KEY_PUBLIC
},
hooks: {
postPublish: [
{

View File

@ -4,7 +4,7 @@
"native": "220508",
"major": 4,
"minor": 0,
"patch": 0,
"patch": 1,
"expo": "45.0.0"
},
"description": "tooot app for Mastodon",

View File

@ -54,7 +54,6 @@ import { enableFreeze } from 'react-native-screens'
import { QueryClientProvider } from 'react-query'
import { Provider } from 'react-redux'
import { PersistGate } from 'redux-persist/integration/react'
import { IntlProvider } from 'react-intl'
Platform.select({
android: LogBox.ignoreLogs(['Setting a timer for a long period of time'])
@ -132,9 +131,7 @@ const App: React.FC = () => {
<ActionSheetProvider>
<AccessibilityManager>
<ThemeManager>
<IntlProvider locale={language}>
<Screens localCorrupt={localCorrupt} />
</IntlProvider>
<Screens localCorrupt={localCorrupt} />
</ThemeManager>
</AccessibilityManager>
</ActionSheetProvider>

View File

@ -26,6 +26,7 @@ import * as Linking from 'expo-linking'
import { addScreenshotListener } from 'expo-screen-capture'
import React, { useCallback, useEffect, useRef, useState } from 'react'
import { useTranslation } from 'react-i18next'
import { IntlProvider } from 'react-intl'
import { Alert, Platform, StatusBar } from 'react-native'
import ShareMenu from 'react-native-share-menu'
import { useSelector } from 'react-redux'
@ -39,7 +40,7 @@ export interface Props {
}
const Screens: React.FC<Props> = ({ localCorrupt }) => {
const { t } = useTranslation('screens')
const { i18n, t } = useTranslation('screens')
const dispatch = useAppDispatch()
const instanceActive = useSelector(getInstanceActive)
const { colors, theme } = useTheme()
@ -320,7 +321,7 @@ const Screens: React.FC<Props> = ({ localCorrupt }) => {
}, [])
return (
<>
<IntlProvider locale={i18n.language}>
<StatusBar backgroundColor={colors.backgroundDefault} />
<NavigationContainer
ref={navigationRef}
@ -381,7 +382,7 @@ const Screens: React.FC<Props> = ({ localCorrupt }) => {
<Message />
</NavigationContainer>
</>
</IntlProvider>
)
}

View File

@ -156,6 +156,7 @@ const TimelineDefault = React.memo(
rootQueryKey={rootQueryKey}
highlighted={highlighted}
status={actualStatus}
ownAccount={ownAccount}
accts={uniqBy(
(
[actualStatus.account] as Mastodon.Account[] &

View File

@ -22,6 +22,7 @@ export interface Props {
rootQueryKey?: QueryKeyTimeline
highlighted: boolean
status: Mastodon.Status
ownAccount?: boolean
accts: Mastodon.Account['acct'][] // When replying to conversations
reblog: boolean
}
@ -31,6 +32,7 @@ const TimelineActions: React.FC<Props> = ({
rootQueryKey,
highlighted,
status,
ownAccount = false,
accts,
reblog
}) => {
@ -207,7 +209,8 @@ const TimelineActions: React.FC<Props> = ({
<Icon
name='Repeat'
color={
status.visibility === 'direct'
status.visibility === 'direct' ||
(status.visibility === 'private' && !ownAccount)
? colors.disabled
: color(status.reblogged)
}
@ -216,7 +219,10 @@ const TimelineActions: React.FC<Props> = ({
{status.reblogs_count > 0 ? (
<CustomText
style={{
color: color(status.reblogged),
color:
status.visibility === 'private' && !ownAccount
? colors.disabled
: color(status.reblogged),
fontSize: StyleConstants.Font.Size.M,
marginLeft: StyleConstants.Spacing.XS
}}
@ -297,7 +303,10 @@ const TimelineActions: React.FC<Props> = ({
style={styles.action}
onPress={onPressReblog}
children={childrenReblog}
disabled={status.visibility === 'direct'}
disabled={
status.visibility === 'direct' ||
(status.visibility === 'private' && !ownAccount)
}
/>
<Pressable

View File

@ -4,7 +4,7 @@ import { StyleConstants } from '@utils/styles/constants'
import { useTheme } from '@utils/styles/ThemeManager'
import React from 'react'
import { useTranslation } from 'react-i18next'
import { FormattedDate, FormattedRelativeTime, FormattedTime } from 'react-intl'
import { FormattedDate, FormattedRelativeTime } from 'react-intl'
export interface Props {
created_at: Mastodon.Status['created_at'] | number

View File

@ -101,7 +101,7 @@
"accessibilityHint": "用户帐户名"
}
},
"application": "发自{{application}}",
"application": "发自{{application}}",
"edited": {
"accessibilityLabel": "嘟文已编辑"
},
@ -113,7 +113,7 @@
"accessibilityLabel": "此嘟文是私信"
},
"private": {
"accessibilityLabel": "此嘟文仅关注可见"
"accessibilityLabel": "此嘟文仅关注可见"
}
}
},
@ -184,13 +184,13 @@
}
},
"deleteEdit": {
"function": "删除嘟文",
"button": "删除此条嘟文",
"function": "删除并重新编辑",
"button": "删除并重新编辑此条嘟文",
"alert": {
"title": "确认删除嘟文?",
"message": "确定要删除这条嘟文并重新编辑它吗?所有相关的转嘟和喜欢都会被清除,回复将会失去关联。",
"buttons": {
"confirm": "确认删除",
"confirm": "删除并重新编辑",
"cancel": "$t(common:buttons.cancel)"
}
}

View File

@ -51,7 +51,7 @@ const TabMePush: React.FC = () => {
} else {
Notifications.getExpoPushTokenAsync({
experienceId: '@xmflsct/tooot',
applicationId: 'com.xmflsct.tooot.app'
applicationId: 'com.xmflsct.app.tooot'
})
.then(data => setPushAvailable(!!data))
.catch(() => setPushAvailable(false))

View File

@ -1,14 +1,13 @@
import { isDevelopment } from '@utils/checkEnvironment'
import Constants from 'expo-constants'
import { isRelease } from '@utils/checkEnvironment'
import * as Sentry from 'sentry-expo'
import log from './log'
const sentry = () => {
log('log', 'Sentry', 'initializing')
Sentry.init({
dsn: Constants.manifest?.extra?.sentryDSN,
enableInExpoDevelopment: false,
debug: isDevelopment
dsn: 'https://53348b60ff844d52886e90251b3a5f41@o917354.ingest.sentry.io/6410576',
enableInExpoDevelopment: true,
debug: !isRelease
})
}

View File

@ -26,7 +26,7 @@ const pushUseConnect = ({ t, instances }: Params) => {
: (
await Notifications.getExpoPushTokenAsync({
experienceId: '@xmflsct/tooot',
applicationId: 'com.xmflsct.tooot.app'
applicationId: 'com.xmflsct.app.tooot'
})
).data

View File

@ -3,7 +3,6 @@ import apiTooot, { TOOOT_API_DOMAIN } from '@api/tooot'
import i18n from '@root/i18n/i18n'
import { RootState } from '@root/store'
import { getInstance, Instance } from '@utils/slices/instancesSlice'
import Constants from 'expo-constants'
import * as Notifications from 'expo-notifications'
import * as Random from 'expo-random'
import { Platform } from 'react-native'
@ -57,7 +56,7 @@ const pushRegister = async (
formData.append('subscription[endpoint]', endpoint)
formData.append(
'subscription[keys][p256dh]',
Constants.manifest?.extra?.toootPushKeyPublic
'BMn2PLpZrMefG981elzG6SB1EY9gU7QZwmtZ/a/J2vUeWG+zXgeskMPwHh4T/bxsD4l7/8QT94F57CbZqYRRfJo='
)
formData.append('subscription[keys][auth]', auth)
Object.keys(alerts).map(key =>

View File

@ -18,7 +18,7 @@ export const updateInstancePush = createAsyncThunk(
: (
await Notifications.getExpoPushTokenAsync({
experienceId: '@xmflsct/tooot',
applicationId: 'com.xmflsct.tooot.app'
applicationId: 'com.xmflsct.app.tooot'
})
).data

View File

@ -25,7 +25,7 @@ export const updateInstancePushDecode = createAsyncThunk(
: (
await Notifications.getExpoPushTokenAsync({
experienceId: '@xmflsct/tooot',
applicationId: 'com.xmflsct.tooot.app'
applicationId: 'com.xmflsct.app.tooot'
})
).data