2021-01-24 02:25:43 +01:00
|
|
|
import analytics from '@components/analytics'
|
2021-01-01 23:10:47 +01:00
|
|
|
import openLink from '@components/openLink'
|
|
|
|
import { StyleConstants } from '@utils/styles/constants'
|
|
|
|
import { useTheme } from '@utils/styles/ThemeManager'
|
|
|
|
import React from 'react'
|
|
|
|
import { useTranslation } from 'react-i18next'
|
|
|
|
import { StyleSheet, Text } from 'react-native'
|
|
|
|
|
|
|
|
export interface Props {
|
|
|
|
application?: Mastodon.Application
|
|
|
|
}
|
|
|
|
|
2021-03-06 21:01:38 +01:00
|
|
|
const HeaderSharedApplication = React.memo(
|
|
|
|
({ application }: Props) => {
|
2022-02-12 14:51:01 +01:00
|
|
|
const { colors } = useTheme()
|
2021-03-06 21:01:38 +01:00
|
|
|
const { t } = useTranslation('componentTimeline')
|
2021-01-01 23:10:47 +01:00
|
|
|
|
2021-03-06 21:01:38 +01:00
|
|
|
return application && application.name !== 'Web' ? (
|
|
|
|
<Text
|
2021-04-09 21:43:12 +02:00
|
|
|
accessibilityRole='link'
|
2021-03-06 21:01:38 +01:00
|
|
|
onPress={async () => {
|
|
|
|
analytics('timeline_shared_header_application_press', {
|
|
|
|
application
|
|
|
|
})
|
|
|
|
application.website && (await openLink(application.website))
|
|
|
|
}}
|
2022-02-12 14:51:01 +01:00
|
|
|
style={[styles.application, { color: colors.secondary }]}
|
2021-03-13 14:18:14 +01:00
|
|
|
numberOfLines={1}
|
2021-03-06 21:01:38 +01:00
|
|
|
>
|
|
|
|
{t('shared.header.shared.application', {
|
|
|
|
application: application.name
|
|
|
|
})}
|
|
|
|
</Text>
|
|
|
|
) : null
|
|
|
|
},
|
|
|
|
() => true
|
|
|
|
)
|
2021-01-01 23:10:47 +01:00
|
|
|
|
|
|
|
const styles = StyleSheet.create({
|
|
|
|
application: {
|
2021-03-13 14:18:14 +01:00
|
|
|
flex: 1,
|
2021-01-01 23:10:47 +01:00
|
|
|
...StyleConstants.FontStyle.S,
|
|
|
|
marginLeft: StyleConstants.Spacing.S
|
|
|
|
}
|
|
|
|
})
|
|
|
|
|
|
|
|
export default HeaderSharedApplication
|