![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /proc/self/root/opt/mattermost/client/ |
Upload File : |
{"version":3,"file":"5555.03b3fc79cf9bd8985813.js","mappings":"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","sources":["webpack://mattermost-webapp/./src/components/linking_landing_page/linking_landing_page.tsx","webpack://mattermost-webapp/./src/components/linking_landing_page/index.tsx"],"sourcesContent":["// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.\n// See LICENSE.txt for license information.\n\nimport React, {PureComponent} from 'react';\nimport {FormattedMessage} from 'react-intl';\n\nimport BrowserStore from 'stores/browser_store';\n\nimport ExternalLink from 'components/external_link';\n\nimport desktopImg from 'images/deep-linking/deeplinking-desktop-img.png';\nimport mobileImg from 'images/deep-linking/deeplinking-mobile-img.png';\nimport MattermostLogoSvg from 'images/logo.svg';\nimport {LandingPreferenceTypes} from 'utils/constants';\nimport * as UserAgent from 'utils/user_agent';\nimport * as Utils from 'utils/utils';\n\ntype Props = {\n defaultTheme: any;\n desktopAppLink?: string;\n iosAppLink?: string;\n androidAppLink?: string;\n siteUrl?: string;\n siteName?: string;\n brandImageUrl?: string;\n enableCustomBrand: boolean;\n}\n\ntype State = {\n rememberChecked: boolean;\n redirectPage: boolean;\n location: string;\n nativeLocation: string;\n brandImageError: boolean;\n navigating: boolean;\n}\n\nexport default class LinkingLandingPage extends PureComponent<Props, State> {\n constructor(props: Props) {\n super(props);\n\n const location = window.location.href.replace('/landing#', '');\n\n this.state = {\n rememberChecked: false,\n redirectPage: false,\n location,\n nativeLocation: location.replace(/^(https|http)/, 'mattermost'),\n brandImageError: false,\n navigating: false,\n };\n\n if (!BrowserStore.hasSeenLandingPage()) {\n BrowserStore.setLandingPageSeen(true);\n }\n }\n\n componentDidMount() {\n Utils.applyTheme(this.props.defaultTheme);\n if (this.checkLandingPreferenceApp()) {\n this.openMattermostApp();\n }\n\n window.addEventListener('beforeunload', this.clearLandingPreferenceIfNotChecked);\n }\n\n componentWillUnmount() {\n window.removeEventListener('beforeunload', this.clearLandingPreferenceIfNotChecked);\n }\n\n clearLandingPreferenceIfNotChecked = () => {\n if (!this.state.navigating && !this.state.rememberChecked) {\n BrowserStore.clearLandingPreference(this.props.siteUrl);\n }\n };\n\n checkLandingPreferenceBrowser = () => {\n const landingPreference = BrowserStore.getLandingPreference(this.props.siteUrl);\n return landingPreference && landingPreference === LandingPreferenceTypes.BROWSER;\n };\n\n isEmbedded = () => {\n // this cookie is set by any plugin that facilitates iframe embedding (e.g. mattermost-plugin-msteams-sync).\n const cookieName = 'MMEMBED';\n const cookies = document.cookie.split(';');\n for (let i = 0; i < cookies.length; i++) {\n const cookie = cookies[i].trim();\n if (cookie.startsWith(cookieName + '=')) {\n const value = cookie.substring(cookieName.length + 1);\n return decodeURIComponent(value) === '1';\n }\n }\n return false;\n };\n\n checkLandingPreferenceApp = () => {\n const landingPreference = BrowserStore.getLandingPreference(this.props.siteUrl);\n return landingPreference && landingPreference === LandingPreferenceTypes.MATTERMOSTAPP;\n };\n\n handleChecked = (e: React.ChangeEvent<HTMLInputElement>) => {\n this.setState({rememberChecked: e.target.checked});\n\n // If it was checked, and now we're unchecking it, clear the preference\n if (!e.target.checked) {\n BrowserStore.clearLandingPreference(this.props.siteUrl);\n }\n };\n\n setPreference = (pref: string, clearIfNotChecked?: boolean) => {\n if (!this.state.rememberChecked) {\n if (clearIfNotChecked) {\n BrowserStore.clearLandingPreference(this.props.siteUrl);\n }\n return;\n }\n\n switch (pref) {\n case LandingPreferenceTypes.MATTERMOSTAPP:\n BrowserStore.setLandingPreferenceToMattermostApp(this.props.siteUrl);\n break;\n case LandingPreferenceTypes.BROWSER:\n BrowserStore.setLandingPreferenceToBrowser(this.props.siteUrl);\n break;\n default:\n break;\n }\n };\n\n openMattermostApp = () => {\n this.setPreference(LandingPreferenceTypes.MATTERMOSTAPP);\n this.setState({redirectPage: true});\n window.location.href = this.state.nativeLocation;\n };\n\n openInBrowser = () => {\n this.setPreference(LandingPreferenceTypes.BROWSER);\n window.location.href = this.state.location;\n };\n\n renderSystemDialogMessage = () => {\n const isMobile = UserAgent.isMobile();\n\n if (isMobile) {\n return (\n <FormattedMessage\n id='get_app.systemDialogMessageMobile'\n defaultMessage='View in App'\n />\n );\n }\n\n return (\n <FormattedMessage\n id='get_app.systemDialogMessage'\n defaultMessage='View in Desktop App'\n />\n );\n };\n\n renderGoNativeAppMessage = () => {\n return (\n <a\n href={UserAgent.isMobile() ? '#' : this.state.nativeLocation}\n onMouseDown={() => {\n this.setPreference(LandingPreferenceTypes.MATTERMOSTAPP, true);\n }}\n onClick={() => {\n this.setPreference(LandingPreferenceTypes.MATTERMOSTAPP, true);\n this.setState({redirectPage: true, navigating: true});\n if (UserAgent.isMobile()) {\n if (UserAgent.isAndroidWeb()) {\n const timeout = setTimeout(() => {\n window.location.replace(this.getDownloadLink()!);\n }, 2000);\n window.addEventListener('blur', () => {\n clearTimeout(timeout);\n });\n }\n window.location.replace(this.state.nativeLocation);\n }\n }}\n className='btn btn-primary btn-lg get-app__download'\n >\n {this.renderSystemDialogMessage()}\n </a>\n );\n };\n\n getDownloadLink = () => {\n if (UserAgent.isIosWeb()) {\n return this.props.iosAppLink;\n } else if (UserAgent.isAndroidWeb()) {\n return this.props.androidAppLink;\n }\n\n return this.props.desktopAppLink;\n };\n\n handleBrandImageError = () => {\n this.setState({brandImageError: true});\n };\n\n renderGraphic = () => {\n const isMobile = UserAgent.isMobile();\n\n if (isMobile) {\n return (\n <img src={mobileImg}/>\n );\n }\n\n return (\n <img src={desktopImg}/>\n );\n };\n\n renderDownloadLinkText = () => {\n const isMobile = UserAgent.isMobile();\n\n if (isMobile) {\n return (\n <FormattedMessage\n id='get_app.dontHaveTheMobileApp'\n defaultMessage={'Don\\'t have the Mobile App?'}\n />\n );\n }\n\n return (\n <FormattedMessage\n id='get_app.dontHaveTheDesktopApp'\n defaultMessage={'Don\\'t have the Desktop App?'}\n />\n );\n };\n\n renderDownloadLinkSection = () => {\n const downloadLink = this.getDownloadLink();\n\n if (this.state.redirectPage) {\n return (\n <div className='get-app__download-link'>\n <FormattedMessage\n id='getApp.downloadLinkInBrowser'\n defaultMessage='Or, <a>open this link in your browser</a>.'\n values={{\n a: (chunks: string) => (\n <ExternalLink\n href={this.state.location}\n location='landingPage'\n >\n {chunks}\n </ExternalLink>\n ),\n }}\n />\n </div>\n );\n } else if (downloadLink) {\n return (\n <div className='get-app__download-link'>\n {this.renderDownloadLinkText()}\n {'\\u00A0'}\n <br/>\n <a href={downloadLink}>\n <FormattedMessage\n id='get_app.downloadTheAppNow'\n defaultMessage='Download the app now.'\n />\n </a>\n </div>\n );\n }\n\n return null;\n };\n\n renderDialogHeader = () => {\n const downloadLink = this.getDownloadLink();\n const isMobile = UserAgent.isMobile();\n\n let openingLink = (\n <FormattedMessage\n id='get_app.openingLink'\n defaultMessage='Opening link in Mattermost...'\n />\n );\n if (this.props.enableCustomBrand) {\n openingLink = (\n <FormattedMessage\n id='get_app.openingLinkWhiteLabel'\n defaultMessage='Opening link in {appName}...'\n values={{\n appName: this.props.siteName || 'Mattermost',\n }}\n />\n );\n }\n\n if (this.state.redirectPage) {\n return (\n <h1 className='get-app__launching'>\n {openingLink}\n <div className={`get-app__alternative${this.state.redirectPage ? ' redirect-page' : ''}`}>\n <FormattedMessage\n id='get_app.redirectedInMoments'\n defaultMessage='You will be redirected in a few moments.'\n />\n <br/>\n {this.renderDownloadLinkText()}\n {'\\u00A0'}\n <br className='mobile-only'/>\n <a href={downloadLink}>\n <FormattedMessage\n id='get_app.downloadTheAppNow'\n defaultMessage='Download the app now.'\n />\n </a>\n </div>\n </h1>\n );\n }\n\n let viewApp = (\n <FormattedMessage\n id='get_app.ifNothingPrompts'\n defaultMessage='You can view {siteName} in the desktop app or continue in your web browser.'\n values={{\n siteName: this.props.enableCustomBrand ? '' : ' Mattermost',\n }}\n />\n );\n if (isMobile) {\n viewApp = (\n <FormattedMessage\n id='get_app.ifNothingPromptsMobile'\n defaultMessage='You can view {siteName} in the mobile app or continue in your web browser.'\n values={{\n siteName: this.props.enableCustomBrand ? '' : ' Mattermost',\n }}\n />\n );\n }\n\n return (\n <div className='get-app__launching'>\n <FormattedMessage\n id='get_app.launching'\n tagName='h1'\n defaultMessage='Where would you like to view this?'\n />\n <div className='get-app__alternative'>\n {viewApp}\n </div>\n </div>\n );\n };\n\n renderDialogBody = () => {\n if (this.state.redirectPage) {\n return (\n <div className='get-app__dialog-body'>\n {this.renderDialogHeader()}\n {this.renderDownloadLinkSection()}\n </div>\n );\n }\n\n return (\n <div className='get-app__dialog-body'>\n {this.renderDialogHeader()}\n <div className='get-app__buttons'>\n {this.renderGoNativeAppMessage()}\n <a\n href={this.state.location}\n onMouseDown={() => {\n this.setPreference(LandingPreferenceTypes.BROWSER, true);\n }}\n onClick={() => {\n this.setPreference(LandingPreferenceTypes.BROWSER, true);\n this.setState({navigating: true});\n }}\n className='btn btn-tertiary btn-lg'\n >\n <FormattedMessage\n id='get_app.continueToBrowser'\n defaultMessage='View in Browser'\n />\n </a>\n </div>\n <label className='get-app__preference'>\n <input\n type='checkbox'\n checked={this.state.rememberChecked}\n className='get-app__checkbox'\n onChange={this.handleChecked}\n />\n <FormattedMessage\n id='get_app.rememberMyPreference'\n defaultMessage='Remember my preference'\n />\n </label>\n {this.renderDownloadLinkSection()}\n </div>\n );\n };\n\n renderHeader = () => {\n let header = (\n <div className='get-app__header'>\n <img\n src={MattermostLogoSvg}\n className='get-app__logo'\n />\n </div>\n );\n if (this.props.enableCustomBrand && this.props.brandImageUrl) {\n let customLogo;\n if (this.props.brandImageUrl && !this.state.brandImageError) {\n customLogo = (\n <img\n src={this.props.brandImageUrl}\n onError={this.handleBrandImageError}\n className='get-app__custom-logo'\n />\n );\n }\n\n header = (\n <div className='get-app__header'>\n {customLogo}\n <div className='get-app__custom-site-name'>\n <span>{this.props.siteName}</span>\n </div>\n </div>\n );\n }\n\n return header;\n };\n\n render() {\n const isMobile = UserAgent.isMobile();\n\n if (this.checkLandingPreferenceBrowser() || this.isEmbedded()) {\n this.openInBrowser();\n return null;\n }\n\n return (\n <div className='get-app'>\n {this.renderHeader()}\n <div className='get-app__dialog'>\n <div\n className={`get-app__graphic ${isMobile ? 'mobile' : ''}`}\n >\n {this.renderGraphic()}\n </div>\n {this.renderDialogBody()}\n </div>\n </div>\n );\n }\n}\n","// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.\n// See LICENSE.txt for license information.\n\nimport {connect} from 'react-redux';\n\nimport {Client4} from 'mattermost-redux/client';\nimport {getConfig} from 'mattermost-redux/selectors/entities/general';\nimport {getTheme} from 'mattermost-redux/selectors/entities/preferences';\n\nimport type {GlobalState} from 'types/store';\n\nimport LinkingLandingPage from './linking_landing_page';\n\nfunction mapStateToProps(state: GlobalState) {\n const config = getConfig(state);\n\n return {\n desktopAppLink: config.AppDownloadLink,\n iosAppLink: config.IosAppDownloadLink,\n androidAppLink: config.AndroidAppDownloadLink,\n defaultTheme: getTheme(state),\n siteUrl: config.SiteURL,\n siteName: config.SiteName,\n brandImageUrl: Client4.getBrandImageUrl('0'),\n enableCustomBrand: config.EnableCustomBrand === 'true',\n };\n}\n\nexport default connect(mapStateToProps)(LinkingLandingPage);\n"],"names":["LinkingLandingPage","PureComponent","constructor","props","super","_defineProperty","this","state","navigating","rememberChecked","BrowserStore","clearLandingPreference","siteUrl","landingPreference","getLandingPreference","LandingPreferenceTypes","BROWSER","cookies","document","cookie","split","i","length","trim","startsWith","cookieName","value","substring","decodeURIComponent","MATTERMOSTAPP","e","setState","target","checked","pref","clearIfNotChecked","setLandingPreferenceToMattermostApp","setLandingPreferenceToBrowser","setPreference","redirectPage","window","location","href","nativeLocation","UserAgent","React","FormattedMessage","id","defaultMessage","onMouseDown","onClick","timeout","setTimeout","replace","getDownloadLink","addEventListener","clearTimeout","className","renderSystemDialogMessage","iosAppLink","androidAppLink","desktopAppLink","brandImageError","src","mobileImg","desktopImg","downloadLink","values","a","chunks","ExternalLink","renderDownloadLinkText","isMobile","openingLink","enableCustomBrand","appName","siteName","concat","viewApp","tagName","renderDialogHeader","renderDownloadLinkSection","renderGoNativeAppMessage","type","onChange","handleChecked","header","MattermostLogoSvg","brandImageUrl","customLogo","onError","handleBrandImageError","hasSeenLandingPage","setLandingPageSeen","componentDidMount","Utils","defaultTheme","checkLandingPreferenceApp","openMattermostApp","clearLandingPreferenceIfNotChecked","componentWillUnmount","removeEventListener","render","checkLandingPreferenceBrowser","isEmbedded","openInBrowser","renderHeader","renderGraphic","renderDialogBody","_pt","isRequired","connect","config","getConfig","AppDownloadLink","IosAppDownloadLink","AndroidAppDownloadLink","getTheme","SiteURL","SiteName","Client4","getBrandImageUrl","EnableCustomBrand"],"sourceRoot":""}