// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. import React, {PureComponent} from 'react'; import PropTypes from 'prop-types'; import { Linking, ScrollView, Text, TouchableOpacity, View } from 'react-native'; import DeviceInfo from 'react-native-device-info'; import FormattedText from 'app/components/formatted_text'; import StatusBar from 'app/components/status_bar'; import {changeOpacity, makeStyleSheetFromTheme} from 'app/utils/theme'; import AppIcon from 'app/components/app_icon'; import Config from 'assets/config'; const MATTERMOST_BUNDLE_IDS = ['com.mattermost.rnbeta', 'com.mattermost.rn']; export default class About extends PureComponent { static propTypes = { config: PropTypes.object.isRequired, license: PropTypes.object.isRequired, theme: PropTypes.object.isRequired }; handleAboutTeam = () => { Linking.openURL(Config.AboutTeamURL); }; handleAboutEnterprise = () => { Linking.openURL(Config.AboutEnterpriseURL); }; handlePlatformNotice = () => { Linking.openURL(Config.PlatformNoticeURL); }; handleMobileNotice = () => { Linking.openURL(Config.MobileNoticeURL); }; render() { const {theme, config, license} = this.props; const style = getStyleSheet(theme); let title = ( ); let subTitle = ( ); let learnMore = ( {Config.TeamEditionLearnURL} ); let licensee; if (config.BuildEnterpriseReady === 'true') { title = ( ); subTitle = ( ); learnMore = ( {Config.EELearnURL} ); if (license.IsLicensed === 'true') { title = ( ); licensee = ( ); } } let serverVersion; if (config.BuildNumber === config.Version) { serverVersion = ( ); } else { serverVersion = ( ); } return ( {`${config.SiteName} `} {title} {subTitle} {serverVersion} {licensee} {learnMore} {!MATTERMOST_BUNDLE_IDS.includes(DeviceInfo.getBundleId()) && } ), mobile: ( ) }} /> {'\u00a0' + config.BuildHash} {'\u00a0' + config.BuildHashEnterprise} {'\u00a0' + config.BuildDate} ); } } const getStyleSheet = makeStyleSheetFromTheme((theme) => { return { wrapper: { flex: 1, backgroundColor: theme.centerChannelBg }, scrollView: { flex: 1, backgroundColor: changeOpacity(theme.centerChannelColor, 0.06) }, scrollViewContent: { paddingBottom: 30 }, logoContainer: { alignItems: 'center', flex: 1, height: 200, paddingVertical: 40 }, infoContainer: { flex: 1, flexDirection: 'column', paddingHorizontal: 20 }, titleContainer: { flex: 1, flexDirection: 'row', marginBottom: 20 }, title: { fontSize: 22, color: theme.centerChannelColor }, subtitle: { color: changeOpacity(theme.centerChannelColor, 0.5), fontSize: 19, marginBottom: 15 }, learnContainer: { flex: 1, flexDirection: 'column', marginVertical: 20 }, learn: { color: theme.centerChannelColor, fontSize: 16 }, learnLink: { color: theme.linkColor, fontSize: 16 }, info: { color: theme.centerChannelColor, fontSize: 16, lineHeight: 19 }, licenseContainer: { flex: 1, flexDirection: 'row', marginTop: 20 }, noticeContainer: { flex: 1, flexDirection: 'column' }, noticeLink: { color: theme.linkColor, fontSize: 11, lineHeight: 13 }, hashContainer: { flex: 1, flexDirection: 'column' }, footerGroup: { flex: 1, flexDirection: 'row' }, footerText: { color: changeOpacity(theme.centerChannelColor, 0.5), fontSize: 11, lineHeight: 13, marginBottom: 10 } }; });