View on GitHub
File Changes
m
+2/-0
- Fixed handling of duplicated wallet IDs when restoring both legacy and new wallets from the same wallet recovery phrase ([PR 1805](https://github.com/input-output-hk/daedalus/pull/1805))

                      
### Chores
+
- Improved delete wallet text copy ([PR 1819](https://github.com/input-output-hk/daedalus/pull/1819))
- Updated checkboxes, radio buttons and switchers sizes and borders ([PR 1793](https://github.com/input-output-hk/daedalus/pull/1793))
- Updated `cardano-wallet` to revision `132a5faf8c076eb8e873857a15e80db56be7e6ca` ([PR 1740](https://github.com/input-output-hk/daedalus/pull/1740))

                      

                      
### Chores

                      
+
- Updated newsfeed ([PR 1786](https://github.com/input-output-hk/daedalus/pull/1786))
- Changed Incentivized TestNet "Having trouble syncing" URL to point to one specific to TestNet ([PR 1795](https://github.com/input-output-hk/daedalus/pull/1795))
- Updated `cardano-wallet` to revision `d3d93ba3` ([PR 1784](https://github.com/input-output-hk/daedalus/pull/1784))
- Updated `cardano-wallet` to revision `e341d288` ([PR 1779](https://github.com/input-output-hk/daedalus/pull/1779))
  type?: string = ''
): Promise<LegacyAdaWallet> => {
  const queryParams = {};
-

                      
  return request(
    {
      method: 'POST',
  }

                      
  onClose = () => {
-
    const { alerts } = this.props;
+
    const { alerts, onMarkNewsAsRead, onCloseOpenAlert } = this.props;
    if (alerts.length <= 1) {
-
      this.props.onMarkNewsAsRead([alerts[0].date]);
-
      this.props.onCloseOpenAlert();
+
      onMarkNewsAsRead([alerts[0].id]);
+
      onCloseOpenAlert();
      this.setState({ showOverlay: false });
      return;
    }
-
    this.props.onMarkNewsAsRead([alerts[0].date]);
+
    onMarkNewsAsRead([alerts[0].id]);
  };

                      
  onProceedNewsAction = (event: SyntheticMouseEvent<HTMLElement>) => {
            <div className={styles.newsFeedItemsContainer}>
              {news.all.map(newsItem => (
                <NewsItem
-
                  key={newsItem.date}
+
                  key={newsItem.id}
                  newsItem={newsItem}
                  isNewsFeedOpen={isNewsFeedOpen}
                  onMarkNewsAsRead={onMarkNewsAsRead}
      event.preventDefault();
      this.props.onOpenExternalLink(linkUrl);
    } else {
-
      const { type, date } = this.props.newsItem;
+
      const { type, id } = this.props.newsItem;
      const { newsItemCollapsible } = this.state;
      if (type === NewsTypes.INFO || type === NewsTypes.ANNOUNCEMENT) {
        if (newsItemCollapsible) {
        }
      }
      if (NewsTypes.ALERT && this.props.onOpenAlert) {
-
        this.props.onOpenAlert(date);
+
        this.props.onOpenAlert(id);
      }
-
      this.props.onMarkNewsAsRead(date);
+
      this.props.onMarkNewsAsRead(id);
    }
  }

                      
      font-family: var(--font-medium);
      &:after {
        background-color: var(--theme-news-item-action-button-color);
-
        vertical-align: baseline;
      }
    }

                      
    defaultMessage: '!!!Delete wallet',
    description: 'Delete wallet header on the wallet settings page.',
  },
-
  deleteWalletWarning: {
-
    id: 'wallet.settings.deleteWallet.warning',
+
  deleteWalletWarning1: {
+
    id: 'wallet.settings.deleteWallet.warning1',
    defaultMessage:
-
      '!!!Once you delete a wallet, there is no going back. The only way to restore your wallet is to use your recovery phrase.',
+
      '!!!Once you delete this wallet it will be removed from the Daedalus interface and you will lose access to any remaining funds in the wallet. The only way to regain access after deletion is by restoring it using your wallet recovery phrase.',
+
    description: 'Delete wallet warning explaining the consequences.',
+
  },
+
  deleteWalletWarning2: {
+
    id: 'wallet.settings.deleteWallet.warning2',
+
    defaultMessage:
+
      '!!!You may wish to verify your recovery phrase before deletion to ensure that you can restore this wallet in the future, if desired.',
    description: 'Delete wallet warning explaining the consequences.',
  },
  name: {
          <BorderedBox className={deleteWalletBoxStyles}>
            <span>{intl.formatMessage(messages.deleteWalletHeader)}</span>
            <div className={styles.contentBox}>
-
              <p>{intl.formatMessage(messages.deleteWalletWarning)}</p>
+
              <div>
+
                <p>{intl.formatMessage(messages.deleteWalletWarning1)}</p>
+
                <p>{intl.formatMessage(messages.deleteWalletWarning2)}</p>
+
              </div>
              <DeleteWalletButton
                onClick={() =>
                  openDialogAction({
        <BorderedBox className={styles.deleteWalletBox}>
          <span>{intl.formatMessage(messages.deleteWalletHeader)}</span>
          <div className={styles.contentBox}>
-
            <p>{intl.formatMessage(messages.deleteWalletWarning)}</p>
+
            <div>
+
              <p>{intl.formatMessage(messages.deleteWalletWarning1)}</p>
+
              <p>{intl.formatMessage(messages.deleteWalletWarning2)}</p>
+
            </div>
            <DeleteWalletButton
              onClick={() => {
                this.onBlockForm();
      justify-content: space-between;
      line-height: 1.38;
      padding-top: 14px;
+

                      
+
      p:first-child {
+
        margin-bottom: 15px;
+
      }
    }
  }
}
        background-color: var(--theme-label-button-color);
        height: 15px;
        margin-right: 12px;
+
        margin-top: -2px;
        -webkit-mask-size: 15px, 15px;
        mask-size: 15px, 15px;
        vertical-align: middle;
        background-color: var(--theme-label-button-color);
        height: 13px;
        margin-left: 5px;
+
        margin-top: -2px;
        -webkit-mask-size: 13px, 13px;
        mask-size: 13px, 13px;
        vertical-align: middle;
{
-
  "updatedAt": 1569324863299,
+
  "publishedAt": 1569169958620,
  "items": [
    {
+
      "id": 1569152525812,
+
      "title": {
+
        "en-US": "Alert 1 in English",
+
        "ja-JP": "Alert 1 in Japanese"
+
      },
+
      "content": {
+
        "en-US": "# h1 English alert content 1",
+
        "ja-JP": "# h1 Japanese alert content 1"
+
      },
+
      "target": {
+
        "daedalusVersion": ">=2.0.0-ITN1",
+
        "platforms": ["darwin", "win32", "linux"]
+
      },
+
      "action": {
+
        "label": {
+
          "en-US": "Visit en-US",
+
          "ja-JP": "Visit ja-JP"
+
        },
+
        "url": {
+
          "en-US": "https://iohk.zendesk.com/hc/en-us/articles/",
+
          "ja-JP": "https://iohk.zendesk.com/hc/ja/articles/"
+
        }
+
      },
+
      "publishedAt": {
+
        "en-US": 1569152525812,
+
        "ja-JP": 1569152525812
+
      },
+
      "type": "alert"
+
    },
+
    {
+
      "id": 1569238907194,
+
      "title": {
+
        "en-US": "Alert 2 in English",
+
        "ja-JP": "Alert 2 in Japanese"
+
      },
+
      "content": {
+
        "en-US": "# h1 English alert content 2\nUt consequat semper viverra nam libero justo laoreet sit.",
+
        "ja-JP": "# h1 Japanese alert content 2\nUt consequat semper viverra nam libero justo laoreet sit."
+
      },
+
      "target": {
+
        "daedalusVersion": ">=2.0.0-ITN1",
+
        "platforms": ["darwin", "win32", "linux"]
+
      },
+
      "action": {
+
        "label": {
+
          "en-US": "Visit en-US",
+
          "ja-JP": "Visit ja-JP"
+
        },
+
        "url": {
+
          "en-US": "https://iohk.zendesk.com/hc/en-us/articles/",
+
          "ja-JP": "https://iohk.zendesk.com/hc/ja/articles/"
+
        }
+
      },
+
      "publishedAt": {
+
        "en-US": 1569238907194,
+
        "ja-JP": 1569238907194
+
      },
+
      "type": "alert"
+
    },
+
    {
+
      "id": 1569325284166,
+
      "title": {
+
        "en-US": "Alert 3 in English",
+
        "ja-JP": ""
+
      },
+
      "content": {
+
        "en-US": "# h1 English alert content 3\nUt consequat semper viverra nam libero justo laoreet sit.",
+
        "ja-JP": ""
+
      },
+
      "target": {
+
        "daedalusVersion": ">=2.0.0-ITN1",
+
        "platforms": ["darwin", "win32", "linux"]
+
      },
+
      "action": {
+
        "label": {
+
          "en-US": "Visit en-US",
+
          "ja-JP": ""
+
        },
+
        "url": {
+
          "en-US": "https://iohk.zendesk.com/hc/en-us/articles/",
+
          "ja-JP": ""
+
        }
+
      },
+
      "publishedAt": {
+
        "en-US": 1569325284166,
+
        "ja-JP": 1569325284166
+
      },
+
      "type": "alert"
+
    },
+
    {
+
      "id": 1569429144746,
+
      "title": {
+
        "en-US": "Announcement 1 in English",
+
        "ja-JP": "Announcement 1 in Japanese"
+
      },
+
      "content": {
+
        "en-US": "# h1 English announcement content 1\nUt consequat semper viverra nam libero justo laoreet sit.",
+
        "ja-JP": "# h1 Japanese announcement content 1\nUt consequat semper viverra nam libero justo laoreet sit."
+
      },
+
      "target": {
+
        "daedalusVersion": ">=2.0.0-ITN1",
+
        "platforms": ["darwin", "win32", "linux"]
+
      },
+
      "action": {
+
        "label": {
+
          "en-US": "Visit en-US",
+
          "ja-JP": "Visit ja-JP"
+
        },
+
        "url": {
+
          "en-US": "https://iohk.zendesk.com/hc/en-us/articles/",
+
          "ja-JP": "https://iohk.zendesk.com/hc/ja/articles/"
+
        }
+
      },
+
      "publishedAt": {
+
        "en-US": 1569429144746,
+
        "ja-JP": 1569429144746
+
      },
+
      "type": "announcement"
+
    },
+
    {
+
      "id": 1569342749091,
+
      "title": {
+
        "en-US": "Announcement 2 in English",
+
        "ja-JP": "Announcement 2 in Japanese"
+
      },
+
      "content": {
+
        "en-US": "# h1 English announcement content 2\nUt consequat semper viverra nam libero justo laoreet sit.",
+
        "ja-JP": "# h1 Japanese announcement content 2\nUt consequat semper viverra nam libero justo laoreet sit."
+
      },
+
      "target": {
+
        "daedalusVersion": ">=2.0.0-ITN1",
+
        "platforms": ["darwin", "win32", "linux"]
+
      },
+
      "action": {
+
        "label": {
+
          "en-US": "Visit en-US",
+
          "ja-JP": "Visit ja-JP"
+
        },
+
        "url": {
+
          "en-US": "https://iohk.zendesk.com/hc/en-us/articles/",
+
          "ja-JP": "https://iohk.zendesk.com/hc/ja/articles/"
+
        }
+
      },
+
      "publishedAt": {
+
        "en-US": 1569342749091,
+
        "ja-JP": 1569342749091
+
      },
+
      "type": "announcement"
+
    },
+
    {
+
      "id": 1569256354107,
      "title": {
        "en-US": "Info 1 in English",
        "ja-JP": "Info 1 in Japanese"
        "ja-JP": "# h1 Japanese info content 1\nUt consequat semper viverra nam libero justo laoreet sit."
      },
      "target": {
-
        "daedalusVersion": "0.12.0 - 0.14.0",
+
        "daedalusVersion": ">=2.0.0-ITN1",
        "platforms": ["darwin", "win32", "linux"]
      },
      "action": {
          "ja-JP": "https://iohk.zendesk.com/hc/ja/articles/"
        }
      },
-
      "date": 1569324863299,
+
      "publishedAt": {
+
        "en-US": 1569256354107,
+
        "ja-JP": 1569256354107
+
      },
      "type": "info"
    },
    {
+
      "id": 1569169958620,
      "title": {
        "en-US": "Info 2 in English - a little bit longer title",
        "ja-JP": "Info 2 in Japanese"
        "ja-JP": "# h1 Japanese info content 2\n."
      },
      "target": {
-
        "daedalusVersion": "0.12.0 - 0.14.0",
+
        "daedalusVersion": ">=2.0.0-ITN1",
        "platforms": ["darwin", "win32", "linux"]
      },
      "action": {
          "ja-JP": "https://iohk.zendesk.com/hc/ja/articles/"
        }
      },
-
      "date": 1568979341589,
+
      "publishedAt": {
export default class NewsFeedContainer extends Component<InjectedProps> {
  static defaultProps = { actions: null, stores: null };

                      
-
  handleMarkNewsAsRead = (newsTimestamps: number) => {
+
  handleMarkNewsAsRead = (newsId: number) => {
    const { stores } = this.props;
    const { markNewsAsRead } = stores.newsFeed;
-
    markNewsAsRead([newsTimestamps]);
+
    markNewsAsRead([newsId]);
  };

                      
  render() {
const { version, platform } = global.environment;

                      
class News {
+
  @observable id: number;
  @observable title: string;
  @observable content: string;
  @observable target: NewsTarget;
  @observable read: boolean;

                      
  constructor(data: {
+
    id: number,
    title: string,
    content: string,
    target: NewsTarget,
      const availableTargetVersionRange = get(
        newsItem,
        ['target', 'daedalusVersion'],
-
        null
+
        ''
      );
      const targetPlatforms = get(newsItem, ['target', 'platforms']);
      return (
        (!availableTargetVersionRange ||
          (availableTargetVersionRange &&
            semver.satisfies(version, availableTargetVersionRange))) &&
-
        (platform === 'browser' || includes(targetPlatforms, platform))
+
        (platform === 'browser' || includes(targetPlatforms, platform)) &&
+
        newsItem.id &&
+
        newsItem.title &&
+
        newsItem.content &&
+
        newsItem.action.label &&
+
        newsItem.date
      );
    });
+

                      
    const orderedNews = orderBy(filteredNews, 'date', 'desc');
+

                      
    runInAction(() => {
      this.all = orderedNews;
    });
  "wallet.settings.delete.dialog.title": "!!!Delete Wallet",
  "wallet.settings.delete.dialog.wantToDeleteWalletQuestion": "!!!Do you really want to delete <strong>{walletName}</strong> wallet?",
  "wallet.settings.deleteWallet.header": "!!!Delete wallet",
-
  "wallet.settings.deleteWallet.warning": "!!!Once you delete a wallet, there is no going back. The only way to restore your wallet is to use your recovery phrase.",
+
  "wallet.settings.deleteWallet.warning1": "!!!Once you delete this wallet it will be removed from the Daedalus interface and you will lose access to any remaining funds in the wallet. The only way to regain access after deletion is by restoring it using your wallet recovery phrase.",
+
  "wallet.settings.deleteWallet.warning2": "!!!You may wish to verify your recovery phrase before deletion to ensure that you can restore this wallet in the future, if desired.",
  "wallet.settings.deleteWalletButtonLabel": "!!!Delete wallet",
  "wallet.settings.exportToFile.dialog.headline": "!!!Export Wallet",
  "wallet.settings.exportToFile.dialog.introduction": "!!!You are exporting <strong>{walletName}</strong> to a file.",
        "description": "Title for \"Manual update\" overlay",
        "end": {
          "column": 3,
-
          "line": 17
+
          "line": 15
        },
        "file": "source/renderer/app/components/loading/manual-update/ManualUpdate.js",
        "id": "manualUpdate.title",
        "start": {
          "column": 9,
-
          "line": 13
+
          "line": 11
        }
      },
      {
        "defaultMessage": "!!!You are experiencing network connection issues, and you are not running the latest Daedalus version. Automatic updates are unavailable while Daedalus is not connected to Cardano network.",
        "description": "Description line 1 of \"Manual update\" overlay",
        "end": {
          "column": 3,
-
          "line": 23
+
          "line": 21
        },
        "file": "source/renderer/app/components/loading/manual-update/ManualUpdate.js",
        "id": "manualUpdate.description1",
        "start": {
          "column": 20,
-
          "line": 18
+
          "line": 16
        }
      },
      {
        "defaultMessage": "!!!You are currently running <b>{currentAppVersion}</b> version of Daedalus, and <b>{availableAppVersion}</b> version is available. Please manually update to that version since it may resolve your connecting issues.",
        "description": "Description line 2 of \"Manual update\" overlay",
        "end": {
          "column": 3,
-
          "line": 29
+
          "line": 27
        },
        "file": "source/renderer/app/components/loading/manual-update/ManualUpdate.js",
        "id": "manualUpdate.description2",
        "start": {
          "column": 20,
-
          "line": 24
+
          "line": 22
        }
      },
      {
        "defaultMessage": "!!!Follow instructions and manually update",
        "description": "Label for \"Follow instructions and manually update\" action button on \"Manual update\" overlay",
        "end": {
          "column": 3,
-
          "line": 35
+
          "line": 33
        },
        "file": "source/renderer/app/components/loading/manual-update/ManualUpdate.js",
        "id": "manualUpdate.button.label",
        "start": {
          "column": 21,
-
          "line": 30
+
          "line": 28
        }
      },
      {
        "defaultMessage": "!!!https://iohk.zendesk.com/hc/en-us/articles/360023850634",
        "description": "Follow instructions and manually update link on \"Manual update\" overlay",
        "end": {
          "column": 3,
-
          "line": 42
+
          "line": 40
        },
        "file": "source/renderer/app/components/loading/manual-update/ManualUpdate.js",
        "id": "manualUpdate.button.url",
        "start": {
          "column": 25,
-
          "line": 36
+
          "line": 34
        }
      }
    ],
        "description": "Report connecting issue text on the loading screen.",
        "end": {
          "column": 3,
-
          "line": 17
+
          "line": 18
        },
        "file": "source/renderer/app/components/loading/syncing-connecting/ReportIssue.js",
        "id": "loading.screen.reportIssue.connecting.text",
        "start": {
          "column": 29,
-
          "line": 13
+
          "line": 14
        }
      },
      {
        "defaultMessage": "!!!Having trouble syncing?",
        "description": "Report syncing issue text on the loading screen.",
        "end": {
          "column": 3,
-
          "line": 22
+
          "line": 23
        },
        "file": "source/renderer/app/components/loading/syncing-connecting/ReportIssue.js",
        "id": "loading.screen.reportIssue.syncing.text",
        "start": {
          "column": 26,
-
          "line": 18
+
          "line": 19
        }
      },
      {
        "defaultMessage": "!!!Open support ticket",
        "description": "Open support ticket button label on the loading.",
        "end": {
          "column": 3,
-
          "line": 27
+
          "line": 28
        },
        "file": "source/renderer/app/components/loading/syncing-connecting/ReportIssue.js",
        "id": "loading.screen.reportIssue.buttonLabel",
        "start": {
          "column": 26,
-
          "line": 23
+
          "line": 24
        }
      },
      {
        "defaultMessage": "!!!Read the article",
        "description": "Read the article button label on the loading.",
        "end": {
          "column": 3,
-
          "line": 32
+
          "line": 33
        },
        "file": "source/renderer/app/components/loading/syncing-connecting/ReportIssue.js",
        "id": "loading.screen.readArticle.buttonLabel",
        "start": {
          "column": 26,
-
          "line": 28
+
          "line": 29
        }
      },
      {
        "defaultMessage": "!!!Download logs",
        "description": "Download logs button label on the loading.",
        "end": {
          "column": 3,
-
          "line": 37
+
          "line": 38
        },
        "file": "source/renderer/app/components/loading/syncing-connecting/ReportIssue.js",
        "id": "loading.screen.reportIssue.downloadLogsLinkLabel",
        "start": {
          "column": 36,
-
          "line": 33
+
          "line": 34
        }
      },
      {
        "defaultMessage": "!!!https://iohk.zendesk.com/hc/en-us/requests/new/",
        "description": "Link to Open Support page",
        "end": {
          "column": 3,
-
          "line": 42
+
          "line": 43
        },
        "file": "source/renderer/app/components/loading/syncing-connecting/ReportIssue.js",
        "id": "loading.screen.reportIssue.reportIssueButtonUrl",
        "start": {
          "column": 24,
-
          "line": 38
+
          "line": 39
        }
      },
      {
        "defaultMessage": "!!!https://iohk.zendesk.com/hc/en-us/articles/360011536933",
        "description": "Link to sync issue article page",
        "end": {
          "column": 3,
-
          "line": 48
+
          "line": 49
        },
        "file": "source/renderer/app/components/loading/syncing-connecting/ReportIssue.js",
        "id": "loading.screen.readIssueArticle.syncIssueArticleUrl",
        "start": {
          "column": 23,
-
          "line": 43
+
          "line": 44
        }
      },
      {
        "defaultMessage": "!!!https://iohk.zendesk.com/hc/en-us/articles/900000048566",
        "description": "Link to sync issue article page for Incentivized TestNet",
        "end": {
          "column": 3,
-
          "line": 54
+
          "line": 55
        },
        "file": "source/renderer/app/components/loading/syncing-connecting/ReportIssue.js",
  "wallet.settings.changePassword.dialog.spendingPasswordLabel": "Spending password",
  "wallet.settings.changePassword.dialog.title.changePassword": "Change password",
  "wallet.settings.changePassword.dialog.title.setPassword": "Password",
-
  "wallet.settings.delete.dialog.confirmBackupNotice": "Make sure you have access to backup before continuing. Otherwise, you will lose all your funds connected to this wallet.",
+
  "wallet.settings.delete.dialog.confirmBackupNotice": "I understand that the only way to regain access to this wallet is by restoring it with a wallet recovery phrase.",
  "wallet.settings.delete.dialog.confirmButtonLabel": "Delete",
  "wallet.settings.delete.dialog.enterRecoveryWordLabel": "Enter the name of the wallet to confirm deletion:",
  "wallet.settings.delete.dialog.title": "Delete Wallet",
-
  "wallet.settings.delete.dialog.wantToDeleteWalletQuestion": "Do you really want to delete <strong>{walletName}</strong> wallet?",
+
  "wallet.settings.delete.dialog.wantToDeleteWalletQuestion": "Are you sure you want to delete <strong>{walletName}</strong> wallet?",
  "wallet.settings.deleteWallet.header": "Delete wallet",
-
  "wallet.settings.deleteWallet.warning": "Once you delete a wallet, there is no going back. The only way to restore your wallet is to use your recovery phrase.",
+
  "wallet.settings.deleteWallet.warning1": "Once you delete this wallet it will be removed from the Daedalus interface and you will lose access to any remaining funds in the wallet. The only way to regain access after deletion is by restoring it using your wallet recovery phrase.",
+
  "wallet.settings.deleteWallet.warning2": "You may wish to verify your recovery phrase before deletion to ensure that you can restore this wallet in the future, if desired.",
  "wallet.settings.deleteWalletButtonLabel": "Delete wallet",
  "wallet.settings.exportToFile.dialog.headline": "!!!Export Wallet",
  "wallet.settings.exportToFile.dialog.introduction": "!!!You are exporting <strong>{walletName}</strong> to a file.",
  "wallet.settings.delete.dialog.title": "!!!Delete Wallet",
  "wallet.settings.delete.dialog.wantToDeleteWalletQuestion": "!!!Do you really want to delete <strong>{walletName}</strong> wallet?",
  "wallet.settings.deleteWallet.header": "!!!Delete wallet",
-
  "wallet.settings.deleteWallet.warning": "!!!Once you delete a wallet, there is no going back. The only way to restore your wallet is to use your recovery phrase.",
+
  "wallet.settings.deleteWallet.warning1": "!!!Once you delete this wallet it will be removed from the Daedalus interface and you will lose access to any remaining funds in the wallet. The only way to regain access after deletion is by restoring it using your wallet recovery phrase.",
+
  "wallet.settings.deleteWallet.warning2": "!!!You may wish to verify your recovery phrase before deletion to ensure that you can restore this wallet in the future, if desired.",
  "wallet.settings.deleteWalletButtonLabel": "!!!Delete wallet",
  "wallet.settings.exportToFile.dialog.headline": "!!!Export Wallet",
  "wallet.settings.exportToFile.dialog.introduction": "!!!You are exporting <strong>{walletName}</strong> to a file.",
  "wallet.settings.changePassword.dialog.spendingPasswordLabel": "送金時のパスワード",
  "wallet.settings.changePassword.dialog.title.changePassword": "パスワード変更",
  "wallet.settings.changePassword.dialog.title.setPassword": "パスワード",
-
  "wallet.settings.delete.dialog.confirmBackupNotice": "続行する前に、ウォレットの復元フレーズにアクセスできることを確認してください。さもなければこのウォレットに関連している全ての資産を失うことになります。",
+
  "wallet.settings.delete.dialog.confirmBackupNotice": "削除したウォレットに再びアクセスする唯一の方法は、ウォレット復元フレーズを使用して復元することであると理解しました。",
  "wallet.settings.delete.dialog.confirmButtonLabel": "削除",
  "wallet.settings.delete.dialog.enterRecoveryWordLabel": "ウォレット名を入力して削除を確認してください:",
-
  "wallet.settings.delete.dialog.title": "ウォレット削除",
-
  "wallet.settings.delete.dialog.wantToDeleteWalletQuestion": "本当に<strong>{walletName}</strong>を削除しますか?",
-
  "wallet.settings.deleteWallet.header": "ウォレット削除",
-
  "wallet.settings.deleteWallet.warning": "ウォレットの削除は取り消すことができません。ウォレットは復元フレーズを使用することによってのみ復元することができます。",
-
  "wallet.settings.deleteWalletButtonLabel": "ウォレット削除",
+
  "wallet.settings.delete.dialog.title": "ウォレットの削除",
+
  "wallet.settings.delete.dialog.wantToDeleteWalletQuestion": "<strong>{walletName}</strong>ウォレットを削除しますか?",
+
  "wallet.settings.deleteWallet.header": "ウォレットの削除",
+
  "wallet.settings.deleteWallet.warning1": "このウォレットは、一旦削除するとDaedalusインターフェイスから取り除かれ、ウォレットに残っている資金にアクセスできなくなります。削除したウォレットに再びアクセスする唯一の方法は、ウォレット復元フレーズを使用して復元することです。",
+
  "wallet.settings.deleteWallet.warning2": "将来このウォレットが必要となったときに復元できるよう、ウォレットを削除する前に復元フレーズを検証しておくことをお勧めします。",
+
  "wallet.settings.deleteWalletButtonLabel": "ウォレットを削除",
  "wallet.settings.exportToFile.dialog.headline": "!!!Export Wallet",
  "wallet.settings.exportToFile.dialog.introduction": "!!!You are exporting <strong>{walletName}</strong> to a file.",
  "wallet.settings.exportToFile.dialog.submit.label": "!!!Export",
  "wallet.settings.delete.dialog.title": "!!!Delete Wallet",
  "wallet.settings.delete.dialog.wantToDeleteWalletQuestion": "!!!Do you really want to delete <strong>{walletName}</strong> wallet?",
  "wallet.settings.deleteWallet.header": "!!!Delete wallet",
-
  "wallet.settings.deleteWallet.warning": "!!!Once you delete a wallet, there is no going back. The only way to restore your wallet is to use your recovery phrase.",
+
  "wallet.settings.deleteWallet.warning1": "!!!Once you delete this wallet it will be removed from the Daedalus interface and you will lose access to any remaining funds in the wallet. The only way to regain access after deletion is by restoring it using your wallet recovery phrase.",
+
  "wallet.settings.deleteWallet.warning2": "!!!You may wish to verify your recovery phrase before deletion to ensure that you can restore this wallet in the future, if desired.",
  "wallet.settings.deleteWalletButtonLabel": "!!!Delete wallet",
  "wallet.settings.exportToFile.dialog.headline": "!!!Export Wallet",
  "wallet.settings.exportToFile.dialog.introduction": "!!!You are exporting <strong>{walletName}</strong> to a file.",
  "wallet.settings.delete.dialog.title": "!!!Delete Wallet",
  "wallet.settings.delete.dialog.wantToDeleteWalletQuestion": "!!!Do you really want to delete <strong>{walletName}</strong> wallet?",
  "wallet.settings.deleteWallet.header": "!!!Delete wallet",
-
  "wallet.settings.deleteWallet.warning": "!!!Once you delete a wallet, there is no going back. The only way to restore your wallet is to use your recovery phrase.",
+
  "wallet.settings.deleteWallet.warning1": "!!!Once you delete this wallet it will be removed from the Daedalus interface and you will lose access to any remaining funds in the wallet. The only way to regain access after deletion is by restoring it using your wallet recovery phrase.",
+
  "wallet.settings.deleteWallet.warning2": "!!!You may wish to verify your recovery phrase before deletion to ensure that you can restore this wallet in the future, if desired.",
  "wallet.settings.deleteWalletButtonLabel": "!!!Delete wallet",
  "wallet.settings.exportToFile.dialog.headline": "!!!Export Wallet",
  "wallet.settings.exportToFile.dialog.introduction": "!!!You are exporting <strong>{walletName}</strong> to a file.",
  GetNewsResponse,
  GetReadNewsResponse,
  NewsItem,
-
  NewsTimestamp,
  MarkNewsAsReadResponse,
} from '../api/news/types';

                      
-
const { isTest } = global.environment;
+
const { isTest, isDev } = global.environment;

                      
const AVAILABLE_NEWSFEED_EVENT_ACTIONS = [
  'DOWNLOAD_LOGS',
    let rawNews;
    try {
      rawNews = await this.getNewsRequest.execute().promise;
+

                      
      const hasIncident = find(
        rawNews.items,
        news => news.type === NewsTypes.INCIDENT
    }
  };

                      
-
  @action markNewsAsRead = async newsTimestamps => {
+
  @action markNewsAsRead = async newsId => {
    // Set news timestamp to LC
-
    await this.markNewsAsReadRequest.execute(newsTimestamps);
+
    await this.markNewsAsReadRequest.execute(newsId);
    // Get all read news to force @computed change
    await this.getReadNewsRequest.execute();
  };

                      
-
  @action openAlert = (newsTimestamp: NewsTimestamp) => {
+
  @action openAlert = (newsId: number) => {
    if (this.getNewsRequest.wasExecuted) {
      const alertToOpen = this.newsFeedData.alerts.all.find(
-
        newsItem => newsItem.date === newsTimestamp
+
        newsItem => newsItem.id === newsId
      );
      if (alertToOpen) {
        this.openedAlert = alertToOpen;
    }
  };

                      
+
  @action setFakedNewsfeed = () => {
+
    if (isDev) {
+
      if (this.pollingNewsIntervalId) {
+
        clearInterval(this.pollingNewsIntervalId);
+
        this.pollingNewsIntervalId = null;
+
      }
+
      const rawNews = require('../config/news.dummy.json');
+
      this.rawNews = get(rawNews, 'items', []);
+
      this.newsUpdatedAt = get(rawNews, 'updatedAt', null);
+
    }
+
  };
+

                      
  @computed get newsFeedData(): News.NewsCollection {
    const { currentLocale } = this.stores.profile;
    const readNews = this.getReadNewsRequest.result;
    let news = [];
+

                      
    if (this.getNewsRequest.wasExecuted) {
-
      news = map(this.rawNews, item => ({
-
        ...item,
-
        title: item.title[currentLocale],
-
        content: item.content[currentLocale],
-
        action: {
-
          ...item.action,
-
          label: get(item, ['action', 'label', currentLocale]),
-
          url: get(item, ['action', 'url', currentLocale]),
-
          route: get(item, ['action', 'route', currentLocale]),
-
          event: get(item, ['action', 'event', currentLocale]),
-
        },
-
        read: readNews.includes(item.date),
-
      }));
+
      news = map(this.rawNews, item => {
+
        // Match old and new newsfeed JSON format
+
        const mainIdentificator = item.id || item.date;
+
        return {
+
          ...item,
+
          id: mainIdentificator,
+
          title: item.title[currentLocale],
+
          content: item.content[currentLocale],
+
          action: {
+
            label: get(item, ['action', 'label', currentLocale]),
+
            url: get(item, ['action', 'url', currentLocale]),
+
            route: get(item, ['action', 'route', currentLocale]),
+
            event: get(item, ['action', 'event', currentLocale]),
+
          },
+
          date: get(item, ['publishedAt', currentLocale], item.date),
+
          read: readNews.includes(mainIdentificator),
+
        };
+
      });
    }
-

                      
    return new News.NewsCollection(news);
  }

                      
Diff too large – View on GitHub