tooot/src/screens/Tabs/Me/Settings/Tooot.tsx

87 lines
2.5 KiB
TypeScript
Raw Normal View History

2021-01-27 00:35:34 +01:00
import analytics from '@components/analytics'
import Icon from '@components/Icon'
import { MenuContainer, MenuRow } from '@components/Menu'
import { useNavigation } from '@react-navigation/native'
import { StyleConstants } from '@utils/styles/constants'
import { useTheme } from '@utils/styles/ThemeManager'
2021-02-02 22:50:38 +01:00
import * as Updates from 'expo-updates'
2021-01-27 00:35:34 +01:00
import * as Linking from 'expo-linking'
import * as StoreReview from 'expo-store-review'
import * as WebBrowser from 'expo-web-browser'
import React from 'react'
import { useTranslation } from 'react-i18next'
import { useSelector } from 'react-redux'
2021-02-20 19:12:44 +01:00
import { getInstanceActive } from '@utils/slices/instancesSlice'
2021-01-27 00:35:34 +01:00
const SettingsTooot: React.FC = () => {
2021-02-20 19:12:44 +01:00
const instanceActive = useSelector(getInstanceActive)
2021-08-29 15:25:38 +02:00
const navigation = useNavigation<any>()
2021-01-27 00:35:34 +01:00
const { theme } = useTheme()
2021-03-28 23:31:10 +02:00
const { t } = useTranslation('screenTabs')
2021-01-27 00:35:34 +01:00
return (
<MenuContainer>
<MenuRow
2021-03-28 23:31:10 +02:00
title={t('me.settings.support.heading')}
2021-01-27 00:35:34 +01:00
content={
<Icon
name='Heart'
size={StyleConstants.Font.Size.M}
color={theme.red}
/>
}
iconBack='ChevronRight'
onPress={() => {
analytics('settings_support_press')
2021-03-06 17:55:13 +01:00
Linking.openURL('https://www.buymeacoffee.com/xmflsct')
2021-01-27 00:35:34 +01:00
}}
/>
2021-01-31 03:09:35 +01:00
{__DEV__ ||
2021-04-16 14:58:18 +02:00
['release', 'development'].some(channel =>
2021-02-02 22:50:38 +01:00
Updates.releaseChannel?.includes(channel)
2021-01-31 03:09:35 +01:00
) ? (
<MenuRow
2021-03-28 23:31:10 +02:00
title={t('me.settings.review.heading')}
2021-01-31 03:09:35 +01:00
content={
<Icon
name='Star'
size={StyleConstants.Font.Size.M}
color='#FF9500'
/>
}
iconBack='ChevronRight'
onPress={() => {
analytics('settings_review_press')
StoreReview.isAvailableAsync().then(() =>
StoreReview.requestReview()
)
}}
/>
) : null}
2021-01-27 00:35:34 +01:00
<MenuRow
2021-03-28 23:31:10 +02:00
title={t('me.settings.contact.heading')}
2021-01-27 00:35:34 +01:00
content={
<Icon
name='Mail'
size={StyleConstants.Font.Size.M}
color={theme.secondary}
/>
}
iconBack='ChevronRight'
onPress={() => {
2021-04-19 17:35:01 +02:00
if (instanceActive !== -1) {
2021-01-30 01:29:15 +01:00
navigation.navigate('Screen-Compose', {
2021-01-27 00:35:34 +01:00
type: 'conversation',
2021-04-19 17:35:01 +02:00
accts: ['tooot@xmflsct.com']
2021-01-27 00:35:34 +01:00
})
} else {
WebBrowser.openBrowserAsync('https://social.xmflsct.com/@tooot')
}
}}
/>
</MenuContainer>
)
}
export default SettingsTooot