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

Fix Sentry reported crashes

This commit is contained in:
xmflsct
2022-10-27 22:51:02 +02:00
parent db6b5e4e70
commit e5f750c3c8
11 changed files with 44 additions and 80 deletions

View File

@ -89,7 +89,7 @@ const contextMenuStatus = ({
{
id: 'status-mute',
title: t('status.mute.action', {
context: status.muted.toString()
context: (status.muted || false).toString()
}),
systemIcon: status.muted ? 'speaker' : 'speaker.slash'
}
@ -108,7 +108,7 @@ const contextMenuStatus = ({
accountMenuItems.push({
id: 'status-pin',
title: t('status.pin.action', {
context: status.pinned.toString()
context: (status.pinned || false).toString()
}),
systemIcon: status.pinned ? 'pin.slash' : 'pin'
})

View File

@ -12,33 +12,6 @@ import { Edge, SafeAreaView, useSafeAreaInsets } from 'react-native-safe-area-co
import { useSelector } from 'react-redux'
import EmojisContext, { Emojis, emojisReducer, EmojisState } from './Emojis/helpers/EmojisContext'
const prefetchEmojis = (
sortedEmojis: {
title: string
data: Pick<Mastodon.Emoji, 'shortcode' | 'url' | 'static_url'>[][]
}[],
reduceMotionEnabled: boolean
) => {
const prefetches: { uri: string }[] = []
let requestedIndex = 0
sortedEmojis.forEach(sorted => {
sorted.data.forEach(emojis =>
emojis.forEach(emoji => {
if (requestedIndex > 40) {
return
}
prefetches.push({
uri: reduceMotionEnabled ? emoji.static_url : emoji.url
})
requestedIndex++
})
)
})
try {
FastImage.preload(prefetches)
} catch {}
}
export type Props = {
inputProps: EmojisState['inputProps']
customButton?: boolean
@ -82,7 +55,6 @@ const ComponentEmojis: React.FC<Props & PropsWithChildren> = ({
})
}
emojis.current = sortedEmojis
prefetchEmojis(sortedEmojis, reduceMotionEnabled)
}
}, [data, reduceMotionEnabled])

View File

@ -6,10 +6,7 @@ import { QueryKeyTimeline } from '@utils/queryHooks/timeline'
import React from 'react'
import { createContext } from 'react'
import { Platform } from 'react-native'
import ContextMenu, {
ContextMenuAction,
ContextMenuProps
} from 'react-native-context-menu-view'
import ContextMenu, { ContextMenuAction, ContextMenuProps } from 'react-native-context-menu-view'
export interface Props {
copiableContent: React.MutableRefObject<{
@ -52,13 +49,15 @@ const TimelineContextMenu: React.FC<Props & ContextMenuProps> = ({
queryKey,
rootQueryKey
})
const accountOnPress = contextMenuAccount({
actions,
type: 'status',
queryKey,
rootQueryKey,
id: status.account.id
})
const accountOnPress = status?.account?.id
? contextMenuAccount({
actions,
type: 'status',
queryKey,
rootQueryKey,
id: status.account.id
})
: null
const instanceOnPress = contextMenuInstance({
actions,
status,
@ -71,12 +70,7 @@ const TimelineContextMenu: React.FC<Props & ContextMenuProps> = ({
<ContextMenu
actions={actions}
onPress={({ nativeEvent: { index } }) => {
for (const on of [
shareOnPress,
statusOnPress,
accountOnPress,
instanceOnPress
]) {
for (const on of [shareOnPress, statusOnPress, accountOnPress, instanceOnPress]) {
on && on(index)
}
}}