diff --git a/development/build/transforms/utils.js b/development/build/transforms/utils.js index 171c38eae..d7ab9654f 100644 --- a/development/build/transforms/utils.js +++ b/development/build/transforms/utils.js @@ -3,6 +3,9 @@ const eslintrc = require('../../../.eslintrc.js'); // We don't want linting to fail for purely stylistic reasons. eslintrc.rules['prettier/prettier'] = 'off'; +// Sometimes we use `let` instead of `const` to assign variables depending on +// the build type. +eslintrc.rules['prefer-const'] = 'off'; // Remove all test-related overrides. We will never lint test files here. eslintrc.overrides = eslintrc.overrides.filter((override) => { diff --git a/ui/components/app/account-menu/account-menu.component.js b/ui/components/app/account-menu/account-menu.component.js index 7f92787fe..b674a52ac 100644 --- a/ui/components/app/account-menu/account-menu.component.js +++ b/ui/components/app/account-menu/account-menu.component.js @@ -9,7 +9,13 @@ import { getEnvironmentType } from '../../../../app/scripts/lib/util'; import Identicon from '../../ui/identicon'; import SiteIcon from '../../ui/site-icon'; import UserPreferencedCurrencyDisplay from '../user-preferenced-currency-display'; -import { PRIMARY } from '../../../helpers/constants/common'; +import { + PRIMARY, + SUPPORT_LINK, + ///: BEGIN:ONLY_INCLUDE_IN(beta,flask) + SUPPORT_REQUEST_LINK, + ///: END:ONLY_INCLUDE_IN +} from '../../../helpers/constants/common'; import { KEYRING_TYPES } from '../../../../shared/constants/hardware-wallets'; import { SETTINGS_ROUTE, @@ -22,8 +28,6 @@ import TextField from '../../ui/text-field'; import SearchIcon from '../../ui/search-icon'; import Button from '../../ui/button'; -import { isBeta } from '../../../helpers/utils/build-types'; - export function AccountMenuItem(props) { const { icon, children, text, subText, className, onClick } = props; @@ -320,11 +324,11 @@ export default class AccountMenu extends Component { } let supportText = t('support'); - let supportLink = 'https://support.metamask.io'; - if (isBeta()) { - supportText = t('needHelpSubmitTicket'); - supportLink = 'https://metamask.zendesk.com/hc/en-us/requests/new'; - } + let supportLink = SUPPORT_LINK; + ///: BEGIN:ONLY_INCLUDE_IN(beta,flask) + supportText = t('needHelpSubmitTicket'); + supportLink = SUPPORT_REQUEST_LINK; + ///: END:ONLY_INCLUDE_IN return (
diff --git a/ui/components/app/account-menu/account-menu.test.js b/ui/components/app/account-menu/account-menu.test.js index 749cb2591..ea23bcacc 100644 --- a/ui/components/app/account-menu/account-menu.test.js +++ b/ui/components/app/account-menu/account-menu.test.js @@ -171,12 +171,12 @@ describe('Account Menu', () => { global.platform = { openTab: sinon.spy() }; it('renders import account item', () => { - support = wrapper.find({ text: 'support' }); + support = wrapper.find({ text: 'needHelpSubmitTicket' }); expect(support).toHaveLength(1); }); it('opens support link when clicked', () => { - support = wrapper.find({ text: 'support' }); + support = wrapper.find({ text: 'needHelpSubmitTicket' }); support.simulate('click'); expect(global.platform.openTab.calledOnce).toStrictEqual(true); }); diff --git a/ui/helpers/constants/common.js b/ui/helpers/constants/common.js index 0231bf85b..d6590d4fd 100644 --- a/ui/helpers/constants/common.js +++ b/ui/helpers/constants/common.js @@ -13,3 +13,15 @@ export const GAS_ESTIMATE_TYPES = { FAST: 'FAST', FASTEST: 'FASTEST', }; + +let _supportLink = 'https://support.metamask.io'; +let _supportRequestLink = 'https://metamask.zendesk.com/hc/en-us/requests/new'; + +///: BEGIN:ONLY_INCLUDE_IN(flask) +_supportLink = 'https://metamask-flask.zendesk.com/hc'; +_supportRequestLink = + 'https://metamask-flask.zendesk.com/hc/en-us/requests/new'; +///: END:ONLY_INCLUDE_IN + +export const SUPPORT_LINK = _supportLink; +export const SUPPORT_REQUEST_LINK = _supportRequestLink; diff --git a/ui/pages/error/error.component.js b/ui/pages/error/error.component.js index eedb1ad64..2e6ede6ca 100644 --- a/ui/pages/error/error.component.js +++ b/ui/pages/error/error.component.js @@ -2,6 +2,7 @@ import React, { PureComponent } from 'react'; import PropTypes from 'prop-types'; import { getEnvironmentType } from '../../../app/scripts/lib/util'; import { ENVIRONMENT_TYPE_POPUP } from '../../../shared/constants/app'; +import { SUPPORT_REQUEST_LINK } from '../../helpers/constants/common'; class ErrorPage extends PureComponent { static contextTypes = { @@ -39,7 +40,7 @@ class ErrorPage extends PureComponent { target="_blank" key="metamaskSupportLink" rel="noopener noreferrer" - href="https://metamask.zendesk.com/hc/en-us/requests/new" + href={SUPPORT_REQUEST_LINK} > {this.context.t('here')} diff --git a/ui/pages/first-time-flow/end-of-flow/end-of-flow.component.js b/ui/pages/first-time-flow/end-of-flow/end-of-flow.component.js index f9ab3bb33..e35e5af37 100644 --- a/ui/pages/first-time-flow/end-of-flow/end-of-flow.component.js +++ b/ui/pages/first-time-flow/end-of-flow/end-of-flow.component.js @@ -3,6 +3,7 @@ import PropTypes from 'prop-types'; import Button from '../../../components/ui/button'; import Snackbar from '../../../components/ui/snackbar'; import MetaFoxLogo from '../../../components/ui/metafox-logo'; +import { SUPPORT_REQUEST_LINK } from '../../../helpers/constants/common'; import { DEFAULT_ROUTE } from '../../../helpers/constants/routes'; import { returnToOnboardingInitiator } from '../onboarding-initiator-util'; @@ -95,7 +96,7 @@ export default class EndOfFlowScreen extends PureComponent { target="_blank" key="metamaskSupportLink" rel="noopener noreferrer" - href="https://metamask.zendesk.com/hc/en-us/requests/new" + href={SUPPORT_REQUEST_LINK} > {this.context.t('here')} diff --git a/ui/pages/home/beta-home-footer.component.js b/ui/pages/home/beta/beta-home-footer.component.js similarity index 54% rename from ui/pages/home/beta-home-footer.component.js rename to ui/pages/home/beta/beta-home-footer.component.js index e56c221e9..886d7ddca 100644 --- a/ui/pages/home/beta-home-footer.component.js +++ b/ui/pages/home/beta/beta-home-footer.component.js @@ -1,21 +1,18 @@ import React from 'react'; -import { useI18nContext } from '../../hooks/useI18nContext'; +import { SUPPORT_REQUEST_LINK } from '../../../helpers/constants/common'; +import { useI18nContext } from '../../../hooks/useI18nContext'; const BetaHomeFooter = () => { const t = useI18nContext(); return ( <> - + {t('needHelpSubmitTicket')} {' '} |{' '} diff --git a/ui/pages/home/flask/flask-home-footer.component.js b/ui/pages/home/flask/flask-home-footer.component.js new file mode 100644 index 000000000..cac819e50 --- /dev/null +++ b/ui/pages/home/flask/flask-home-footer.component.js @@ -0,0 +1,25 @@ +import React from 'react'; +import { SUPPORT_REQUEST_LINK } from '../../../helpers/constants/common'; +import { useI18nContext } from '../../../hooks/useI18nContext'; + +const FlaskHomeFooter = () => { + const t = useI18nContext(); + + return ( + <> + + {t('needHelpSubmitTicket')} + {' '} + |{' '} + + {t('needHelpFeedback')} + + + ); +}; + +export default FlaskHomeFooter; diff --git a/ui/pages/home/home.component.js b/ui/pages/home/home.component.js index 2798b4360..e2b080834 100644 --- a/ui/pages/home/home.component.js +++ b/ui/pages/home/home.component.js @@ -1,6 +1,9 @@ import React, { PureComponent } from 'react'; import PropTypes from 'prop-types'; import { Redirect, Route } from 'react-router-dom'; +///: BEGIN:ONLY_INCLUDE_IN(main) +import { SUPPORT_LINK } from '../../helpers/constants/common'; +///: END:ONLY_INCLUDE_IN import { formatDate } from '../../helpers/utils/util'; import AssetList from '../../components/app/asset-list'; import CollectiblesTab from '../../components/app/collectibles-tab'; @@ -20,8 +23,6 @@ import ActionableMessage from '../../components/ui/actionable-message/actionable import Typography from '../../components/ui/typography/typography'; import { TYPOGRAPHY, FONT_WEIGHT } from '../../helpers/constants/design-system'; -import { isBeta } from '../../helpers/utils/build-types'; - import { ASSET_ROUTE, RESTORE_VAULT_ROUTE, @@ -37,7 +38,12 @@ import { CONFIRMATION_V_NEXT_ROUTE, ADD_COLLECTIBLE_ROUTE, } from '../../helpers/constants/routes'; -import BetaHomeFooter from './beta-home-footer.component'; +///: BEGIN:ONLY_INCLUDE_IN(beta) +import BetaHomeFooter from './beta/beta-home-footer.component'; +///: END:ONLY_INCLUDE_IN +///: BEGIN:ONLY_INCLUDE_IN(flask) +import FlaskHomeFooter from './flask/flask-home-footer.component'; +///: END:ONLY_INCLUDE_IN const LEARN_MORE_URL = 'https://metamask.zendesk.com/hc/en-us/articles/360045129011-Intro-to-MetaMask-v8-extension'; @@ -518,12 +524,11 @@ export default class Home extends PureComponent {
- {isBeta() ? ( - - ) : ( + { + ///: BEGIN:ONLY_INCLUDE_IN(main) t('needHelp', [ , ]) - )} + ///: END:ONLY_INCLUDE_IN + } + { + ///: BEGIN:ONLY_INCLUDE_IN(beta) + + ///: END:ONLY_INCLUDE_IN + } + { + ///: BEGIN:ONLY_INCLUDE_IN(flask) + + ///: END:ONLY_INCLUDE_IN + }
diff --git a/ui/pages/settings/info-tab/info-tab.component.js b/ui/pages/settings/info-tab/info-tab.component.js index 753774567..3dd69e4fd 100644 --- a/ui/pages/settings/info-tab/info-tab.component.js +++ b/ui/pages/settings/info-tab/info-tab.component.js @@ -1,6 +1,10 @@ import React, { PureComponent } from 'react'; import PropTypes from 'prop-types'; import Button from '../../../components/ui/button'; +import { + SUPPORT_LINK, + SUPPORT_REQUEST_LINK, +} from '../../../helpers/constants/common'; import { isBeta } from '../../../helpers/utils/build-types'; export default class InfoTab extends PureComponent { @@ -55,7 +59,7 @@ export default class InfoTab extends PureComponent {