1
0
mirror of https://github.com/tooot-app/app synced 2025-06-05 22:19:13 +02:00

Merge pull request #405 from tooot-app/main

Release v4.3.4
This commit is contained in:
xmflsct
2022-10-11 23:23:41 +02:00
committed by GitHub
23 changed files with 260 additions and 343 deletions

View File

@ -35,7 +35,6 @@ private_lane :build_ios do
build_ios_app(
export_method: "app-store",
include_symbols: true,
include_bitcode: true,
output_directory: BUILD_DIRECTORY,
silent: false
)

View File

@ -20,11 +20,11 @@ PODS:
- EXFirebaseCore (5.2.0):
- ExpoModulesCore
- Firebase/Core (= 9.5.0)
- EXFont (10.2.0):
- EXFont (10.2.1):
- ExpoModulesCore
- EXNotifications (0.16.1):
- ExpoModulesCore
- Expo (46.0.10):
- Expo (46.0.15):
- ExpoModulesCore
- ExpoCrypto (11.0.0):
- ExpoModulesCore
@ -34,7 +34,7 @@ PODS:
- ExpoModulesCore
- ExpoLocalization (13.1.0):
- ExpoModulesCore
- ExpoModulesCore (0.11.5):
- ExpoModulesCore (0.11.7):
- React-Core
- ReactCommon/turbomodule/core
- ExpoRandom (12.3.0):
@ -408,7 +408,7 @@ PODS:
- React-Core
- react-native-blurhash (1.1.10):
- React-Core
- react-native-cameraroll (4.1.2):
- react-native-cameraroll (5.0.4):
- React-Core
- react-native-context-menu-view (1.5.4):
- React
@ -416,14 +416,14 @@ PODS:
- React-Core
- react-native-language-detection (0.1.0):
- React
- react-native-netinfo (9.3.2):
- react-native-netinfo (9.3.4):
- React-Core
- react-native-pager-view (6.0.0):
- react-native-pager-view (6.0.1):
- React-Core
- react-native-paste-input (0.5.0):
- react-native-paste-input (0.5.1):
- React-Core
- Swime (= 3.0.6)
- react-native-safe-area-context (4.3.4):
- react-native-safe-area-context (4.4.1):
- RCT-Folly
- RCTRequired
- RCTTypeSafety
@ -536,7 +536,7 @@ PODS:
- React-Core
- SDWebImage (~> 5.13.4)
- SDWebImageWebPCoder (~> 0.9.0)
- RNGestureHandler (2.6.2):
- RNGestureHandler (2.7.1):
- React-Core
- RNReanimated (2.10.0):
- DoubleConversion
@ -565,12 +565,12 @@ PODS:
- React-RCTText
- ReactCommon/turbomodule/core
- Yoga
- RNScreens (3.17.0):
- RNScreens (3.18.1):
- React-Core
- React-RCTImage
- RNSentry (4.5.0):
- RNSentry (4.6.1):
- React-Core
- Sentry (= 7.25.1)
- Sentry (= 7.27.1)
- RNShareMenu (6.0.0):
- React
- RNSVG (13.0.0):
@ -581,9 +581,9 @@ PODS:
- SDWebImageWebPCoder (0.9.1):
- libwebp (~> 1.0)
- SDWebImage/Core (~> 5.13)
- Sentry (7.25.1):
- Sentry/Core (= 7.25.1)
- Sentry/Core (7.25.1)
- Sentry (7.27.1):
- Sentry/Core (= 7.27.1)
- Sentry/Core (7.27.1)
- Swime (3.0.6)
- Yoga (1.14.0)
@ -638,7 +638,7 @@ DEPENDENCIES:
- React-logger (from `../node_modules/react-native/ReactCommon/logger`)
- "react-native-blur (from `../node_modules/@react-native-community/blur`)"
- react-native-blurhash (from `../node_modules/react-native-blurhash`)
- "react-native-cameraroll (from `../node_modules/@react-native-community/cameraroll`)"
- "react-native-cameraroll (from `../node_modules/@react-native-camera-roll/camera-roll`)"
- react-native-context-menu-view (from `../node_modules/react-native-context-menu-view`)
- react-native-image-picker (from `../node_modules/react-native-image-picker`)
- react-native-language-detection (from `../node_modules/react-native-language-detection`)
@ -783,7 +783,7 @@ EXTERNAL SOURCES:
react-native-blurhash:
:path: "../node_modules/react-native-blurhash"
react-native-cameraroll:
:path: "../node_modules/@react-native-community/cameraroll"
:path: "../node_modules/@react-native-camera-roll/camera-roll"
react-native-context-menu-view:
:path: "../node_modules/react-native-context-menu-view"
react-native-image-picker:
@ -855,14 +855,14 @@ SPEC CHECKSUMS:
EXFileSystem: 927e0a8885aa9c49e50fc38eaba2c2389f2f1019
EXFirebaseAnalytics: 2e478758e153b908b67477dff7adf99ffbf37a1b
EXFirebaseCore: cb1e6afad20c4c32a4966432c78ebfff29d8db6b
EXFont: a5d80bd9b3452b2d5abbce2487da89b0150e6487
EXFont: 06df627203afcb8a3b3152ec06eb2f11f46f0cff
EXNotifications: 9a2aa201deb19dfe1dbe0e370eeb2922de0d2422
Expo: fcdb32274e2ca9c7638d3b21b30fb665c6869219
Expo: 7e821e708a35d2720ef6baa658e224dd91c4821e
ExpoCrypto: e534314db0e1a17ae12b5140d529bd0c5efcbc6a
ExpoHaptics: efe9e68e9dfe0d15c183c0c70a25f3874124ab9e
ExpoKeepAwake: 0e8f18142e71bbf2c7f6aa66ebed249ba1420320
ExpoLocalization: 63204f4b9d4f653469d266332ceaa6c6ac8a305d
ExpoModulesCore: 5a973701f4400d70254bc836305228731c829010
ExpoModulesCore: 2d60ec04c49641afb55fee3faac86fb108c68fe0
ExpoRandom: f9f1faa299a40733867f344d6b7bfa2d1f4ab04d
ExpoWebBrowser: 5804ac42a8269d0e534bc4461993005f72535649
EXScreenCapture: 23de056fdb02edd1fb8f147b0fd198c6d5cada3d
@ -905,14 +905,14 @@ SPEC CHECKSUMS:
React-logger: ebb4d31bbbe4f1a8a1a9b658d7429210b8f68160
react-native-blur: 3e9c8e8e9f7d17fa1b94e1a0ae9fd816675f5382
react-native-blurhash: add4df9a937b4e021a24bc67a0714f13e0bd40b7
react-native-cameraroll: 2957f2bce63ae896a848fbe0d5352c1bd4d20866
react-native-cameraroll: 38b40d9033e4077b6c603f92f95c6d05fa7907df
react-native-context-menu-view: b0beca02aad4bd9f9d7d932bf437e0a03baa69ef
react-native-image-picker: 4bc9ed38c8be255b515d8c88babbaf74973f91a8
react-native-language-detection: 0e43195ad014974f1b7a31b64820eff34a243f2d
react-native-netinfo: 687904c63baa828543bb6e94c265977e0ac70f14
react-native-pager-view: e76d64a5114a152e942caa09136e4e250709378c
react-native-paste-input: 3037f113267c367e863790bcfd57cdb3ace3cad6
react-native-safe-area-context: dfe5aa13bee37a0c7e8059d14f72ffc076d120e9
react-native-netinfo: 6ac9bcc7c88dc51717bda3484eb99093acb755e0
react-native-pager-view: 3051346698a0ba0c4e13e40097cc11b00ee03cca
react-native-paste-input: 183ad7dc224e192719616f4258dde5b548627d08
react-native-safe-area-context: 99b24a0c5acd0d5dcac2b1a7f18c49ea317be99a
react-native-segmented-control: 65df6cd0619b780b3843d574a72d4c7cec396097
React-perflogger: 1fb1ad5333b43a5137afd7608695f7a42c5efd27
React-RCTActionSheet: a435bd67689433575a1e5d7614b021d2c17f0726
@ -929,15 +929,15 @@ SPEC CHECKSUMS:
RNCAsyncStorage: 0c357f3156fcb16c8589ede67cc036330b6698ca
RNCClipboard: 2834e1c4af68697089cdd455ee4a4cdd198fa7dd
RNFastImage: e6267e27581b81918ebef6432c94c20718ec3b91
RNGestureHandler: 4defbd70b2faf3d6761b82fa7880285241762cb0
RNGestureHandler: b7a872907ee289ada902127f2554fa1d2c076122
RNReanimated: 7faa787e8d4493fbc95fab2ad331fa7625828cfa
RNScreens: 0df01424e9e0ed7827200d6ed1087ddd06c493f9
RNSentry: a034d0e81e3d3c04b770dd2df953fe634d372d22
RNScreens: 1b7bb502dac62cc4cf01b94bea591c8da275132f
RNSentry: f8591057d48d4f6d64196a76cbca67895667b033
RNShareMenu: cb9dac548c8bf147d06f0bf07296ad51ea9f5fc3
RNSVG: 42a0c731b11179ebbd27a3eeeafa7201ebb476ff
SDWebImage: e5cc87bf736e60f49592f307bdf9e157189298a3
SDWebImageWebPCoder: 18503de6621dd2c420d680e33d46bf8e1d5169b0
Sentry: dd29c18c32b0af9269949f079cf631d581ca76ca
Sentry: bc644307e2eb6a4c9c55cf117a80b895bb2a25a7
Swime: d7b2c277503b6cea317774aedc2dce05613f8b0b
Yoga: 75bf4b0131cfb46a659cd0c13309b79a6fcff66d

View File

@ -0,0 +1,2 @@
"NSPhotoLibraryAddUsageDescription" = "tooot が画像をカメラロールに保存できるようにします";
"NSPhotoLibraryUsageDescription" = "tooot が画像をカメラロールに保存できるようにします";

View File

@ -81,6 +81,7 @@
E69EBACC28DF28420057EDEC /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/InfoPlist.strings; sourceTree = "<group>"; };
E69EBACD28DF284D0057EDEC /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/InfoPlist.strings"; sourceTree = "<group>"; };
E69EBACE28DF28560057EDEC /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = vi.lproj/InfoPlist.strings; sourceTree = "<group>"; };
E6C8B26628F5F9FC0062CF2E /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/InfoPlist.strings; sourceTree = "<group>"; };
ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
ED2971642150620600B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.0.sdk/System/Library/Frameworks/JavaScriptCore.framework; sourceTree = DEVELOPER_DIR; };
/* End PBXFileReference section */
@ -287,6 +288,7 @@
ko,
"pt-BR",
vi,
ja,
);
mainGroup = 83CBB9F61A601CBA00E9B192;
productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */;
@ -338,7 +340,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "set -e\nexport SENTRY_PROPERTIES=sentry.properties\nexport EXTRA_PACKAGER_ARGS=\"--sourcemap-output $DERIVED_FILE_DIR/main.jsbundle.map\"\nset -e\n\nWITH_ENVIRONMENT=\"../node_modules/react-native/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"../node_modules/react-native/scripts/react-native-xcode.sh\"\nSENTRY_CLI_PATH=\"../node_modules/@sentry/cli/bin/sentry-cli\"\n/bin/sh -c \"$WITH_ENVIRONMENT \\\"$SENTRY_CLI_PATH react-native xcode $REACT_NATIVE_XCODE\\\"\"";
shellScript = "set -e\nexport SENTRY_PROPERTIES=sentry.properties\nexport EXTRA_PACKAGER_ARGS=\"--sourcemap-output $DERIVED_FILE_DIR/main.jsbundle.map\"\nset -e\n\nWITH_ENVIRONMENT=\"../node_modules/react-native/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"../node_modules/react-native/scripts/react-native-xcode.sh\"\nSENTRY_CLI_PATH=\"../node_modules/@sentry/cli/bin/sentry-cli\"\n/bin/sh -c \"$WITH_ENVIRONMENT \\\"$SENTRY_CLI_PATH react-native xcode $REACT_NATIVE_XCODE\\\"\"\n";
};
08A4A3CD28434E44B6B9DE2E /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
@ -511,6 +513,7 @@
E69EBACC28DF28420057EDEC /* ko */,
E69EBACD28DF284D0057EDEC /* pt-BR */,
E69EBACE28DF28560057EDEC /* vi */,
E6C8B26628F5F9FC0062CF2E /* ja */,
);
name = InfoPlist.strings;
sourceTree = "<group>";

View File

@ -1,6 +1,6 @@
{
"name": "tooot",
"version": "4.3.3",
"version": "4.3.4",
"description": "tooot app for Mastodon",
"author": "xmflsct <me@xmflsct.com>",
"license": "GPL-3.0-or-later",
@ -18,30 +18,30 @@
"postinstall": "patch-package"
},
"dependencies": {
"@expo/react-native-action-sheet": "^3.13.0",
"@expo/react-native-action-sheet": "^3.14.0",
"@formatjs/intl-datetimeformat": "^6.2.0",
"@formatjs/intl-getcanonicallocales": "^2.0.4",
"@formatjs/intl-locale": "^3.0.6",
"@formatjs/intl-numberformat": "^8.1.3",
"@formatjs/intl-pluralrules": "^5.1.3",
"@formatjs/intl-relativetimeformat": "^11.1.3",
"@mattermost/react-native-paste-input": "^0.5.0",
"@mattermost/react-native-paste-input": "^0.5.1",
"@neverdull-agency/expo-unlimited-secure-store": "^1.0.10",
"@react-native-async-storage/async-storage": "^1.17.10",
"@react-native-camera-roll/camera-roll": "^5.0.4",
"@react-native-clipboard/clipboard": "^1.11.1",
"@react-native-community/blur": "^4.2.0",
"@react-native-community/cameraroll": "^4.1.2",
"@react-native-community/netinfo": "^9.3.2",
"@react-native-community/netinfo": "^9.3.4",
"@react-native-community/segmented-control": "^2.2.2",
"@react-navigation/bottom-tabs": "^6.4.0",
"@react-navigation/native": "^6.0.13",
"@react-navigation/native-stack": "^6.9.0",
"@react-navigation/stack": "^6.3.1",
"@reduxjs/toolkit": "^1.8.5",
"@sentry/react-native": "^4.5.0",
"@react-navigation/native-stack": "^6.9.1",
"@react-navigation/stack": "^6.3.2",
"@reduxjs/toolkit": "^1.8.6",
"@sentry/react-native": "^4.6.1",
"@sharcoux/slider": "^6.0.3",
"axios": "^0.27.2",
"expo": "^46.0.10",
"expo": "^46.0.15",
"expo-auth-session": "^3.7.1",
"expo-av": "^12.0.4",
"expo-constants": "^13.2.4",
@ -59,7 +59,7 @@
"expo-store-review": "^5.3.0",
"expo-video-thumbnails": "^6.4.0",
"expo-web-browser": "^11.0.0",
"i18next": "^21.9.2",
"i18next": "^21.10.0",
"li": "^1.3.0",
"linkify-it": "^4.0.1",
"lodash": "^4.17.21",
@ -75,24 +75,23 @@
"react-native-fast-image": "^8.6.1",
"react-native-feather": "^1.1.2",
"react-native-flash-message": "^0.3.1",
"react-native-gesture-handler": "^2.6.2",
"react-native-gesture-handler": "^2.7.1",
"react-native-htmlview": "^0.16.0",
"react-native-image-picker": "^4.10.0",
"react-native-language-detection": "^0.1.0",
"react-native-pager-view": "^6.0.0",
"react-native-pager-view": "^6.0.1",
"react-native-reanimated": "^2.10.0",
"react-native-reanimated-zoom": "^0.3.1",
"react-native-safe-area-context": "^4.3.4",
"react-native-screens": "^3.17.0",
"react-native-safe-area-context": "^4.4.1",
"react-native-screens": "^3.18.1",
"react-native-share-menu": "^6.0.0",
"react-native-svg": "13.0.0",
"react-native-swipe-list-view": "^3.2.9",
"react-native-tab-view": "^3.1.1",
"react-native-tab-view": "^3.3.0",
"react-query": "^3.39.2",
"react-redux": "^8.0.4",
"redux-persist": "^6.0.0",
"rn-placeholder": "^3.0.3",
"tslib": "^2.4.0",
"valid-url": "^1.0.9"
},
"devDependencies": {
@ -114,10 +113,10 @@
"babel-plugin-module-resolver": "^4.1.0",
"babel-plugin-transform-remove-console": "^6.9.4",
"chalk": "^4.1.2",
"dotenv": "^16.0.2",
"dotenv": "^16.0.3",
"patch-package": "^6.4.7",
"postinstall-postinstall": "^2.1.0",
"react-native-clean-project": "^4.0.1",
"typescript": "^4.8.3"
"typescript": "^4.8.4"
}
}

View File

@ -14,6 +14,7 @@ import * as Sentry from '@sentry/react-native'
import AccessibilityManager from '@utils/accessibility/AccessibilityManager'
import { changeLanguage, getSettingsLanguage } from '@utils/slices/settingsSlice'
import ThemeManager from '@utils/styles/ThemeManager'
import * as Localization from 'expo-localization'
import * as SplashScreen from 'expo-splash-screen'
import React, { useCallback, useEffect, useState } from 'react'
import { LogBox, Platform } from 'react-native'
@ -81,9 +82,15 @@ const App: React.FC = () => {
log('log', 'App', 'bootstrapped')
if (bootstrapped) {
log('log', 'App', 'loading actual app :)')
const language = getSettingsLanguage(store.getState())
log('log', 'App', `Locale: ${Localization.locale}`)
const language =
Platform.OS === 'ios'
? Localization.locale
: getSettingsLanguage(store.getState())
if (!language) {
store.dispatch(changeLanguage('en'))
if (Platform.OS !== 'ios') {
store.dispatch(changeLanguage('en'))
}
i18n.changeLanguage('en')
} else {
i18n.changeLanguage(language)

View File

@ -76,9 +76,7 @@ const renderNode = ({
</CustomText>
)
} else if (classes.includes('mention') && mentions) {
const accountIndex = mentions.findIndex(
mention => mention.url === href
)
const accountIndex = mentions.findIndex(mention => mention.url === href)
const differentAccount = routeParams?.account
? routeParams.account.id !== mentions[accountIndex]?.id
: true
@ -86,8 +84,7 @@ const renderNode = ({
<CustomText
key={index}
style={{
color:
accountIndex !== -1 ? colors.blue : colors.primaryDefault,
color: accountIndex !== -1 ? colors.blue : colors.primaryDefault,
fontSize: adaptedFontsize,
lineHeight: adaptedLineheight
}}
@ -109,10 +106,8 @@ const renderNode = ({
} else {
const domain = href?.split(new RegExp(/:\/\/(.[^\/]+)/))
// Need example here
const content =
node.children && node.children[0] && node.children[0].data
const shouldBeTag =
tags && tags.filter(tag => `#${tag.name}` === content).length > 0
const content = node.children && node.children[0] && node.children[0].data
const shouldBeTag = tags && tags.filter(tag => `#${tag.name}` === content).length > 0
return (
<CustomText
key={index}
@ -135,8 +130,7 @@ const renderNode = ({
}
}}
>
{(content && content !== href && content) ||
(showFullLink ? href : domain[1])}
{(content && content !== href && content) || (showFullLink ? href : domain[1])}
{!shouldBeTag ? (
<Icon
color={colors.blue}
@ -205,8 +199,7 @@ const ParseHTML = React.memo(
adaptiveSize ? adaptiveFontsize : 0
)
const navigation =
useNavigation<StackNavigationProp<TabLocalStackParamList>>()
const navigation = useNavigation<StackNavigationProp<TabLocalStackParamList>>()
const route = useRoute()
const { colors, theme } = useTheme()
const { t, i18n } = useTranslation('componentParse')
@ -254,7 +247,7 @@ const ParseHTML = React.memo(
return (
<View style={{ overflow: 'hidden' }}>
{typeof totalLines === 'number' ? (
{typeof totalLines === 'number' || numberOfLines === 1 ? (
<Pressable
accessibilityLabel={t('HTML.accessibilityHint')}
onPress={() => {
@ -296,10 +289,7 @@ const ParseHTML = React.memo(
<CustomText
children={children}
onTextLayout={({ nativeEvent }) => {
if (
numberOfLines === 1 ||
nativeEvent.lines.length >= numberOfLines + 5
) {
if (numberOfLines === 1 || nativeEvent.lines.length >= numberOfLines + 5) {
setTotalLines(nativeEvent.lines.length)
}
}}
@ -307,11 +297,7 @@ const ParseHTML = React.memo(
height: numberOfLines === 1 && !expanded ? 0 : undefined
}}
numberOfLines={
typeof totalLines === 'number'
? expanded
? 999
: numberOfLines
: undefined
typeof totalLines === 'number' ? (expanded ? 999 : numberOfLines) : undefined
}
selectable={selectable}
/>

View File

@ -7,6 +7,7 @@ import { Blurhash } from 'react-native-blurhash'
import attachmentAspectRatio from './aspectRatio'
import analytics from '@components/analytics'
import AttachmentAltText from './AltText'
import { Platform } from 'expo-modules-core'
export interface Props {
total: number
@ -27,6 +28,7 @@ const AttachmentVideo: React.FC<Props> = ({
const [videoLoading, setVideoLoading] = useState(false)
const [videoLoaded, setVideoLoaded] = useState(false)
const [videoPosition, setVideoPosition] = useState<number>(0)
const [videoResizeMode, setVideoResizeMode] = useState<ResizeMode>(ResizeMode.COVER)
const playOnPress = useCallback(async () => {
analytics('timeline_shared_attachment_video_length', {
length: video.meta?.length
@ -39,6 +41,7 @@ const AttachmentVideo: React.FC<Props> = ({
if (!videoLoaded) {
await videoPlayer.current?.loadAsync({ uri: video.url })
}
Platform.OS === 'android' && setVideoResizeMode(ResizeMode.CONTAIN)
await videoPlayer.current?.setPositionAsync(videoPosition)
await videoPlayer.current?.presentFullscreenPlayer()
videoPlayer.current?.playAsync()
@ -62,11 +65,7 @@ const AttachmentVideo: React.FC<Props> = ({
const _handleAppStateChange = async (nextAppState: AppStateStatus) => {
if (appState.current.match(/active/) && nextAppState.match(/inactive/)) {
await videoPlayer.current?.pauseAsync()
} else if (
gifv &&
appState.current.match(/background/) &&
nextAppState.match(/active/)
) {
} else if (gifv && appState.current.match(/background/) && nextAppState.match(/active/)) {
await videoPlayer.current?.setIsMutedAsync(true)
await videoPlayer.current?.playAsync()
}
@ -99,7 +98,7 @@ const AttachmentVideo: React.FC<Props> = ({
opacity: sensitiveShown ? 0 : 1
}}
usePoster
resizeMode={ResizeMode.COVER}
resizeMode={videoResizeMode}
{...(gifv
? {
shouldPlay: true,
@ -113,12 +112,9 @@ const AttachmentVideo: React.FC<Props> = ({
})}
useNativeControls={false}
onFullscreenUpdate={async event => {
if (
event.fullscreenUpdate === VideoFullscreenUpdate.PLAYER_DID_DISMISS
) {
if (gifv) {
await videoPlayer.current?.pauseAsync()
} else {
if (event.fullscreenUpdate === VideoFullscreenUpdate.PLAYER_DID_DISMISS) {
Platform.OS === 'android' && setVideoResizeMode(ResizeMode.COVER)
if (!gifv) {
await videoPlayer.current?.pauseAsync()
}
}
@ -156,10 +152,7 @@ const AttachmentVideo: React.FC<Props> = ({
loading={videoLoading}
/>
) : null}
<AttachmentAltText
sensitiveShown={sensitiveShown}
text={video.description}
/>
<AttachmentAltText sensitiveShown={sensitiveShown} text={video.description} />
</Pressable>
</View>
)

View File

@ -9,18 +9,12 @@ export interface Props {
mentions?: Mastodon.Status['mentions']
tags?: Mastodon.Status['tags']
}
numberOfLines?: number
highlighted?: boolean
disableDetails?: boolean
}
const TimelineContent = React.memo(
({
status,
numberOfLines,
highlighted = false,
disableDetails = false
}: Props) => {
({ status, highlighted = false, disableDetails = false }: Props) => {
const { t } = useTranslation('componentTimeline')
const instanceAccount = useSelector(getInstanceAccount, () => true)
@ -46,9 +40,7 @@ const TimelineContent = React.memo(
emojis={status.emojis}
mentions={status.mentions}
tags={status.tags}
numberOfLines={
instanceAccount.preferences['reading:expand:spoilers'] ? 999 : 1
}
numberOfLines={instanceAccount.preferences['reading:expand:spoilers'] ? 999 : 1}
expandHint={t('shared.content.expandHint')}
highlighted={highlighted}
disableDetails={disableDetails}
@ -62,7 +54,7 @@ const TimelineContent = React.memo(
emojis={status.emojis}
mentions={status.mentions}
tags={status.tags}
numberOfLines={highlighted ? 999 : numberOfLines}
numberOfLines={highlighted ? 999 : undefined}
disableDetails={disableDetails}
/>
)}

View File

@ -93,6 +93,7 @@ const mediaSelector = async ({
showActionSheetWithOptions(
{
title: i18next.t('componentMediaSelector:title'),
message: i18next.t('componentMediaSelector:message'),
options: options(),
cancelButtonIndex: mediaType ? 1 : 2
},

View File

@ -1,18 +1,10 @@
{
"title": "Datenquelle auswählen",
"message": "",
"options": {
"image": "",
"image_max": "",
"video": "",
"video_max": ""
},
"library": {
"alert": {
"title": "Kein Zugriff",
"message": "Für den Upload ist eine Zugriffsgenehmigung erforderlich",
"buttons": {
"settings": "Einstellungen bestätigen"
}
}
}
}

View File

@ -1,18 +1,10 @@
{
"title": "Select media source",
"message": "Media EXIF data are not uploaded",
"options": {
"image": "Upload photos",
"image_max": "Upload photos (max {{max}})",
"video": "Upload video",
"video_max": "Upload video (max {{max}})"
},
"library": {
"alert": {
"title": "No permission",
"message": "Require photo library read permission to upload",
"buttons": {
"settings": "Update setting"
}
}
}
}

View File

@ -1,18 +1,10 @@
{
"title": "Seleziona origine media",
"message": "",
"options": {
"image": "Carica foto",
"image_max": "Carica foto (massimo {{max}})",
"video": "Carica video",
"video_max": "Carica video (max {{max}})"
},
"library": {
"alert": {
"title": "Permesso non concesso",
"message": "È richiesto l'accesso ai file del dispositivo per il caricamento dalla libreria",
"buttons": {
"settings": "Correggi impostazioni"
}
}
}
}

View File

@ -1,18 +1,10 @@
{
"title": "メディアソースを選択",
"message": "",
"options": {
"image": "写真をアップロード",
"image_max": "写真をアップロード (最大{{max}}枚)",
"video": "動画をアップロード",
"video_max": "動画をアップロード (最大{{max}}本)"
},
"library": {
"alert": {
"title": "権限がありません",
"message": "アップロードするにはフォトライブラリの読み取り許可が必要です",
"buttons": {
"settings": "設定を更新する"
}
}
}
}

View File

@ -1,18 +1,10 @@
{
"title": "미디어 소스 선택",
"message": "",
"options": {
"image": "",
"image_max": "",
"video": "",
"video_max": ""
},
"library": {
"alert": {
"title": "권한 없음",
"message": "업로드를 위해 사진 라이브러리 권한이 필요해요",
"buttons": {
"settings": "설정 업데이트"
}
}
}
}

View File

@ -1,18 +1,10 @@
{
"title": "Selecionar fonte de mídia",
"message": "",
"options": {
"image": "Enviar fotos",
"image_max": "Carregar fotos (máx. {{max}})",
"video": "Enviar vídeo",
"video_max": "Carregar vídeo (máx. {{max}})"
},
"library": {
"alert": {
"title": "Sem permissão",
"message": "Exigir permissão de leitura da biblioteca de fotos para fazer upload",
"buttons": {
"settings": "Atualizar configurações"
}
}
}
}

View File

@ -1,18 +1,10 @@
{
"title": "Chọn nguồn",
"message": "Chưa tải lên EXIF hình ảnh",
"options": {
"image": "Tải ảnh lên",
"image_max": "Tải ảnh lên (tối đa {{max}})",
"video": "Tải video lên",
"video_max": "Tải video lên (tối đa {{max}})"
},
"library": {
"alert": {
"title": "Chưa được cấp quyền",
"message": "Bạn cần cấp quyền đọc thư viện ảnh trước",
"buttons": {
"settings": "Cài đặt cập nhật"
}
}
}
}

View File

@ -1,18 +1,10 @@
{
"title": "选择媒体",
"message": "媒体EXIF数据不被上传",
"options": {
"image": "上传图片",
"image_max": "上传照片(上限 {{max}}",
"video": "上传视频",
"video_max": "上传视频(上限 {{max}}"
},
"library": {
"alert": {
"title": "无权限",
"message": "需要读取相册权限才能上传附件",
"buttons": {
"settings": "去更新设置"
}
}
}
}

View File

@ -1,18 +1,10 @@
{
"title": "選擇媒體來源",
"message": "",
"options": {
"image": "",
"image_max": "",
"video": "",
"video_max": ""
},
"library": {
"alert": {
"title": "權限不足",
"message": "上傳照片需要讀取的權限",
"buttons": {
"settings": "更新設定"
}
}
}
}

View File

@ -1,6 +1,6 @@
import haptics from '@components/haptics'
import { displayMessage } from '@components/Message'
import CameraRoll from '@react-native-community/cameraroll'
import { CameraRoll } from '@react-native-camera-roll/camera-roll'
import { RootStackParamList } from '@utils/navigation/navigators'
import { Theme } from '@utils/styles/themes'
import * as FileSystem from 'expo-file-system'

View File

@ -9,6 +9,7 @@ import { QueryKeyTimeline } from '@utils/queryHooks/timeline'
import layoutAnimation from '@utils/styles/layoutAnimation'
import React, { useEffect, useState } from 'react'
import { useTranslation } from 'react-i18next'
import { Platform } from 'react-native'
import ContextMenu from 'react-native-context-menu-view'
import TabSharedRoot from './Shared/Root'
@ -33,7 +34,7 @@ const TabLocal = React.memo(
headerTitle: () => (
<ContextMenu
dropdownMenuMode
style={{ maxWidth: '80%' }}
style={{ maxWidth: '80%', flex: Platform.OS === 'android' ? 1 : undefined }}
actions={
lists?.length
? [

View File

@ -16,8 +16,10 @@ import {
getSettingsStaticEmoji,
changeStaticEmoji
} from '@utils/slices/settingsSlice'
import * as Localization from 'expo-localization'
import React from 'react'
import { useTranslation } from 'react-i18next'
import { Linking, Platform } from 'react-native'
import { useSelector } from 'react-redux'
import { mapFontsizeToName } from '../SettingsFontsize'
@ -37,18 +39,20 @@ const SettingsApp: React.FC = () => {
<MenuContainer>
<MenuRow
title={t('me.settings.fontsize.heading')}
content={t(
`me.settings.fontsize.content.${mapFontsizeToName(settingsFontsize)}`
)}
content={t(`me.settings.fontsize.content.${mapFontsizeToName(settingsFontsize)}`)}
iconBack='ChevronRight'
onPress={() => navigation.navigate('Tab-Me-Settings-Fontsize')}
/>
<MenuRow
title={t('me.settings.language.heading')}
// @ts-ignore
content={LOCALES[i18n.language]}
content={LOCALES[Platform.OS === 'ios' ? Localization.locale : i18n.language]}
iconBack='ChevronRight'
onPress={() => navigation.navigate('Tab-Me-Settings-Language')}
onPress={() =>
Platform.OS === 'ios'
? Linking.openSettings()
: navigation.navigate('Tab-Me-Settings-Language')
}
/>
<MenuRow
title={t('me.settings.theme.heading')}

308
yarn.lock
View File

@ -1180,19 +1180,19 @@
mv "~2"
safe-json-stringify "~1"
"@expo/cli@0.2.11":
version "0.2.11"
resolved "https://registry.yarnpkg.com/@expo/cli/-/cli-0.2.11.tgz#25d8db8e46c6f02ef3edc189fdb6e29c922dd377"
integrity sha512-TIlylp3nghiEdlVliZRcBg8Yb++tnU92HinuQQZznVGFXFCoqJ210SPUJS1j3rxxltt8NhIJjL9OTO7PYRqnsQ==
"@expo/cli@0.3.1":
version "0.3.1"
resolved "https://registry.yarnpkg.com/@expo/cli/-/cli-0.3.1.tgz#827cbfa4e538243962217d684e924f55b5bafaa7"
integrity sha512-amdsNf5quVs9ZbO+q35sdtpWJvvQz5pqtl8ZOv5jqRriIp1G9zcOFTDG0TnGxANQ0F2b5GcU4fn7pxAzRLDHmQ==
dependencies:
"@babel/runtime" "^7.14.0"
"@expo/code-signing-certificates" "^0.0.2"
"@expo/config" "~7.0.1"
"@expo/config-plugins" "~5.0.1"
"@expo/dev-server" "~0.1.119"
"@expo/dev-server" "~0.1.120"
"@expo/devcert" "^1.0.0"
"@expo/json-file" "^8.2.35"
"@expo/metro-config" "~0.3.18"
"@expo/metro-config" "~0.4.0"
"@expo/osascript" "^2.0.31"
"@expo/package-manager" "~0.0.53"
"@expo/plist" "^0.0.18"
@ -1311,13 +1311,13 @@
xcode "^3.0.0"
xml-js "^1.6.11"
"@expo/dev-server@~0.1.119":
version "0.1.119"
resolved "https://registry.yarnpkg.com/@expo/dev-server/-/dev-server-0.1.119.tgz#d85036d8ddfd5668fd50ef373616b55580dc7670"
integrity sha512-DcVnj4/YA+b+Ljsz2qffHHN5LbouXFKeE9ER0Yjq5vIb2moV1q3U6LezndFLCf42Uev7C2vSa8YCcP3WOpxuMw==
"@expo/dev-server@~0.1.120":
version "0.1.120"
resolved "https://registry.yarnpkg.com/@expo/dev-server/-/dev-server-0.1.120.tgz#0c7aff4e29d98298214129127f5df951cb7b81dd"
integrity sha512-x5/jCv0EOpz6FyehXpI5bgDQTVsGZYvgISkAw7n60RhtG+aid6N2CCR9SDMCH70XaUpFnfTW9qvderpCEj7Puw==
dependencies:
"@expo/bunyan" "4.0.0"
"@expo/metro-config" "~0.3.18"
"@expo/metro-config" "~0.4.0"
"@expo/osascript" "2.0.33"
body-parser "1.19.0"
chalk "^4.0.0"
@ -1392,10 +1392,10 @@
json5 "^1.0.1"
write-file-atomic "^2.3.0"
"@expo/metro-config@~0.3.18":
version "0.3.22"
resolved "https://registry.yarnpkg.com/@expo/metro-config/-/metro-config-0.3.22.tgz#fa4a0729ec8ecbc9c9fb79c63ecc66a299505c82"
integrity sha512-R81sLbaeUBjN8IXcxiVx7GcpSj8z7szILl1b5yJDb38WdIFwxhrseA5wXaTT1yMhI+59w6n99T2qtFV2yD5qYA==
"@expo/metro-config@~0.4.0":
version "0.4.0"
resolved "https://registry.yarnpkg.com/@expo/metro-config/-/metro-config-0.4.0.tgz#1b446c94020dce595aa9fc7610d92601a098b753"
integrity sha512-QhOiotuzklalLbbsTMXJ5v4q4jffQ5xXhy1zsosgc2DL/ZzUr/Yhm3xUcOGnPQ2x7UyeY9Tl3njPHBOJJe7CSA==
dependencies:
"@expo/config" "7.0.1"
"@expo/json-file" "8.2.36"
@ -1455,10 +1455,10 @@
semver "7.3.2"
xml2js "0.4.23"
"@expo/react-native-action-sheet@^3.13.0":
version "3.13.0"
resolved "https://registry.yarnpkg.com/@expo/react-native-action-sheet/-/react-native-action-sheet-3.13.0.tgz#b4cb08440c54b5ec0b3e429cac396422da1d9442"
integrity sha512-EFLK35TBsM28W43SY54lISAIvjEm9584LIRWXsYaf5sgmfF65oWAOQP4UyKxMPLYGoaKjnCAJVFNtZUK80ss9A==
"@expo/react-native-action-sheet@^3.14.0":
version "3.14.0"
resolved "https://registry.yarnpkg.com/@expo/react-native-action-sheet/-/react-native-action-sheet-3.14.0.tgz#484781425fb31c2a76c4344cdfdbb3609509846e"
integrity sha512-JvABIv68dyxbdXg965+K7OYDJdlJftHesqmaWGv1KF4bobbwKli4NK/zQKSltlfiI+cLxONwzBlvmx+AjlYGng==
dependencies:
"@types/hoist-non-react-statics" "^3.3.1"
hoist-non-react-statics "^3.3.0"
@ -1728,10 +1728,10 @@
"@jridgewell/resolve-uri" "^3.0.3"
"@jridgewell/sourcemap-codec" "^1.4.10"
"@mattermost/react-native-paste-input@^0.5.0":
version "0.5.0"
resolved "https://registry.yarnpkg.com/@mattermost/react-native-paste-input/-/react-native-paste-input-0.5.0.tgz#2970c410a52e16db5cecebfd33f3a39d99a4a428"
integrity sha512-l1DhHALj06ZKfk2Y4B6ZxU+ZrQEa35kBeCpIYaMLwaKg5pYODFtpNbCanXhLf3HWp52y8lXWH/3tetWoJyWbPg==
"@mattermost/react-native-paste-input@^0.5.1":
version "0.5.1"
resolved "https://registry.yarnpkg.com/@mattermost/react-native-paste-input/-/react-native-paste-input-0.5.1.tgz#2d24b2d4a9fdb0aaefda6df8d9c64380ac731dc1"
integrity sha512-2ZXohoSJbLyItzvdT3dyjlC7tvDBEXqvzxhKUHs4OnIslYZzHso9gfqjIZNfet8ryhYAJ3CgB+xCmP5u7ouFtQ==
dependencies:
deprecated-react-native-prop-types "^2.3.0"
@ -1786,6 +1786,11 @@
dependencies:
merge-options "^3.0.4"
"@react-native-camera-roll/camera-roll@^5.0.4":
version "5.0.4"
resolved "https://registry.yarnpkg.com/@react-native-camera-roll/camera-roll/-/camera-roll-5.0.4.tgz#341b8275363ee496b796fa58cb592697798d39e5"
integrity sha512-3kBRgW3VfmLQmQm70gPUVDu8rPSZymoPc9vmeiPLMKBqtWaqPNuPX0jQ6mZ8AEtYbBdoWC360Q4YYPalXv37zA==
"@react-native-clipboard/clipboard@^1.11.1":
version "1.11.1"
resolved "https://registry.yarnpkg.com/@react-native-clipboard/clipboard/-/clipboard-1.11.1.tgz#d3a9e685ce2383b1e92b89a334896c5575cc103d"
@ -1796,11 +1801,6 @@
resolved "https://registry.yarnpkg.com/@react-native-community/blur/-/blur-4.2.0.tgz#f100d0ba220ecfed26be3c0ad2ceffa5eee17533"
integrity sha512-StgP5zQJOCHqDRjmcKnzVkJ920S6DYBKRJfigSUnlkNQp+HzZtVtyKq0j5a7x84NtHcV7j8Uy5mz1Lx9ZKRKfA==
"@react-native-community/cameraroll@^4.1.2":
version "4.1.2"
resolved "https://registry.yarnpkg.com/@react-native-community/cameraroll/-/cameraroll-4.1.2.tgz#489c6bb6137571540d93c543d5fcf8c652b548ec"
integrity sha512-jkdhMByMKD2CZ/5MPeBieYn8vkCfC4MOTouPpBpps3I8N6HUYJk+1JnDdktVYl2WINnqXpQptDA2YptVyifYAg==
"@react-native-community/cli-clean@^8.0.4":
version "8.0.4"
resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-8.0.4.tgz#97e16a20e207b95de12e29b03816e8f2b2c80cc7"
@ -1971,10 +1971,10 @@
prompts "^2.4.0"
semver "^6.3.0"
"@react-native-community/netinfo@^9.3.2":
version "9.3.2"
resolved "https://registry.yarnpkg.com/@react-native-community/netinfo/-/netinfo-9.3.2.tgz#b6918282ce92dcf3efe622a56f9e3ab607b9502e"
integrity sha512-fR7wSIhmIUX+Skzgkr2vj5xopWa0lvvEWoXP1m7//jZjEgOZnu9DgdUimLHDrMo6AtZyUNrJscsFEepihTLlPQ==
"@react-native-community/netinfo@^9.3.4":
version "9.3.4"
resolved "https://registry.yarnpkg.com/@react-native-community/netinfo/-/netinfo-9.3.4.tgz#712d567703e05c4a01d82a18bd646a93c6757007"
integrity sha512-IXbJ+L8p4oE2ssDPfXCyxx9xVo5WuTMv6HA5YJw2McuRLLtVKR/vambycrB47AWTkHCTj3e0VOz28iUOvTSVPw==
"@react-native-community/segmented-control@^2.2.2":
version "2.2.2"
@ -2022,10 +2022,10 @@
resolved "https://registry.yarnpkg.com/@react-navigation/elements/-/elements-1.3.6.tgz#fa700318528db93f05144b1be4b691b9c1dd1abe"
integrity sha512-pNJ8R9JMga6SXOw6wGVN0tjmE6vegwPmJBL45SEMX2fqTfAk2ykDnlJHodRpHpAgsv0DaI8qX76z3A+aqKSU0w==
"@react-navigation/native-stack@^6.9.0":
version "6.9.0"
resolved "https://registry.yarnpkg.com/@react-navigation/native-stack/-/native-stack-6.9.0.tgz#1e79e06da8b81f0368d3709aedca269947da3649"
integrity sha512-cwqm/2GO0hf94OFRuH6R0beZPVKY4vMFxrdAPaDwwoukN5a0UgcsMYxrN8s2huwssTCuGScABFME9GnqG5hC5w==
"@react-navigation/native-stack@^6.9.1":
version "6.9.1"
resolved "https://registry.yarnpkg.com/@react-navigation/native-stack/-/native-stack-6.9.1.tgz#6013300e4cd0b33e242aa18593e4dff7db2ab3d1"
integrity sha512-aOuJP97ge6NRz8wH6sDKfLTfdygGmraYh0apKrrVbGvMnflbPX4kpjQiAQcUPUpMeas0betH/Su8QubNL8HEkg==
dependencies:
"@react-navigation/elements" "^1.3.6"
warn-once "^0.1.0"
@ -2047,19 +2047,19 @@
dependencies:
nanoid "^3.1.23"
"@react-navigation/stack@^6.3.1":
version "6.3.1"
resolved "https://registry.yarnpkg.com/@react-navigation/stack/-/stack-6.3.1.tgz#71f53d7598332765da08f78b56aeae245cc98cb6"
integrity sha512-WkURDiSip8QpB+cuEbp5GfDPDGxER7w7ooJVgG3J2nJNnYuKxsZR7qnlqWL2vjQW81NzKQpT7xrCADy+mfvIiQ==
"@react-navigation/stack@^6.3.2":
version "6.3.2"
resolved "https://registry.yarnpkg.com/@react-navigation/stack/-/stack-6.3.2.tgz#ba0a65e10e2b165185f20718046f25d8c9abb076"
integrity sha512-wb8koMp4OTrG5geOqEFPDatTyl8dsSyRBHN4h0wzgNT29V/JjkS3LYwkGLLfUmMfeLXFyIfEPILAjYLFmnk3dA==
dependencies:
"@react-navigation/elements" "^1.3.6"
color "^4.2.3"
warn-once "^0.1.0"
"@reduxjs/toolkit@^1.8.5":
version "1.8.5"
resolved "https://registry.yarnpkg.com/@reduxjs/toolkit/-/toolkit-1.8.5.tgz#c14bece03ee08be88467f22dc0ecf9cf875527cd"
integrity sha512-f4D5EXO7A7Xq35T0zRbWq5kJQyXzzscnHKmjnu2+37B3rwHU6mX9PYlbfXdnxcY6P/7zfmjhgan0Z+yuOfeBmA==
"@reduxjs/toolkit@^1.8.6":
version "1.8.6"
resolved "https://registry.yarnpkg.com/@reduxjs/toolkit/-/toolkit-1.8.6.tgz#147fb7957befcdb75bc9c1230db63628e30e4332"
integrity sha512-4Ia/Loc6WLmdSOzi7k5ff7dLK8CgG2b8aqpLsCAJhazAzGdp//YBUSaj0ceW6a3kDBDNRrq5CRwyCS0wBiL1ig==
dependencies:
immer "^9.0.7"
redux "^4.1.2"
@ -2074,14 +2074,14 @@
component-type "^1.2.1"
join-component "^1.1.0"
"@sentry/browser@7.13.0":
version "7.13.0"
resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-7.13.0.tgz#883b8598c8a0c33af246242e7172e39306dc564a"
integrity sha512-WbgClHPYe8TKsdVVbuzd6alxwh3maFQNuljMkSTnYvPx2P+NT0wHljTs37D39FGfSmAwaqn7D/1ZHAtC+6mWxA==
"@sentry/browser@7.14.2":
version "7.14.2"
resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-7.14.2.tgz#668359603e3f32e6debf6a139652f5233b4d3e58"
integrity sha512-KGAZ+5lK7gIO2CM3/MAQGY8JtNVCWXRi807lAxndJ3E1oIQb9A0x7b+AJNr1+6jlwf6QESblr92MCLKPHDpNbA==
dependencies:
"@sentry/core" "7.13.0"
"@sentry/types" "7.13.0"
"@sentry/utils" "7.13.0"
"@sentry/core" "7.14.2"
"@sentry/types" "7.14.2"
"@sentry/utils" "7.14.2"
tslib "^1.9.3"
"@sentry/cli@1.74.4":
@ -2110,83 +2110,83 @@
proxy-from-env "^1.1.0"
which "^2.0.2"
"@sentry/core@7.13.0":
version "7.13.0"
resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.13.0.tgz#65597d71f8bfa1186f34009803e03ca9edb3adee"
integrity sha512-hB46fklmKrSDMEvZOF8qBHhys7PONBFyxQtbNDZUlv/kabs4gF3VEg1ftCaXnjx4lLNlsUl/ScFdM6194RvISg==
"@sentry/core@7.14.2":
version "7.14.2"
resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.14.2.tgz#47262aad43d94d8c5fb73b668a7e8e9c4b91c98f"
integrity sha512-AXcH6nROugziO5KsKSQ9TmAXq6HJa8Fn+kDqAL/sNY65w6YYlHifMO2xHkSXVJxGw7vx9DYh/5SF+KnLn6NDNA==
dependencies:
"@sentry/hub" "7.13.0"
"@sentry/types" "7.13.0"
"@sentry/utils" "7.13.0"
"@sentry/hub" "7.14.2"
"@sentry/types" "7.14.2"
"@sentry/utils" "7.14.2"
tslib "^1.9.3"
"@sentry/hub@7.13.0":
version "7.13.0"
resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-7.13.0.tgz#752068e528cfb277ed154bc94e311cad50ef792e"
integrity sha512-88/GsD1BoyrBwRKJCmVHZtSH5rizOsImUHWEXc1AOa1aR8nanfn56JdAbd6tC55pA+nT4R4H4vN/PrUaomTbtg==
"@sentry/hub@7.14.2":
version "7.14.2"
resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-7.14.2.tgz#b7b4d6e5002cd5abe9a829a84db5f4270689c666"
integrity sha512-18cuSesTn9VAF0JC107flLmtCRt/6DBn38uz0G9cPThKtTSNwjGvGZ/ag4J1iq+IDjVS5MA6iTncXOsSpVP2Wg==
dependencies:
"@sentry/types" "7.13.0"
"@sentry/utils" "7.13.0"
"@sentry/types" "7.14.2"
"@sentry/utils" "7.14.2"
tslib "^1.9.3"
"@sentry/integrations@7.13.0":
version "7.13.0"
resolved "https://registry.yarnpkg.com/@sentry/integrations/-/integrations-7.13.0.tgz#abd36fbf4a338877ca15ef5ed830163eeb6394ac"
integrity sha512-el5tonn/96fC+GMco70TXI2yrGmDLSFc0THKO/r9YEIJjqcK1KV1C6jJhTWt09ZBAgoeRCXSMn5xvdl3fc9Zrw==
"@sentry/integrations@7.14.2":
version "7.14.2"
resolved "https://registry.yarnpkg.com/@sentry/integrations/-/integrations-7.14.2.tgz#52026f758e4c2a0436c4896bb8b2fa2765982042"
integrity sha512-vxS6ZDgPOxmbfEV6mynu7gouFSnq5LjlnEQYe2D7+/aRPzcgXzwPiqLt/Qd0OG+8LR2UjX+ziBTJOyARZcHxRA==
dependencies:
"@sentry/types" "7.13.0"
"@sentry/utils" "7.13.0"
"@sentry/types" "7.14.2"
"@sentry/utils" "7.14.2"
localforage "^1.8.1"
tslib "^1.9.3"
"@sentry/react-native@^4.5.0":
version "4.5.0"
resolved "https://registry.yarnpkg.com/@sentry/react-native/-/react-native-4.5.0.tgz#001b0dc32a92fb89e64be2cc0cd6937a7b3559a4"
integrity sha512-h8si35zlJlvU88HsdKGE/KfJpAI+p355QAA02VdlxuLkfFH0BP6kYlogu8ASa7Hxzgb2ESB0P/fHXixat2N2cQ==
"@sentry/react-native@^4.6.1":
version "4.6.1"
resolved "https://registry.yarnpkg.com/@sentry/react-native/-/react-native-4.6.1.tgz#7d4842275c565c755212104a01ea48db9a120cff"
integrity sha512-P92DqyfqYURpHmaO2yqgqnmB4TW4id1HXe1JrwBvatSpCsinzVtySkmadxQMkIYKhCSEVSfhjGpz5zEosVRpQw==
dependencies:
"@sentry/browser" "7.13.0"
"@sentry/browser" "7.14.2"
"@sentry/cli" "1.74.4"
"@sentry/core" "7.13.0"
"@sentry/hub" "7.13.0"
"@sentry/integrations" "7.13.0"
"@sentry/react" "7.13.0"
"@sentry/tracing" "7.13.0"
"@sentry/types" "7.13.0"
"@sentry/utils" "7.13.0"
"@sentry/core" "7.14.2"
"@sentry/hub" "7.14.2"
"@sentry/integrations" "7.14.2"
"@sentry/react" "7.14.2"
"@sentry/tracing" "7.14.2"
"@sentry/types" "7.14.2"
"@sentry/utils" "7.14.2"
"@sentry/wizard" "1.2.17"
"@sentry/react@7.13.0":
version "7.13.0"
resolved "https://registry.yarnpkg.com/@sentry/react/-/react-7.13.0.tgz#64fa5a2b944c977f75626c6208afa3478c13714c"
integrity sha512-ulvBmMiwt+4RXwnDkP9qNr7rMJIFE4QXuNxho5pIqWEU9q2656CoL5kau9f2TQQEBxNc9dR4QmUdGyzuEaYPIQ==
"@sentry/react@7.14.2":
version "7.14.2"
resolved "https://registry.yarnpkg.com/@sentry/react/-/react-7.14.2.tgz#2c59d09d543246d5228e603bd3af76fb30369b75"
integrity sha512-gWPSxOYcAEG/c7Ubuv0yAGMhOvHwMHQ47fEhYa8Be5e/kzXMzc/lQAaoKLNr73BZGvBvY7ghdC53ATGQXLGxpg==
dependencies:
"@sentry/browser" "7.13.0"
"@sentry/types" "7.13.0"
"@sentry/utils" "7.13.0"
"@sentry/browser" "7.14.2"
"@sentry/types" "7.14.2"
"@sentry/utils" "7.14.2"
hoist-non-react-statics "^3.3.2"
tslib "^1.9.3"
"@sentry/tracing@7.13.0":
version "7.13.0"
resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-7.13.0.tgz#521dc021dab78e37e29b0f90b01cb444337adfc4"
integrity sha512-/MKSd25rGv6Pc0FPBLXJifkfvSaYVPA8XUOLzVeDN0gl07h8AXli4qG9amTh/4Wb5h4dFpbcscOvW2VC+pxkIA==
"@sentry/tracing@7.14.2":
version "7.14.2"
resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-7.14.2.tgz#77f36618f10202a502dec4454dff43c6ede832d9"
integrity sha512-KCZogsvqUYiR9vNPWXVgSM00CF+yfYJaBd363fN3HUbjya4j96cHJg65zf6oy85Igr6IGclYaTkoEbiZ6xdNDw==
dependencies:
"@sentry/hub" "7.13.0"
"@sentry/types" "7.13.0"
"@sentry/utils" "7.13.0"
"@sentry/hub" "7.14.2"
"@sentry/types" "7.14.2"
"@sentry/utils" "7.14.2"
tslib "^1.9.3"
"@sentry/types@7.13.0":
version "7.13.0"
resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.13.0.tgz#398e33e5c92ea0ce91e2c86e3ab003fe00c471a2"
integrity sha512-ttckM1XaeyHRLMdr79wmGA5PFbTGx2jio9DCD/mkEpSfk6OGfqfC7gpwy7BNstDH/VKyQj/lDCJPnwvWqARMoQ==
"@sentry/types@7.14.2":
version "7.14.2"
resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.14.2.tgz#78e2e2632d1ee10092549ba32efbe2bc288cbf6f"
integrity sha512-JzkOtenArOXmJBAk/FBbxKKX7XC650HqkhGL4ugT/f+RyxfiDZ0X1TAYMrvKIe+qpn5Nh7JUBfR+BARKAiu2wQ==
"@sentry/utils@7.13.0":
version "7.13.0"
resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.13.0.tgz#0d47a9278806ece78ba3a83c7dbebce817462759"
integrity sha512-jnR85LgRLSk7IQe2OhKOPMY4fasJCNQNW0iCXsH+S2R1qnsF+N4ksNkQ+7JyyM9E7F03YpI2qd76bKY0VIn5iA==
"@sentry/utils@7.14.2":
version "7.14.2"
resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.14.2.tgz#5af245fc2d72211490cb9aeaf2098e048739120a"
integrity sha512-vpZolN+k1IoxWXhKyOVcRl7V1bgww+96gHqTJdcMzOB83x/ofels7L0kqxb03WukKTYcnc7Ep+yBiKi/OYX9og==
dependencies:
"@sentry/types" "7.13.0"
"@sentry/types" "7.14.2"
tslib "^1.9.3"
"@sentry/wizard@1.2.17":
@ -3676,10 +3676,10 @@ domutils@^3.0.1:
domelementtype "^2.3.0"
domhandler "^5.0.1"
dotenv@^16.0.2:
version "16.0.2"
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.2.tgz#0b0f8652c016a3858ef795024508cddc4bffc5bf"
integrity sha512-JvpYKUmzQhYoIFgK2MOnF3bciIZoItIIoryihy0rIA+H4Jy0FmgyKYAHCTN98P5ybGSJcIFbh6QKeJdtZd1qhA==
dotenv@^16.0.3:
version "16.0.3"
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.3.tgz#115aec42bac5053db3c456db30cc243a5a836a07"
integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==
ee-first@1.1.1:
version "1.1.1"
@ -3957,10 +3957,10 @@ expo-firebase-core@~5.2.0:
dependencies:
expo-constants "~13.2.0"
expo-font@~10.2.0:
version "10.2.0"
resolved "https://registry.yarnpkg.com/expo-font/-/expo-font-10.2.0.tgz#881f767e13b2b534a4d3ffaedcf675ce6b63439d"
integrity sha512-2V4EcpmhNoppaLn+lPprZVS+3bmV9hxLPKttKh2u8ghjH/oX9bv3u4JVo77SYh0EfrWO4toqVyXn8pXH8GpbIg==
expo-font@~10.2.1:
version "10.2.1"
resolved "https://registry.yarnpkg.com/expo-font/-/expo-font-10.2.1.tgz#c13e65e864befaa4710504096b68635c6f7e48d8"
integrity sha512-sxy5GrdtY+Ka8Wo5wnrcFFeO6MbYC6Dris5wMLqshvVK6BneJNMUsFvwRfvVgg0TzsmMAc3Rlca2xyZ8ettinw==
dependencies:
fontfaceobserver "^2.1.0"
@ -4003,10 +4003,10 @@ expo-modules-autolinking@0.10.3:
find-up "^5.0.0"
fs-extra "^9.1.0"
expo-modules-core@0.11.5:
version "0.11.5"
resolved "https://registry.yarnpkg.com/expo-modules-core/-/expo-modules-core-0.11.5.tgz#19d30e9b24b0b98ea614df3cb474293133a08bd4"
integrity sha512-KmTHtaL21M1AzKOmu3YM5K8ddCbbr6wgooG4uCb+o+7zZXe+BPP4jAPs5LLez1Et34OQcyjopxUpJ8r43HImvQ==
expo-modules-core@0.11.7:
version "0.11.7"
resolved "https://registry.yarnpkg.com/expo-modules-core/-/expo-modules-core-0.11.7.tgz#538f2a4d7c353467fb0313de4788e86dd8f251e3"
integrity sha512-lTH6MYULX99JK3zN4bhjRD3I9Y1CGx0RAhpZ6gCTO8GQ/DNw4xZRUwburKL9dJeZM5G1xJOcGoBkTfeMjUVe+g==
dependencies:
compare-versions "^3.4.0"
invariant "^2.2.4"
@ -4069,13 +4069,13 @@ expo-web-browser@^11.0.0, expo-web-browser@~11.0.0:
dependencies:
compare-urls "^2.0.0"
expo@^46.0.10:
version "46.0.10"
resolved "https://registry.yarnpkg.com/expo/-/expo-46.0.10.tgz#a352057489474279b0207cc6b01540edc04e1806"
integrity sha512-MUDLTnBYOOabzFo2HATTMXiAYoQ4n1IWBM3HlOmsQVoMBKOs6FcZDqte/lwK80KkhHIpr1Q37JD8Dq1Fk4b9eA==
expo@^46.0.15:
version "46.0.15"
resolved "https://registry.yarnpkg.com/expo/-/expo-46.0.15.tgz#c10d27c0ee85669132310949f2e56e95b4a14469"
integrity sha512-/uZLQgXKni/rLoJPUESte901Z8owZH4weItLGhac2T37zZEUHIqcWdI/1+BaN8Racz9x54PzgbIMh09QMgv9mQ==
dependencies:
"@babel/runtime" "^7.14.0"
"@expo/cli" "0.2.11"
"@expo/cli" "0.3.1"
"@expo/vector-icons" "^13.0.0"
babel-preset-expo "~9.2.0"
cross-spawn "^6.0.5"
@ -4083,10 +4083,10 @@ expo@^46.0.10:
expo-asset "~8.6.1"
expo-constants "~13.2.4"
expo-file-system "~14.1.0"
expo-font "~10.2.0"
expo-font "~10.2.1"
expo-keep-awake "~10.2.0"
expo-modules-autolinking "0.10.3"
expo-modules-core "0.11.5"
expo-modules-core "0.11.7"
fbemitter "^3.0.0"
getenv "^1.0.0"
invariant "^2.2.4"
@ -4739,10 +4739,10 @@ https-proxy-agent@^5.0.0:
agent-base "6"
debug "4"
i18next@^21.9.2:
version "21.9.2"
resolved "https://registry.yarnpkg.com/i18next/-/i18next-21.9.2.tgz#3f7c5594393eb27117c1db4c38f5ec766e68de0e"
integrity sha512-00fVrLQOwy45nm3OtC9l1WiLK3nJlIYSljgCt0qzTaAy65aciMdRy9GsuW+a2AtKtdg9/njUGfRH30LRupV7ZQ==
i18next@^21.10.0:
version "21.10.0"
resolved "https://registry.yarnpkg.com/i18next/-/i18next-21.10.0.tgz#85429af55fdca4858345d0e16b584ec29520197d"
integrity sha512-YeuIBmFsGjUfO3qBmMOc0rQaun4mIpGKET5WDwvu8lU7gvwpcariZLNtL0Fzj+zazcHUrlXHiptcFhBMFaxzfg==
dependencies:
"@babel/runtime" "^7.17.2"
@ -6985,10 +6985,10 @@ react-native-flash-message@^0.3.1:
prop-types "^15.8.1"
react-native-iphone-x-helper "^1.3.1"
react-native-gesture-handler@^2.6.2:
version "2.6.2"
resolved "https://registry.yarnpkg.com/react-native-gesture-handler/-/react-native-gesture-handler-2.6.2.tgz#f3b68d374f5dda603ff29f7df2edb39472eb97ce"
integrity sha512-Ff/WKlR8KiM1wq7UJZvIyCB+OsweewaeZk+4RDIYNGM9tvNIAXEm/MtYnLHiBXiSJjZItF/8B83gE6pVq40vIw==
react-native-gesture-handler@^2.7.1:
version "2.7.1"
resolved "https://registry.yarnpkg.com/react-native-gesture-handler/-/react-native-gesture-handler-2.7.1.tgz#c109d33c38cb182fafcda13012b77c6cac43b127"
integrity sha512-Rnak7U4v3ZB+vjVghv5CvAGS+UfRLsXUq7Nq+FycloxZ7jUZjBo+7rPnt+EdTIE2zc2pKhQHIQKcD+IAPg2Scg==
dependencies:
"@egjs/hammerjs" "^2.0.17"
hoist-non-react-statics "^3.3.0"
@ -7024,10 +7024,10 @@ react-native-language-detection@^0.1.0:
resolved "https://registry.yarnpkg.com/react-native-language-detection/-/react-native-language-detection-0.1.0.tgz#06b5d20bffb60dbbd599c8e62b6acf500952afa8"
integrity sha512-26CLndVMmMbVp40Y9Herza73nfR08JFTcYkJ3MX5MIQbGRoqgNAG89z8pA1y7dPHHK1Nfa6AWKAYpNv7tMRCaw==
react-native-pager-view@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/react-native-pager-view/-/react-native-pager-view-6.0.0.tgz#e3706da1bb7e55bcd2644d770d36c8dd14b48690"
integrity sha512-0qUMUmA/Lhv76F+fbCcYB+iuODH6Lp6E1EYlXw+GM3Ns3FaKFtBaVYXKQSfNhqnTUg9YEOY3HuX+ZMKBSHwNbA==
react-native-pager-view@^6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/react-native-pager-view/-/react-native-pager-view-6.0.1.tgz#353abf38d3c2b91ed7c586f10af0f94700f5b1dc"
integrity sha512-kOVNu+4JnR3Gpykviy4WbOAnQz8TgP6O2pRvne221oPUDQLYrvEE/FINR0P85TxbMgvKTPlLejGw0ZHQbezK/g==
react-native-reanimated-zoom@^0.3.1:
version "0.3.1"
@ -7047,15 +7047,15 @@ react-native-reanimated@^2.10.0:
setimmediate "^1.0.5"
string-hash-64 "^1.0.3"
react-native-safe-area-context@^4.3.4:
version "4.3.4"
resolved "https://registry.yarnpkg.com/react-native-safe-area-context/-/react-native-safe-area-context-4.3.4.tgz#79060fcc02ef38d6fd7afdf87b2301b06bd99fe9"
integrity sha512-4dFZPDHRigZ+uw8HCmMLyC/IT1BG0B9QLvuwsBQAMDCRSrxISIYza9VIbsIn2FGvZiQ1gOoXBHDmy9WFihQsTg==
react-native-safe-area-context@^4.4.1:
version "4.4.1"
resolved "https://registry.yarnpkg.com/react-native-safe-area-context/-/react-native-safe-area-context-4.4.1.tgz#239c60b8a9a80eac70a38a822b04c0f1d15ffc01"
integrity sha512-N9XTjiuD73ZpVlejHrUWIFZc+6Z14co1K/p1IFMkImU7+avD69F3y+lhkqA2hN/+vljdZrBSiOwXPkuo43nFQA==
react-native-screens@^3.17.0:
version "3.17.0"
resolved "https://registry.yarnpkg.com/react-native-screens/-/react-native-screens-3.17.0.tgz#b099b3ec9d46de07c857f14d713c293024c7c842"
integrity sha512-OZCQU7+3neHNaM19jBkYRjL50kXz7p7MUgWQTCcdRoshcCiolf8aXs4eRVQKGK6m1RmoB8UL0//m5R9KoR+41w==
react-native-screens@^3.18.1:
version "3.18.1"
resolved "https://registry.yarnpkg.com/react-native-screens/-/react-native-screens-3.18.1.tgz#19059f34a29a2ff4247ebb1bf0c2f9beacec1ec4"
integrity sha512-GtEC1AbvpvtKDJldavuONF/hXW1aEZO7qz8SioyHrV9L9/nDiy+iTviMFmeEoix9KwmEHHxoYxc0xiDrFxKHyA==
dependencies:
react-freeze "^1.0.0"
warn-once "^0.1.0"
@ -7078,10 +7078,12 @@ react-native-swipe-list-view@^3.2.9:
resolved "https://registry.yarnpkg.com/react-native-swipe-list-view/-/react-native-swipe-list-view-3.2.9.tgz#d725c7cdf481dd5df12a00dbfe0120013b5f2e59"
integrity sha512-SjAEuHc/D6ovp+RjDUhfNmw6NYOntdT7+GFhfMGfP/BSLMuMWynpzJy9GKQeyB8sI78T6Lzip21TVbongOg1Mw==
react-native-tab-view@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/react-native-tab-view/-/react-native-tab-view-3.1.1.tgz#1f8d7a835ab4f5b1b1407ec8dddc1053b53fa3c6"
integrity sha512-M5pRN6utQfytKWoKlKVzg5NbkYu308qNoW1khGTtEOTs1k14p2dHJ/BWOJoJYHKbPVUyZldbG9MFT7gUl4YHnw==
react-native-tab-view@^3.3.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/react-native-tab-view/-/react-native-tab-view-3.3.0.tgz#3d24ae4f4c55cfd54cd1d2d1f8915b0b2c33a5da"
integrity sha512-xjAQe657Gp/de2QHb7ptksTg8Jcb+j3fLAdcYryzfavt/pe+HtKLpkCtQsxyIJpRrAO7YPxFsymi2N4MnNfePA==
dependencies:
use-latest-callback "^0.1.5"
react-native@^0.69.6:
version "0.69.6"
@ -8200,7 +8202,7 @@ ts-interface-checker@^0.1.9:
resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699"
integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==
tslib@2.4.0, tslib@^2.0.1, tslib@^2.1.0, tslib@^2.4.0:
tslib@2.4.0, tslib@^2.0.1, tslib@^2.1.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3"
integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==
@ -8250,10 +8252,10 @@ typedarray-to-buffer@^3.1.2:
dependencies:
is-typedarray "^1.0.0"
typescript@^4.8.3:
version "4.8.3"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.3.tgz#d59344522c4bc464a65a730ac695007fdb66dd88"
integrity sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig==
typescript@^4.8.4:
version "4.8.4"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.4.tgz#c464abca159669597be5f96b8943500b238e60e6"
integrity sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==
ua-parser-js@^0.7.30:
version "0.7.31"