import React from 'react'; import { HELP_ARTICLE } from 'config'; import './InsecureWalletWarning.scss'; import translate from 'translations'; import { knowledgeBaseURL } from 'config/data'; interface Props { walletType: string | React.ReactElement; onContinue(): void; onCancel(): void; } interface State { hasConfirmedSite: boolean; hasAcknowledgedDownload: boolean; hasAcknowledgedWallets: boolean; } interface Checkbox { name: keyof State; label: string | React.ReactElement; } export class InsecureWalletWarning extends React.Component { public state: State = { hasConfirmedSite: false, hasAcknowledgedDownload: false, hasAcknowledgedWallets: false }; constructor(props: Props) { super(props); if (process.env.BUILD_DOWNLOADABLE) { props.onContinue(); } } public render() { if (process.env.BUILD_DOWNLOADABLE) { return null; } const { walletType, onContinue, onCancel } = this.props; const checkboxes: Checkbox[] = [ { name: 'hasAcknowledgedWallets', label: translate('INSECURE_WALLET_WARNING_1') }, { name: 'hasAcknowledgedDownload', label: translate('INSECURE_WALLET_WARNING_2') }, { name: 'hasConfirmedSite', label: translate('INSECURE_WALLET_WARNING_3') } ]; const canContinue = checkboxes.reduce( (prev, checkbox) => prev && this.state[checkbox.name], true ); return (

{translate('INSECURE_WALLET_TYPE_TITLE')}

{translate('INSECURE_WALLET_TYPE_DESC', { $wallet_type: walletType as string })}

  • {translate('INSECURE_WALLET_RECOMMEND_1', { $metamask_article: knowledgeBaseURL + '/' + HELP_ARTICLE.MIGRATE_TO_METAMASK, $hardware_wallet_article: knowledgeBaseURL + '/' + HELP_ARTICLE.HARDWARE_WALLET_RECOMMENDATIONS })}
  • {translate('INSECURE_WALLET_RECOMMEND_2', { $run_local_article: knowledgeBaseURL + '/' + HELP_ARTICLE.RUNNING_LOCALLY })}
  • {translate('INSECURE_WALLET_RECOMMEND_3', { $secure_your_eth_article: knowledgeBaseURL + '/' + HELP_ARTICLE.SECURING_YOUR_ETH })}

{translate('WALLET_WARNING_CHECK', { $wallet_type: walletType as string })}

{checkboxes.map(this.makeCheckbox)}
); } private makeCheckbox = (checkbox: Checkbox) => { return ( ); }; private handleCheckboxChange = (ev: React.FormEvent) => { this.setState({ [ev.currentTarget.name as any]: !!ev.currentTarget.checked }); }; }