From 9bdb6aa11daa95af01de39b046251290c77e0419 Mon Sep 17 00:00:00 2001
From: Danilo
Date: Tue, 30 Jul 2019 10:18:15 -0700
Subject: [PATCH] Updates v2-integration branch (#1498)
* [DDW-761] Fix 'To addresses' in the same line (#1476)
* [DDW-761] Fix 'To addresses' in the same line
* [DDW-761] Add 2 'TO' addresses in the Storybook Transactions story
* [DDW-761] Fix address/transaction hover effect
* [DDW-762] Fix broken 'Read the Article' button (#1479)
* [DDW-762] Fix broken 'Read the Article' button
* [DDW-762] CHANGELOG
* [DDW-764] Fix timestamp date format handling (#1482)
* [DDW-757] Implement new themes (#1480)
* [DDW-757] Introduce yellow / white / dark-cardano themes base setup
* [DDW-757] Add new themes to Settings page
* [DDW-757] Run translations manager
* [DDW-757] Add missing config for new themes create/update and theme images
* [DDW-757] Generate css variables for new themes and yellow theme overrides
* [DDW-757] Adjusts buttons colors in all states, and input/select border colors
* [DDW-757] Auto-updates defaultMessages.json
* [DDW-757] Fixes delegation icon in SideBar to use fill/stroke color in CSS vars
* [DDW-757] Fixes delegation-progress icon in SideBar to use fill/stroke color in CSS vars
* [DDW-757] Fixes create paper wallet icon in SideBar to use fill/stroke color in CSS vars
* [DDW-757] Yellow theme fine tuning and storybook menu new themes selection
* [DDW-757] Fix dark cardano theme config and vars creation
* [DDW-757] Introduce Dark-Cardano theme partial varibles override
* [DDW-757] Yellow theme styles improvements
* [DDW-757] Generating new additional variables for all themes
* [DDW-757] Introduce basic layout variables overrides for White theme
* [DDW-757] Small color improvements for BigDialogButtons, StakePool cards and tooltips, delegation dropdowns on Yellow theme
* [DDW-757] Dark-Blue theme border color on stake pool boxes fix
* [DDW-757] Support icon for yellow theme
* [DDW-757] Fix Support icon disappearing
* [DDW-757] Main background color change
* [DDW-757] Yellow theme - about window fixes
* [DDW-757] Stories to get the current theme and dark icon for white theme
* [DDW-757] Yellow theme - about window overlay color
* [DDW-757] Add MINT variations to White theme and settings page translation improvement
* [DDW-757] Adding new theme images for setting page
* [DDW-757] White overrides - WIP
* [DDW-757] Theme buttons better arrangement
* [DDW-757] Finalizing Yellow theme by resolving requested changes
* [DDW-757] Run prettier
* [DDW-757] UTXO graph colors improvement and options list bg color
* [DDW-757] Fix copy notification text color
* [DDW-757] Fix dropdown bg colors
* [DDW-757] Fix support request hover
* [DDW-757] Update dark cardano theme
* [DDW-757] White theme - WIP
* [DDW-757] White theme - Block consolidation done
* [DDW-757] White theme - Paper Wallet
* [DDW-757] White theme - Transactions
* [DDW-757] Matches Block Consolidation screen to mockups in fine detail
* [DDW-757] Imports taller, thinner cross svg for use in About/Block Consolidation screens
* [DDW-757] Replaces hard coded fill value with CSS variable
* [DDW-757] Uses thinner cross in About.js
* [DDW-757] Handles active/pressed button state on Block Consolidation screen
* [DDW-757] Color value adjustments in all theme files
* [DDW-757] Auto update in defaultMessages.json
* [DDW-757] Fixes checkbox and link colors in white theme
* [DDW-757] Fixes flat button on white and dark cardano themes, fixes utxo chart on white theme
* [DDW-757] Updates white theme with fixes
* [DDW-757] Imports correct svg cross icon
* [DDW-757] Fixes remaining issues in white theme and also learn more buttons in dark-cardano
* [DDW-757] Darkens mnemonics background color in white theme
* [DDW-757] White theme CSS fixes
* [DDW-757] Add missing stories
* [DDW-757] Fixes AdaRedemptionSuccessOverlay styles in white, yellow, and dark-cardano themes
* [DDW-757] Fixes AdaRedemptionDisclaimer styles in white, yellow, and dark-cardano themes
* [DDW-757] Fixes button colors on trouble syncing/connecting screens in dark-cardano.js
* [DDW-757] Fixes Data Layer Migration screen in white, yellow, and dark-cardano themes
* [DDW-757] Fixes Data Layer Migration screen in white, yellow, and dark-cardano themes
* [DDW-757] Fixes Node Update Notification in yellow theme
* [DDW-757] Update storybook stories
* [DDW-757] Fixing themes
* [DDW-757] Storybook topbar expand icon, loading wallet progress bar color and UTXO charts on white theme
* [DDW-757] White theme improvements
* [DDW-757] Fixing themes
* [DDW-757] White theme final imporvements
* [DDW-757] Fixing themes
* [DDW-757] Remove testing faked data
* [DDW-757] Run prettier
* [DDW-757] Fixing themes
* [DDW-757] Fixing themes
* [DDW-757] Dark Cardano theme UTXO charts improvements
* [DDW-757] Failed transactions colors imporovement
* [DDW-757] Cardano Dark and White theme improvements
* [DDW-757] Eslint warning and prettier fix
* [DDW-757] Fix storybook restoration progress
* [DDW-757] Different BGs on Overlays
* [DDW-757] Syncing screen - tooltip not visible
* [DDW-757] Wrong border Staking on Staking screens
* [DDW-757] Wrong strip colors on progress bar
* [DDW-757] Dropdown triangle arrow on dark theme
* [DDW-757] Wrong pop-over colors on Delegation Center
* [DDW-757] The final piece of the puzzle
* [DDW-757] Adds CHANGELOG entry
* [DDW-776] Fix wrong styling of the Stake Pool in the Dark Blue theme (#1484)
* DDW-776 Fix wrong styling of the Stake Pool in the Dark Blue theme
* DDW-776 CHANGELOG
* DDW-776 missing border for big pool
* [DDW-776] Stake pool thumb colors improvements
* [DDW-776] Apply new stake pool thumb colors to selection box
* [DDW-777] Implement link to feature requests (#1487)
* [DDW-785] Reverse buttons order (#1489)
* DDW-780 Truncated third Loading Dot. (#1490)
* [DDW-781] Blank Screen Fix - Default Selection. (#1488)
* [DDW-781] Blank Screen Fix - Default Selection.
* [DDW-711] Replaces button No by Cancel
* [DDW-781] Fixes buttons focus
* DDW-781 CHANGELOG
* [DDW-789] Fix focused button of the 'Blank Screen fix' prompt on Windows (#1493)
* [DDW-775] Cardano SL 3.0.3 integration (#1477)
* support haskell.nix builds of cardano
* fix icon on `daedalus.exe`
* implement HSM client
* [DEVOPS-970] re-enable signed uninstallers
fix staging cross build
* [DDW-775] set cardano revision to 3.0.3
* set target to x86_64-windows in build-cross-windows.sh
* add buildNum to release-build and fix suffixes for windows
---
CHANGELOG.md | 11 +-
appveyor.yml | 45 +-
cardano-sl-src.json | 5 +-
default.nix | 76 +-
gulpfile.js | 3 +
installers/daedalus-installer.nix | 1 +
lib.nix | 6 +-
release-build.nix | 17 +
release.nix | 7 +-
scripts/build-cross-windows.sh | 2 +-
shell.nix | 2 +-
source/main/locales/en-US.json | 3 +-
source/main/locales/ja-JP.json | 3 +-
source/main/menus/MenuActions.types.js | 3 +-
source/main/menus/osx.js | 38 +-
source/main/menus/win-linux.js | 39 +-
source/main/utils/buildAppMenus.js | 63 +-
.../block-consolidation/epochs.inline.svg | 18 +
.../assets/images/close-cross-thin.inline.svg | 5 +
.../app/assets/images/header-logo.inline.svg | 10 +
.../sidebar/bug-report-ic-dark.inline.svg | 17 +
.../images/sidebar/delegation-ic.inline.svg | 14 +-
.../sidebar/delegation-progress-ic.inline.svg | 36 +-
.../sidebar/paper-certificate-ic.inline.svg | 16 +-
.../assets/images/success-small.inline.svg | 2 +-
.../app/assets/images/themes/cardano.png | Bin 1180 -> 4566 bytes
.../app/assets/images/themes/dark-blue.png | Bin 1166 -> 4479 bytes
.../app/assets/images/themes/dark-cardano.png | Bin 0 -> 4505 bytes
.../app/assets/images/themes/light-blue.png | Bin 1362 -> 4644 bytes
.../app/assets/images/themes/white.png | Bin 0 -> 4468 bytes
.../app/assets/images/themes/yellow.png | Bin 0 -> 4610 bytes
.../top-bar/node-sync-spinner.inline.svg | 3 +
.../top-bar/node-sync-synced.inline.svg | 6 +
.../renderer/app/components/layout/TopBar.js | 7 +-
.../app/components/layout/TopBar.scss | 15 +-
.../loading/manual-update/ManualUpdate.js | 4 +-
.../loading/manual-update/ManualUpdate.scss | 8 +
.../loading/syncing-connecting/ReportIssue.js | 16 +-
.../SyncingConnectingTitle.scss | 2 +-
.../DataLayerMigrationForm.scss | 7 +-
.../settings/categories/DisplaySettings.js | 79 +-
.../settings/categories/DisplaySettings.scss | 2 +-
.../app/components/sidebar/Sidebar.js | 13 +-
.../app/components/sidebar/Sidebar.scss | 1 +
.../components/sidebar/SidebarCategory.scss | 1 -
.../DelegationStepsChooseStakePoolDialog.scss | 13 +-
.../components/staking/info/StakingInfo.scss | 4 +-
.../renderer/app/components/static/About.js | 7 +-
.../renderer/app/components/static/About.scss | 4 +-
.../status/BlockConsolidationStatus.js | 14 +-
.../status/BlockConsolidationStatus.scss | 38 +-
.../components/status/DaedalusDiagnostics.js | 4 +-
.../status/DaedalusDiagnostics.scss | 10 +
.../AdaRedemptionSuccessOverlay.js | 4 +-
.../AdaRedemptionSuccessOverlay.scss | 19 +-
.../wallet/transactions/Transaction.js | 77 +-
.../wallet/transactions/Transaction.scss | 17 +-
.../components/widgets/NodeSyncStatusIcon.js | 8 +-
.../widgets/NodeSyncStatusIcon.scss | 21 +-
.../widgets/NotificationMessage.scss | 16 +-
source/renderer/app/containers/MainLayout.js | 4 +-
.../status/DaedalusDiagnosticsDialog.js | 2 +-
.../status/DaedalusDiagnosticsDialog.scss | 1 -
.../InstructionsDialogContainer.js | 12 +-
source/renderer/app/i18n/locales/de-DE.json | 3 +
.../app/i18n/locales/defaultMessages.json | 138 ++--
source/renderer/app/i18n/locales/en-US.json | 3 +
source/renderer/app/i18n/locales/hr-HR.json | 3 +
source/renderer/app/i18n/locales/ja-JP.json | 5 +-
source/renderer/app/i18n/locales/ko-KR.json | 3 +
source/renderer/app/i18n/locales/zh-CN.json | 3 +
.../renderer/app/themes/daedalus/cardano.js | 44 +-
.../renderer/app/themes/daedalus/dark-blue.js | 46 +-
.../app/themes/daedalus/dark-cardano.js | 724 ++++++++++++++++++
.../app/themes/daedalus/light-blue.js | 50 +-
source/renderer/app/themes/daedalus/white.js | 717 +++++++++++++++++
source/renderer/app/themes/daedalus/yellow.js | 718 +++++++++++++++++
source/renderer/app/themes/index.js | 3 +
.../app/themes/mixins/animations.scss | 4 +-
source/renderer/app/themes/scripts/update.js | 6 +
source/renderer/app/themes/types.js | 15 +-
.../app/themes/utils/checkCreateTheme.js | 47 +-
source/renderer/app/themes/utils/constants.js | 51 ++
.../renderer/app/themes/utils/createTheme.js | 38 +-
.../renderer/app/themes/utils/findUpdates.js | 56 +-
.../renderer/app/themes/utils/updateThemes.js | 30 +-
.../stories/AdaRedemptionDialog.stories.js | 14 +
.../Loading-DataLayerMigration.stories.js | 9 +
storybook/stories/Loading.stories.js | 4 +-
storybook/stories/Sidebar.stories.js | 8 +
storybook/stories/Staking.stories.js | 11 +-
storybook/stories/TopBar.stories.js | 3 +
storybook/stories/WalletScreens.stories.js | 22 +-
storybook/stories/Widgets.stories.js | 13 +
storybook/stories/support/StoryLayout.js | 12 +-
storybook/stories/support/StoryProvider.js | 29 +
storybook/stories/support/StoryWrapper.js | 6 +
storybook/stories/support/utils.js | 5 +-
yarn2nix.nix | 12 +-
99 files changed, 3323 insertions(+), 413 deletions(-)
create mode 100644 release-build.nix
create mode 100644 source/renderer/app/assets/images/block-consolidation/epochs.inline.svg
create mode 100644 source/renderer/app/assets/images/close-cross-thin.inline.svg
create mode 100644 source/renderer/app/assets/images/header-logo.inline.svg
create mode 100644 source/renderer/app/assets/images/sidebar/bug-report-ic-dark.inline.svg
mode change 100644 => 100755 source/renderer/app/assets/images/themes/cardano.png
mode change 100644 => 100755 source/renderer/app/assets/images/themes/dark-blue.png
create mode 100755 source/renderer/app/assets/images/themes/dark-cardano.png
mode change 100644 => 100755 source/renderer/app/assets/images/themes/light-blue.png
create mode 100755 source/renderer/app/assets/images/themes/white.png
create mode 100755 source/renderer/app/assets/images/themes/yellow.png
create mode 100644 source/renderer/app/assets/images/top-bar/node-sync-spinner.inline.svg
create mode 100644 source/renderer/app/assets/images/top-bar/node-sync-synced.inline.svg
create mode 100644 source/renderer/app/themes/daedalus/dark-cardano.js
create mode 100644 source/renderer/app/themes/daedalus/white.js
create mode 100644 source/renderer/app/themes/daedalus/yellow.js
create mode 100644 storybook/stories/Loading-DataLayerMigration.stories.js
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8170a73c7d..3e125e1444 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,7 +7,7 @@ Changelog
- Implemented guided manual updates ([PR 1410](https://github.com/input-output-hk/daedalus/pull/1410), [PR 1423](https://github.com/input-output-hk/daedalus/pull/1423))
- Application menu improvements:
- - Implemented "Help" application menu item with "Known Issues", "Blank Screen Fix", "Support Request", "Download Logs", "Block Consolidation Status" and "Daedalus Diagnostics" options ([PR 1382](https://github.com/input-output-hk/daedalus/pull/1382), [PR 1459](https://github.com/input-output-hk/daedalus/pull/1459))
+ - Implemented "Help" application menu item with "Known Issues", "Blank Screen Fix", "Feature Request", "Support Request", "Download Logs", "Block Consolidation Status" and "Daedalus Diagnostics" options ([PR 1382](https://github.com/input-output-hk/daedalus/pull/1382), [PR 1459](https://github.com/input-output-hk/daedalus/pull/1459), [PR 1487](https://github.com/input-output-hk/daedalus/issues/1487), [PR 1488](https://github.com/input-output-hk/daedalus/pull/1488), [PR 1493](https://github.com/input-output-hk/daedalus/pull/1493))
- Improved the "Ada redemption" menu item UX by disabling the option while Daedalus is not fully synced ([PR 1458](https://github.com/input-output-hk/daedalus/pull/1458))
- Application dialogs improvements:
- Implemented new "About Us" dialog design ([PR 1369](https://github.com/input-output-hk/daedalus/pull/1369), [PR 1450](https://github.com/input-output-hk/daedalus/pull/1450))
@@ -22,22 +22,23 @@ Changelog
- "Loading" screen improvements:
- Implemented animated Daedalus logo ([PR 1457](https://github.com/input-output-hk/daedalus/pull/1457))
- Implemented status icons ([PR 1325](https://github.com/input-output-hk/daedalus/pull/1325), [PR 1365](https://github.com/input-output-hk/daedalus/pull/1365), [PR 1452](https://github.com/input-output-hk/daedalus/pull/1452))
- - Improved "Having trouble connecting/syncing?" notification ([PR 1453](https://github.com/input-output-hk/daedalus/pull/1453))
+ - Improved "Having trouble connecting/syncing?" notification ([PR 1453](https://github.com/input-output-hk/daedalus/pull/1453), [PR 1479](https://github.com/input-output-hk/daedalus/pull/1479), [PR 1489](https://github.com/input-output-hk/daedalus/pull/1489))
- Improved handling of "Invalid TLS certificate" error ([PR 1344](https://github.com/input-output-hk/daedalus/pull/1344)), ([PR 1471](https://github.com/input-output-hk/daedalus/pull/1471))
- Improved clock synchronisation checks (NTP) ([PR 1462](https://github.com/input-output-hk/daedalus/pull/1462))
- Improved code structure by adding containers for each overlay ([PR 1446](https://github.com/input-output-hk/daedalus/pull/1446))
- Implemented "Wallet UTXO distribution" screen ([PR 1353](https://github.com/input-output-hk/daedalus/pull/1353), [PR 1437](https://github.com/input-output-hk/daedalus/pull/1437))
-- Implemented "External link" icon on all links which open external content ([PR 1447](https://github.com/input-output-hk/daedalus/pull/1447), [PR 1455](https://github.com/input-output-hk/daedalus/pull/1455))
+- Implemented "External link" icon on all links which open external content ([PR 1447](https://github.com/input-output-hk/daedalus/pull/1447), [PR 1455](https://github.com/input-output-hk/daedalus/pull/1455), [PR 1476](https://github.com/input-output-hk/daedalus/pull/1476))
- Implemented "Preparing logs for download" notification ([PR 1341](https://github.com/input-output-hk/daedalus/pull/1341))
- Implemented autmated scrolling of error messages into view ([PR 1383](https://github.com/input-output-hk/daedalus/pull/1383))
-- Implemented timestamp on "Paper wallet certificate" PDF ([PR 1385](https://github.com/input-output-hk/daedalus/pull/1385), [PR 1400](https://github.com/input-output-hk/daedalus/pull/1400))
+- Implemented timestamp on "Paper wallet certificate" PDF ([PR 1385](https://github.com/input-output-hk/daedalus/pull/1385), [PR 1400](https://github.com/input-output-hk/daedalus/pull/1400), [PR 1482](https://github.com/input-output-hk/daedalus/pull/1482))
+- Implemented three new themes: "Yellow", "White" and "Dark Cardano" ([PR 1480](https://github.com/input-output-hk/daedalus/pull/1480))
- "Delegation" screens UI:
- Implemented "Legacy wallet" notification UI ([PR 1409](https://github.com/input-output-hk/daedalus/pull/1409))
- Implemented "Decentralisation countdown" screen UI ([PR 1390](https://github.com/input-output-hk/daedalus/pull/1390))
- Implemented "Staking" screens navigation ([PR 1395](https://github.com/input-output-hk/daedalus/pull/1395), [PR 1400](https://github.com/input-output-hk/daedalus/pull/1400), [PR 1461](https://github.com/input-output-hk/daedalus/pull/1461))
- Implemented "Delegation center" screen UI ([PR 1440](https://github.com/input-output-hk/daedalus/pull/1440), [PR 1463](https://github.com/input-output-hk/daedalus/pull/1463))
- Implemented "Delegation setup" wizard UI ([PR 1416](https://github.com/input-output-hk/daedalus/pull/1416)), [PR 1430](https://github.com/input-output-hk/daedalus/pull/1430), [PR 1439](https://github.com/input-output-hk/daedalus/pull/1439), [PR 1442](https://github.com/input-output-hk/daedalus/pull/1442))
- - Implemented "Stake pools" screen UI ([PR 1397](https://github.com/input-output-hk/daedalus/pull/1397), [PR 1412](https://github.com/input-output-hk/daedalus/pull/1412), [PR 1420](https://github.com/input-output-hk/daedalus/pull/1420), [PR 1429](https://github.com/input-output-hk/daedalus/pull/1429), [PR 1431](https://github.com/input-output-hk/daedalus/pull/1431))
+ - Implemented "Stake pools" screen UI ([PR 1397](https://github.com/input-output-hk/daedalus/pull/1397), [PR 1412](https://github.com/input-output-hk/daedalus/pull/1412), [PR 1420](https://github.com/input-output-hk/daedalus/pull/1420), [PR 1429](https://github.com/input-output-hk/daedalus/pull/1429), [PR 1431](https://github.com/input-output-hk/daedalus/pull/1431), [PR 1484](https://github.com/input-output-hk/daedalus/pull/1484))
- Implemented "Rewards" screen UI ([PR 1403](https://github.com/input-output-hk/daedalus/pull/1403))
- Implemented "Epochs" screen UI ([PR 1418](https://github.com/input-output-hk/daedalus/pull/1418))
- Implemented "Info" screen UI ([PR 1394](https://github.com/input-output-hk/daedalus/pull/1394))
diff --git a/appveyor.yml b/appveyor.yml
index b39e43ed4c..afe4a1a3c2 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -1,49 +1,6 @@
version: "{build}"
-environment:
- nodejs_version: "8"
- AWS_ACCESS_KEY_ID:
- secure: O0+bBTm/Ud3pxP8nvC3ZuDSkmmlr+b8hVluqpRdJGBg=
- AWS_SECRET_ACCESS_KEY:
- secure: DbpP02aDGoC3Tdsi3+ONm8ov0nuXzEF/Yi453SBKj38qjROzvPXo6qW44bYiKBf4
- CERT_PASS:
- secure: Y3pbyZBSORhsefMiSFBBm2nuhHQ2Hmmfppm3E+Fr7U+EXYrXwdCNl8wLwfCCMK2k
- GITHUB_OAUTH_TOKEN:
- secure: prH84TwXLO2CGaiwmipj05AAndcR7bDDxTv9hL8adIpr2bNjrV7pN15JKVmsxISc
- # Avoid long paths on Windows
- STACK_ROOT: "c:\\sr"
-
build: off
-cache:
- - C:\sr -> installers/stack.yaml
-
-install:
- - ps: Install-Product node $env:nodejs_version x64
- - IF NOT DEFINED APPVEYOR_PULL_REQUEST_NUMBER aws s3 cp --region eu-central-1 s3://iohk-private-2/iohk-windows-certificate-5.p12 C:/iohk-windows-certificate.p12
-
test_script:
- - scripts\build-installer-win64.bat %APPVEYOR_BUILD_VERSION%
-
-artifacts:
- - path: release\win32-x64\Daedalus-win32-x64
- name: Daedalus Electron application
- type: zip
- - path: installers\daedalus-*.exe
- name: Daedalus Win64 Installer
- - path: installers\launcher-config-*.yaml
- name: Cardano launcher configuration
- - path: installers\wallet-topology-*.yaml
- name: Wallet topology
-
-deploy:
- provider: S3
- access_key_id:
- secure: IEky6PsMzHaKHNBMxR8tQaQI8X7qWRB9+HuEroTVRBk=
- secret_access_key:
- secure: cqjzG96hWB1x3JDbVSbF9E+aJ5jKvIGacJRUDWATHaTOYfSt6Rvive/NrF4lKBIm
- bucket: appveyor-ci-deploy
- region: ap-northeast-1
- folder:
- artifact: Daedalus Win64 Installer
- set_public: true
+- ps: echo "No Longer Used, windows binaries cross compiled in hydra"
diff --git a/cardano-sl-src.json b/cardano-sl-src.json
index 197d6a2d16..e1bd578c15 100644
--- a/cardano-sl-src.json
+++ b/cardano-sl-src.json
@@ -1,6 +1,7 @@
{
"url": "https://github.com/input-output-hk/cardano-sl",
- "rev": "403e26a1d33623f4537517535b7de37773ae9259",
- "sha256": "1si78f8019j3zh2y1pdx848yni2ykqkq17s18smh89mcnk09z5cq",
+ "rev": "9ff0015ce9e4f366c77e93976e4639077959b836",
+ "date": "2019-07-29T21:46:37-04:00",
+ "sha256": "0hwabpn1p3p8v7mxrvhkyiw9r8laxnrjpl7sjha3lpvg3b7jgwzs",
"fetchSubmodules": false
}
diff --git a/default.nix b/default.nix
index e4e75a14e1..21017c93cb 100644
--- a/default.nix
+++ b/default.nix
@@ -1,7 +1,9 @@
let
localLib = import ./lib.nix;
+ system = builtins.currentSystem; # todo
in
-{ system ? builtins.currentSystem
+{ target ? builtins.currentSystem
+#system ? builtins.currentSystem
, config ? {}
, pkgs ? localLib.iohkNix.getPkgs { inherit system config; }
, cluster ? "mainnet"
@@ -9,6 +11,7 @@ in
, buildNum ? null
, dummyInstaller ? false
, signingKeys ? null
+, HSMServer ? null
, fudgeConfig ? null
}:
@@ -22,7 +25,7 @@ let
}) {};
installPath = ".daedalus";
lib = pkgs.lib;
- cardanoSL = localLib.cardanoSL { inherit system config; };
+ cardanoSL = localLib.cardanoSL { inherit target config; };
cardanoJSON = builtins.fromJSON (builtins.readFile ./cardano-sl-src.json);
cardanoSrc = pkgs.fetchFromGitHub {
owner = "input-output-hk";
@@ -30,6 +33,8 @@ let
rev = cardanoJSON.rev;
sha256 = cardanoJSON.sha256;
};
+ needSignedBinaries = (signingKeys != null) || (HSMServer != null);
+ buildNumSuffix = if buildNum == null then "" else ("-${builtins.toString buildNum}");
cleanSourceFilter = with pkgs.stdenv;
name: type: let baseName = baseNameOf (toString name); in ! (
# Filter out .git repo
@@ -67,16 +72,10 @@ let
# the native makensis binary, with cross-compiled windows stubs
nsis = nsisNixPkgs.callPackage ./nsis.nix {};
- # TODO, put the cross bridge into cardano's default.nix
- crossCompiledCardano = (import (cardanoSrc + "/release.nix") { cardano = { outPath = cardanoSrc; rev = cardanoJSON.rev; }; }).daedalus-mingw32-pkg;
- unsignedUnpackedCardano = pkgs.runCommand "daedalus-bridge" { buildInputs = [ pkgs.unzip ]; } ''
- mkdir $out
- cd $out
- unzip ${self.crossCompiledCardano}/CardanoSL.zip
- '';
- unpackedCardano = if dummyInstaller then self.dummyUnpacked else (if signingKeys != null then self.signedCardano else self.unsignedUnpackedCardano);
+ unsignedUnpackedCardano = cardanoSL.daedalus-bridge;
+ unpackedCardano = if dummyInstaller then self.dummyUnpacked else (if needSignedBinaries then self.signedCardano else self.unsignedUnpackedCardano);
signFile = file: let
- signingScript = pkgs.writeScript "signing-script" ''
+ localSigningScript = pkgs.writeScript "signing-script" ''
#!${pkgs.stdenv.shell}
exec 3>&1
@@ -99,6 +98,28 @@ let
rm -rf $DIR
echo $storePath >&3
'';
+ remoteSigningScript = pkgs.writeScript "signing-script" ''
+ #!${pkgs.stdenv.shell}
+
+ exec 3>&1
+ exec 1>&2
+
+ echo signing "${file}"
+
+ set -e
+
+ DIR=$(realpath $(mktemp -d))
+ cd $DIR
+ FILE=$(basename ${file})
+
+ cat ${file} | ssh ${HSMServer} > $FILE
+
+ storePath=$(nix-store --add-fixed sha256 $FILE)
+ cd /
+ rm -rf $DIR
+ echo $storePath >&3
+ '';
+ signingScript = if (HSMServer != null) then remoteSigningScript else localSigningScript;
# requires --allow-unsafe-native-code-during-evaluation
res = builtins.exec [ signingScript ];
in res;
@@ -106,11 +127,11 @@ let
cp -r ${self.unsignedUnpackedCardano} $out
chmod -R +w $out
cd $out
- rm *.exe
- cp ${self.signFile "${self.unsignedUnpackedCardano}/cardano-launcher.exe"} cardano-launcher.exe
- cp ${self.signFile "${self.unsignedUnpackedCardano}/cardano-node.exe"} cardano-node.exe
- cp ${self.signFile "${self.unsignedUnpackedCardano}/cardano-x509-certificates.exe"} cardano-x509-certificates.exe
- cp ${self.signFile "${self.unsignedUnpackedCardano}/wallet-extractor.exe"} wallet-extractor.exe
+ rm bin/*.exe
+ cp ${self.signFile "${self.unsignedUnpackedCardano}/bin/cardano-launcher.exe"} bin/cardano-launcher.exe
+ cp ${self.signFile "${self.unsignedUnpackedCardano}/bin/cardano-node.exe"} bin/cardano-node.exe
+ cp ${self.signFile "${self.unsignedUnpackedCardano}/bin/cardano-x509-certificates.exe"} bin/cardano-x509-certificates.exe
+ cp ${self.signFile "${self.unsignedUnpackedCardano}/bin/wallet-extractor.exe"} bin/wallet-extractor.exe
'';
dummyUnpacked = pkgs.runCommand "dummy-unpacked-cardano" {} ''
mkdir $out
@@ -149,16 +170,20 @@ let
mkdir $out
cp ${self.signFile "${self.unsignedUninstaller}/uninstall.exe"} $out/uninstall.exe
'';
- uninstaller = if (signingKeys != null) then self.signedUninstaller else self.unsignedUninstaller;
+ uninstaller = if needSignedBinaries then self.signedUninstaller else self.unsignedUninstaller;
- windows-installer = let
+ unsigned-windows-installer = let
mapping = {
mainnet = "Daedalus";
staging = "Daedalus Staging";
testnet = "Daedalus Testnet";
};
installDir = mapping.${cluster};
- in pkgs.runCommand "win64-installer-${cluster}" { buildInputs = [ self.daedalus-installer self.nsis pkgs.unzip self.configMutator pkgs.jq self.yaml2json ]; } ''
+ in pkgs.runCommand "win64-installer-${cluster}" {
+ buildInputs = [
+ self.daedalus-installer self.nsis pkgs.unzip pkgs.jq self.yaml2json
+ ] ++ lib.optional (fudgeConfig != null) self.configMutator;
+ } ''
mkdir home
export HOME=$(realpath home)
@@ -180,8 +205,8 @@ let
pushd dlls
${if dummyInstaller then "touch foo" else "unzip ${self.dlls}"}
popd
- cp -v ${self.unpackedCardano}/* .
- cp ${self.unsignedUninstaller}/uninstall.exe ../uninstall.exe
+ cp -v ${self.unpackedCardano}/{bin,config}/* .
+ cp ${self.uninstaller}/uninstall.exe ../uninstall.exe
cp -v ${self.nsisFiles}/{daedalus.nsi,wallet-topology.yaml,launcher-config.yaml} .
chmod -R +w .
${lib.optionalString (fudgeConfig != null) ''
@@ -198,6 +223,15 @@ let
cp *.yaml $out/cfg-files/
echo file installer $out/*.exe > $out/nix-support/hydra-build-products
'';
+ signed-windows-installer = let
+ backend_version = lib.removeSuffix "\n" (builtins.readFile "${self.unpackedCardano}/version"); # TODO, get from a nix expr
+ frontend_version = (builtins.fromJSON (builtins.readFile ./package.json)).version;
+ fullName = "daedalus-${frontend_version}-cardano-sl-${backend_version}-${cluster}-windows${buildNumSuffix}.exe"; # must match to packageFileName in make-installer
+ in pkgs.runCommand "signed-windows-installer-${cluster}" {} ''
+ mkdir $out
+ cp -v ${self.signFile "${self.unsigned-windows-installer}/${fullName}"} $out/${fullName}
+ '';
+ windows-installer = if needSignedBinaries then self.signed-windows-installer else self.unsigned-windows-installer;
## TODO: move to installers/nix
hsDaedalusPkgs = import ./installers {
diff --git a/gulpfile.js b/gulpfile.js
index d2c72ef51b..2e4211a477 100755
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -136,6 +136,9 @@ gulp.task('prepare:themes:daedalus', () =>
'source/renderer/app/themes/daedalus/cardano.js',
'source/renderer/app/themes/daedalus/dark-blue.js',
'source/renderer/app/themes/daedalus/light-blue.js',
+ 'source/renderer/app/themes/daedalus/dark-cardano.js',
+ 'source/renderer/app/themes/daedalus/yellow.js',
+ 'source/renderer/app/themes/daedalus/white.js',
])
.pipe(flowRemoveTypes())
.pipe(gulp.dest('dist/daedalus'))
diff --git a/installers/daedalus-installer.nix b/installers/daedalus-installer.nix
index d1f13b59ab..f5cd64646a 100644
--- a/installers/daedalus-installer.nix
+++ b/installers/daedalus-installer.nix
@@ -11,6 +11,7 @@ mkDerivation {
src = ./.;
isLibrary = true;
isExecutable = true;
+ doCheck = false;
libraryHaskellDepends = [
aeson base bytestring containers dhall dhall-json directory github
Glob lens-aeson megaparsec microlens network-uri nsis optional-args
diff --git a/lib.nix b/lib.nix
index bb8683cf98..367a37d19d 100644
--- a/lib.nix
+++ b/lib.nix
@@ -15,17 +15,17 @@ let
# NIX_PATH=cardano-sl=/path/to/cardano-sl
# WARNING: currently broken with infinite recursion
- cardanoSL = { config ? {}, system ? builtins.currentSystem }:
+ cardanoSL = { config ? {}, target }:
let try = builtins.tryEval ;
in if try.success
- then builtins.trace "using host " (import try.value { inherit system config; })
+ then builtins.trace "using host " (import try.value { inherit target; })
else
let
spec = builtins.fromJSON (builtins.readFile ./cardano-sl-src.json);
in import (builtins.fetchTarball {
url = "${spec.url}/archive/${spec.rev}.tar.gz";
inherit (spec) sha256;
- }) { inherit system config; gitrev = spec.rev; };
+ }) { inherit target; gitrev = spec.rev; };
# nixpkgs can be overridden for debugging purposes by setting
# NIX_PATH=custom_nixpkgs=/path/to/nixpkgs
diff --git a/release-build.nix b/release-build.nix
new file mode 100644
index 0000000000..fd48715f07
--- /dev/null
+++ b/release-build.nix
@@ -0,0 +1,17 @@
+{
+ buildNum ? null
+}:
+
+let
+ mkWindows = cluster: (import ./. { inherit cluster buildNum; target = "x86_64-windows"; HSMServer = "HSM"; }).windows-installer;
+ mkLinux = cluster: (import ./release.nix { inherit buildNum;}).${cluster}.installer.x86_64-linux;
+ pkgs = (import ./. {}).pkgs;
+in pkgs.runCommand "signed-release" {} ''
+ mkdir $out
+ cp -v ${mkWindows "mainnet"}/*exe $out/
+ cp -v ${mkWindows "staging"}/*exe $out/
+ cp -v ${mkWindows "testnet"}/*exe $out/
+ cp -v ${mkLinux "mainnet"}/*bin $out/
+ cp -v ${mkLinux "staging"}/*bin $out/
+ cp -v ${mkLinux "testnet"}/*bin $out/
+''
diff --git a/release.nix b/release.nix
index 5f74e5f3c2..82dce1423a 100644
--- a/release.nix
+++ b/release.nix
@@ -3,7 +3,8 @@
}:
let
daedalusPkgs = { cluster ? null }: import ./. {
- inherit system buildNum cluster;
+ inherit buildNum cluster;
+ target = system;
version = "${version}${suffix}";
};
shellEnvs = {
@@ -12,7 +13,7 @@ let
};
suffix = if buildNum == null then "" else "-${toString buildNum}";
version = (builtins.fromJSON (builtins.readFile ./package.json)).version;
- daedalusPkgsWithSystem = system: import ./. { inherit system; };
+ daedalusPkgsWithSystem = system: import ./. { target = system; };
yaml2json = {
x86_64-linux = (daedalusPkgsWithSystem "x86_64-linux").yaml2json;
x86_64-darwin = (daedalusPkgsWithSystem "x86_64-darwin").yaml2json;
@@ -25,7 +26,7 @@ let
makeJobs = cluster: with daedalusPkgs { inherit cluster; }; {
daedalus.x86_64-linux = daedalus;
installer.x86_64-linux = wrappedBundle newBundle pkgs cluster daedalus-bridge.version;
- installer.x86_64-windows = (import ./. { inherit cluster; }).windows-installer;
+ installer.x86_64-windows = (import ./. { inherit cluster; target = "x86_64-windows"; }).windows-installer;
};
wrappedBundle = newBundle: pkgs: cluster: cardanoVersion: let
backend = "cardano-sl-${cardanoVersion}";
diff --git a/scripts/build-cross-windows.sh b/scripts/build-cross-windows.sh
index e03ece08f7..6e178a0d17 100755
--- a/scripts/build-cross-windows.sh
+++ b/scripts/build-cross-windows.sh
@@ -16,7 +16,7 @@ CLUSTERS="$(xargs echo -n < "$(dirname "$0")/../installer-clusters.cfg")"
for cluster in ${CLUSTERS}; do
echo '~~~ Building '"${cluster}"' installer'
- nix-build default.nix -A windows-installer --arg signingKeys '{ spc = ./dummy-certs/authenticode.spc; pvk = ./dummy-certs/authenticode.pvk; }' --show-trace --allow-unsafe-native-code-during-evaluation --argstr cluster "$cluster" --argstr buildNum "$BUILDKITE_BUILD_NUMBER"
+ nix-build default.nix -A windows-installer --arg signingKeys '{ spc = ./dummy-certs/authenticode.spc; pvk = ./dummy-certs/authenticode.pvk; }' --show-trace --allow-unsafe-native-code-during-evaluation --argstr cluster "$cluster" --argstr buildNum "$BUILDKITE_BUILD_NUMBER" --argstr target "x86_64-windows"
if [ -n "${BUILDKITE_JOB_ID:-}" ]; then
upload_artifacts_public result/daedalus-*-windows*.exe
fi
diff --git a/shell.nix b/shell.nix
index 4a06243846..88d51c2ce7 100644
--- a/shell.nix
+++ b/shell.nix
@@ -13,7 +13,7 @@ in
}:
let
- daedalusPkgs = import ./. { inherit cluster system; };
+ daedalusPkgs = import ./. { inherit cluster; target = system; };
hostPkgs = import pkgs.path { config = {}; overlays = []; };
yaml2json = pkgs.haskell.lib.disableCabalFlag pkgs.haskellPackages.yaml "no-exe";
yarn = pkgs.yarn.override { inherit nodejs; };
diff --git a/source/main/locales/en-US.json b/source/main/locales/en-US.json
index 41c2e6ecac..d22e87018f 100644
--- a/source/main/locales/en-US.json
+++ b/source/main/locales/en-US.json
@@ -22,12 +22,13 @@
"menu.helpSupport.gpuSafeModeDialogCancel": "Cancel",
"menu.helpSupport.gpuSafeModeDialogConfirm": "Yes",
"menu.helpSupport.gpuSafeModeDialogMessage": "Turn off 'Blank screen fix'? \n \nDisabling the blank screen fix setting will improve the performance of user interface rendering by enabling graphics acceleration, however, some users may find that Daedalus runs better with this setting enabled. If you see a blank screen instead of the Daedalus user interface after disabling this setting and restarting Daedalus, please turn this setting back on. \n \nDo you want to disable this setting and restart Daedalus?",
- "menu.helpSupport.gpuSafeModeDialogNo": "No",
"menu.helpSupport.gpuSafeModeDialogTitle": "Turn off 'Blank screen fix'?",
"menu.helpSupport.knownIssues": "Known Issues",
"menu.helpSupport.knownIssuesUrl": "https://daedaluswallet.io/known-issues/",
"menu.helpSupport.nonGpuSafeModeDialogMessage": "Turn on 'Blank screen fix'? \n \nIf the Daedalus user interface is failing to load then enabling this setting may fix the problem. It will reduce the performance of user interface rendering by disabling graphics acceleration, but some users may find that Daedalus runs better with this setting enabled. \n \nEnable this setting only if the Daedalus user interface is failing to load. If Daedalus is working properly, please click ‘No’. Otherwise, click ‘Yes’ to restart Daedalus with the blank screen fix setting enabled. \n \nDo you want to enable this setting and restart Daedalus?",
"menu.helpSupport.nonGpuSafeModeDialogTitle": "Turn on 'Blank screen fix'?",
+ "menu.helpSupport.featureRequest": "Feature Requests",
+ "menu.helpSupport.featureRequestUrl": "https://iohk.zendesk.com/hc/en-us/sections/360002144373",
"menu.helpSupport.supportRequest": "Support Request",
"menu.helpSupport.supportRequestUrl": "https://iohk.zendesk.com/hc/en-us/requests/new/",
"menu.view": "View",
diff --git a/source/main/locales/ja-JP.json b/source/main/locales/ja-JP.json
index f6009b4a1b..f4c977ea9e 100644
--- a/source/main/locales/ja-JP.json
+++ b/source/main/locales/ja-JP.json
@@ -22,12 +22,13 @@
"menu.helpSupport.gpuSafeModeDialogCancel": "キャンセル",
"menu.helpSupport.gpuSafeModeDialogConfirm": "はい",
"menu.helpSupport.gpuSafeModeDialogMessage": "「ブランク画面修正」を無効にしますか? \n \nブランク画面修正設定を無効にすると、グラフィックアクセラレーションが有効化されてユーザーインターフェイスのレンダリングパフォーマンスが向上しますが、この設定を有効にした方がDaedalusがスムーズに作動する場合があります。この設定を無効にしてDaedalusを再起動した際にDaedalusユーザーインターフェイスの代わりにブランク画面が表示される場合は、この設定をもう一度有効にしてください。 \n \nこの設定を無効にしてDaedalusを再起動しますか。",
- "menu.helpSupport.gpuSafeModeDialogNo": "いいえ",
"menu.helpSupport.gpuSafeModeDialogTitle": "「ブランク画面修正」を無効にしますか?",
"menu.helpSupport.knownIssues": "既知の問題",
"menu.helpSupport.knownIssuesUrl": "https://daedaluswallet.io/ja/known-issues/",
"menu.helpSupport.nonGpuSafeModeDialogMessage": "「ブランク画面修正」を有効にしますか? \n \nDaedalusユーザーインターフェイスがロードに失敗した際、この設定を有効にすることにより問題が解消される場合があります。この場合、グラフィックアクセラレーションが無効化されることでユーザーインターフェイスのレンダリングパフォーマンスが低下しますが、この設定を有効にした方がDaedalusがスムーズに作動する場合があります。 \n \nこの設定はDaedalusユーザーインターフェイスがロードに失敗した場合にのみ有効にしてください。Daedalusが正常に作動している場合は[いいえ]をクリックします。正常に作動していない場合には[はい]をクリックし、ブランク画面修正設定を有効にしてDaedalusを再起動してください。 \n \nこの設定を有効にしてDaedalusを再起動しますか。",
"menu.helpSupport.nonGpuSafeModeDialogTitle": "「ブランク画面修正」を有効にしますか?",
+ "menu.helpSupport.featureRequest": "ご意見、要望",
+ "menu.helpSupport.featureRequestUrl": "https://iohk.zendesk.com/hc/ja/sections/360002144373",
"menu.helpSupport.supportRequest": "サポートリクエスト",
"menu.helpSupport.supportRequestUrl": "https://iohk.zendesk.com/hc/ja/requests/new/",
"menu.view": "見る",
diff --git a/source/main/menus/MenuActions.types.js b/source/main/menus/MenuActions.types.js
index eeb4438c9b..395c52266c 100644
--- a/source/main/menus/MenuActions.types.js
+++ b/source/main/menus/MenuActions.types.js
@@ -1,7 +1,6 @@
// @flow
export type MenuActions = {
- restartInSafeMode: Function,
- restartWithoutSafeMode: Function,
+ toggleOnSafeMode: Function,
openAboutDialog: Function,
openAdaRedemptionScreen: Function,
openBlockConsolidationStatusDialog: Function,
diff --git a/source/main/menus/osx.js b/source/main/menus/osx.js
index 0d83c4e50f..2b74137393 100644
--- a/source/main/menus/osx.js
+++ b/source/main/menus/osx.js
@@ -1,6 +1,6 @@
// @flow
import { compact } from 'lodash';
-import { dialog, shell } from 'electron';
+import { shell } from 'electron';
import type { App, BrowserWindow } from 'electron';
import type { MenuActions } from './MenuActions.types';
import { getTranslation } from '../utils/getTranslation';
@@ -131,35 +131,19 @@ export const osxMenu = (
type: 'checkbox',
checked: isInSafeMode,
click(item) {
- const gpuSafeModeDialogOptions = {
- buttons: [
- translation('helpSupport.gpuSafeModeDialogConfirm'),
- translation('helpSupport.gpuSafeModeDialogNo'),
- translation('helpSupport.gpuSafeModeDialogCancel'),
- ],
- type: 'warning',
- title: isInSafeMode
- ? translation('helpSupport.gpuSafeModeDialogTitle')
- : translation('helpSupport.nonGpuSafeModeDialogTitle'),
- message: isInSafeMode
- ? translation('helpSupport.gpuSafeModeDialogMessage')
- : translation('helpSupport.nonGpuSafeModeDialogMessage'),
- defaultId: 2,
- cancelId: 2,
- };
- dialog.showMessageBox(window, gpuSafeModeDialogOptions, buttonId => {
- if (buttonId === 0) {
- if (isInSafeMode) {
- actions.restartWithoutSafeMode();
- } else {
- actions.restartInSafeMode();
- }
- }
- item.checked = isInSafeMode;
- });
+ actions.toggleOnSafeMode(item);
},
},
{ type: 'separator' },
+ {
+ label: translation('helpSupport.featureRequest'),
+ click() {
+ const featureRequestLinkUrl = translation(
+ 'helpSupport.featureRequestUrl'
+ );
+ shell.openExternal(featureRequestLinkUrl);
+ },
+ },
{
label: translation('helpSupport.supportRequest'),
click() {
diff --git a/source/main/menus/win-linux.js b/source/main/menus/win-linux.js
index 11a736b830..10cacab395 100644
--- a/source/main/menus/win-linux.js
+++ b/source/main/menus/win-linux.js
@@ -1,6 +1,6 @@
// @flow
import { compact } from 'lodash';
-import { dialog, shell } from 'electron';
+import { shell } from 'electron';
import type { App, BrowserWindow } from 'electron';
import type { MenuActions } from './MenuActions.types';
import { getTranslation } from '../utils/getTranslation';
@@ -137,36 +137,19 @@ export const winLinuxMenu = (
type: 'checkbox',
checked: isInSafeMode,
click(item) {
- const gpuSafeModeDialogOptions = {
- buttons: [
- translation('helpSupport.gpuSafeModeDialogConfirm'),
- translation('helpSupport.gpuSafeModeDialogNo'),
- translation('helpSupport.gpuSafeModeDialogCancel'),
- ],
- type: 'warning',
- title: isInSafeMode
- ? translation('helpSupport.gpuSafeModeDialogTitle')
- : translation('helpSupport.nonGpuSafeModeDialogTitle'),
- message: isInSafeMode
- ? translation('helpSupport.gpuSafeModeDialogMessage')
- : translation('helpSupport.nonGpuSafeModeDialogMessage'),
- defaultId: isWindows ? 1 : 2,
- cancelId: 2,
- noLink: true,
- };
- dialog.showMessageBox(window, gpuSafeModeDialogOptions, buttonId => {
- if (buttonId === 0) {
- if (isInSafeMode) {
- actions.restartWithoutSafeMode();
- } else {
- actions.restartInSafeMode();
- }
- }
- item.checked = isInSafeMode;
- });
+ actions.toggleOnSafeMode(item);
},
},
{ type: 'separator' },
+ {
+ label: translation('helpSupport.featureRequest'),
+ click() {
+ const featureRequestLinkUrl = translation(
+ 'helpSupport.featureRequestUrl'
+ );
+ shell.openExternal(featureRequestLinkUrl);
+ },
+ },
{
label: translation('helpSupport.supportRequest'),
click() {
diff --git a/source/main/utils/buildAppMenus.js b/source/main/utils/buildAppMenus.js
index f46a864f8c..f41d2943be 100644
--- a/source/main/utils/buildAppMenus.js
+++ b/source/main/utils/buildAppMenus.js
@@ -1,5 +1,5 @@
// @flow
-import { app, globalShortcut, Menu, BrowserWindow } from 'electron';
+import { app, globalShortcut, Menu, BrowserWindow, dialog } from 'electron';
import { get } from 'lodash';
import { environment } from '../environment';
import { winLinuxMenu } from '../menus/win-linux';
@@ -10,6 +10,7 @@ import { CardanoNode } from '../cardano/CardanoNode';
import { DIALOGS, SCREENS } from '../../common/ipc/constants';
import { showUiPartChannel } from '../ipc/control-ui-parts';
import { getLocale } from './getLocale';
+import { getTranslation } from './getTranslation';
const localesFillForm = {
'en-US': 'English',
@@ -24,6 +25,20 @@ export const buildAppMenus = async (
const { ADA_REDEMPTION } = SCREENS;
const { ABOUT, BLOCK_CONSOLIDATION, DAEDALUS_DIAGNOSTICS } = DIALOGS;
+ const {
+ isMacOS,
+ version,
+ apiVersion,
+ network,
+ build,
+ installerVersion,
+ os,
+ buildNumber,
+ isInSafeMode,
+ } = environment;
+ const translations = require(`../locales/${locale}`);
+ const networkLocale = getLocale(network);
+
const openAboutDialog = () => {
if (mainWindow) showUiPartChannel.send(ABOUT, mainWindow);
};
@@ -54,20 +69,35 @@ export const buildAppMenus = async (
safeExitWithCode(22);
};
- const {
- isMacOS,
- version,
- apiVersion,
- network,
- build,
- installerVersion,
- os,
- buildNumber,
- } = environment;
-
- const translations = require(`../locales/${locale}`);
-
- const networkLocale = getLocale(network);
+ const toggleOnSafeMode = item => {
+ const translation = getTranslation(translations, 'menu');
+ const gpuSafeModeDialogOptions = {
+ buttons: [
+ translation('helpSupport.gpuSafeModeDialogConfirm'),
+ translation('helpSupport.gpuSafeModeDialogCancel'),
+ ],
+ type: 'warning',
+ title: isInSafeMode
+ ? translation('helpSupport.gpuSafeModeDialogTitle')
+ : translation('helpSupport.nonGpuSafeModeDialogTitle'),
+ message: isInSafeMode
+ ? translation('helpSupport.gpuSafeModeDialogMessage')
+ : translation('helpSupport.nonGpuSafeModeDialogMessage'),
+ defaultId: 1,
+ cancelId: 1,
+ noLink: true,
+ };
+ dialog.showMessageBox(mainWindow, gpuSafeModeDialogOptions, buttonId => {
+ if (buttonId === 0) {
+ if (isInSafeMode) {
+ restartWithoutSafeMode();
+ } else {
+ restartInSafeMode();
+ }
+ }
+ item.checked = isInSafeMode;
+ });
+ };
const supportRequestData = {
frontendVersion: version,
@@ -86,8 +116,7 @@ export const buildAppMenus = async (
openAboutDialog,
openDaedalusDiagnosticsDialog,
openAdaRedemptionScreen,
- restartInSafeMode,
- restartWithoutSafeMode,
+ toggleOnSafeMode,
openBlockConsolidationStatusDialog,
};
diff --git a/source/renderer/app/assets/images/block-consolidation/epochs.inline.svg b/source/renderer/app/assets/images/block-consolidation/epochs.inline.svg
new file mode 100644
index 0000000000..08b79b755b
--- /dev/null
+++ b/source/renderer/app/assets/images/block-consolidation/epochs.inline.svg
@@ -0,0 +1,18 @@
+
diff --git a/source/renderer/app/assets/images/close-cross-thin.inline.svg b/source/renderer/app/assets/images/close-cross-thin.inline.svg
new file mode 100644
index 0000000000..1fa2f885e0
--- /dev/null
+++ b/source/renderer/app/assets/images/close-cross-thin.inline.svg
@@ -0,0 +1,5 @@
+
diff --git a/source/renderer/app/assets/images/header-logo.inline.svg b/source/renderer/app/assets/images/header-logo.inline.svg
new file mode 100644
index 0000000000..626c8a33f2
--- /dev/null
+++ b/source/renderer/app/assets/images/header-logo.inline.svg
@@ -0,0 +1,10 @@
+
diff --git a/source/renderer/app/assets/images/sidebar/bug-report-ic-dark.inline.svg b/source/renderer/app/assets/images/sidebar/bug-report-ic-dark.inline.svg
new file mode 100644
index 0000000000..cc4732ddea
--- /dev/null
+++ b/source/renderer/app/assets/images/sidebar/bug-report-ic-dark.inline.svg
@@ -0,0 +1,17 @@
+
diff --git a/source/renderer/app/assets/images/sidebar/delegation-ic.inline.svg b/source/renderer/app/assets/images/sidebar/delegation-ic.inline.svg
index 5ad8321445..11e2d388c2 100644
--- a/source/renderer/app/assets/images/sidebar/delegation-ic.inline.svg
+++ b/source/renderer/app/assets/images/sidebar/delegation-ic.inline.svg
@@ -1,14 +1,14 @@
diff --git a/source/renderer/app/assets/images/sidebar/delegation-progress-ic.inline.svg b/source/renderer/app/assets/images/sidebar/delegation-progress-ic.inline.svg
index 1ccd440fef..0985937afb 100644
--- a/source/renderer/app/assets/images/sidebar/delegation-progress-ic.inline.svg
+++ b/source/renderer/app/assets/images/sidebar/delegation-progress-ic.inline.svg
@@ -1,27 +1,27 @@
diff --git a/source/renderer/app/assets/images/sidebar/paper-certificate-ic.inline.svg b/source/renderer/app/assets/images/sidebar/paper-certificate-ic.inline.svg
index c673dbf88a..afc1e61f81 100644
--- a/source/renderer/app/assets/images/sidebar/paper-certificate-ic.inline.svg
+++ b/source/renderer/app/assets/images/sidebar/paper-certificate-ic.inline.svg
@@ -2,14 +2,14 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/source/renderer/app/assets/images/success-small.inline.svg b/source/renderer/app/assets/images/success-small.inline.svg
index a54111c6e2..98ba5a660d 100644
--- a/source/renderer/app/assets/images/success-small.inline.svg
+++ b/source/renderer/app/assets/images/success-small.inline.svg
@@ -1 +1 @@
-
+
diff --git a/source/renderer/app/assets/images/themes/cardano.png b/source/renderer/app/assets/images/themes/cardano.png
old mode 100644
new mode 100755
index 43af422770035981129e4a83d79f91e93424cfa3..b1f52d80753a80ac2f3e478e5ab655df9d880bcf
GIT binary patch
literal 4566
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
V=R9eV4gOJsm>Mw*a}T;+{yVQIchvv@
literal 1180
zcmY*ZeM}m67zSOfadFw^n3LAlMolx=vSwCA+tIFKr%T5gSIXQVo7-YPsCGDOw2?Z?
zv{R=|ou}4nH8tP{a`lrOv=vDT{VO5gn8d5geR=4nHQS-JPsy`^V*e?|bj_ywCIe
zlB+mQ{U9_1AA-SPLetYI85j&!i#!3rfk@}ZuQ}(DBJ%jL6RB||GKoZ@QmJGzxwEsg
zsi_G7fS#Tn3WZ`anJg9yhr>~;)vc|qjg5_Zy?$_TaCUaqU@*w#a8)|QZv
z;BYvUN~KIDTU%RmyWK{k(dYB6uC5Lb4;K{`)z#Grg+hTqP+VL*G&HobvSPE@5)%_)
z7#x{
z-QC??Utb?bI%u1-PiPIs*}or7oAl;6uWx<4e
z3MZ?o$yzFh^Xhz_@FUEK+)0`FtfjU6Cs?)vq)G`E@8fbfhzYQrhHsf_S_FM4g$c%21U6w`Tfh%+OCs9#xWA}>mz7luGX_?}>Ff=5dTmU)H0fZZ
zS!!Q^UXs%o3L1k8RSKaXHjd5?ogsiTc*SzTM*^nXHK$H-dH>ztdQ*~TRRTmh8>c0M
z$OH!kd7#|Cc4!mOItQ(FD9H*kV%$wgis|5VL(^?bLmsRHa@D2xl>!^MkE8U&U=~N2xFOSD*@b&;;zg4
zuOc|Om?1&8SsiyPhzOn`8UG!TjlBK(pE)3ceg6wa)S<4GfM3_@RT^hAPWuTmyouNT
zamcQ`U_s441$)?AX@IC}`1$CzEV^Cs#uS${CKiOl{4j)`;Ky&}eG1+8Y-39wVn7Iu
t`)}lF<4N*Q?gsrH|05a_nj)QpEeS4rv+H(N6!O=>q^D9T;E^vc{|CsHjb{J=
diff --git a/source/renderer/app/assets/images/themes/dark-blue.png b/source/renderer/app/assets/images/themes/dark-blue.png
old mode 100644
new mode 100755
index 3cefb90395831f5c1929e15835e07ddaaae85498..61d94218d55a9c6124380db4685adf2396052536
GIT binary patch
literal 4479
zcmeHLX;72b8vYVP2_O(a!Ag->l%NQRqM`@{tFkDI><9=IM>ZirWsx-zttcWY6vPmg
z3oXJGs6{MmNEM6=xDaHMm{2K^H35-D0_izlX71nnqj%c5GyTDQ?-v6XID>d{wb9EKYf>6uDzCexpNOj>I~4ccm{^b=^7h=5zCQM~|@{6u;TIxMOkW
zB86GVf7KjuFwg*l*_(a;4BlN|{A7;B7$yzQKh~D!+Y38b9m|=C(!soOiW{~@lfbUg
zd|*vil$&f3jfIN5W=l(K`3|}%r_bqQJ6IIQdPO(d#cJh7{bm1UL!Zhh`}8;^6iuiy&M<{uVzj6JH|eXJ;ijMOL@<_
zpBTN{pLKepKT}eF`uDJ-d(Lh1XC_uE@HxpdAD%5|*qu3crb?cE6Svc7oq1eI>3Lb)
ziMK7+lV@9KA=31mZ6k1snsvd`dV_^l
zQ}4}o%`LE-J$$u{{p_5VmiuPrf8}&Od>~y4S@5i09Pi1=&E<+zEWfvsh)Z53_npBW
zz_$bck80k8K
z!?&u}ZLL>|{1}pK^E{Q^i^GX~^(%C-a`=2}{-pJnVT+%!_-s3(LZB7~gH2U}t19yY
zyJOj@s!!?LwFvC(q!=)r|CYOU_?=$-G@n$tJY6ZZI>&o9Mp^O?*ywVXh8V}3RV2Ao
zvCG|bOT7Y8g8Y@6ru)Z6QdO<|dcvF2$o62!N<+)PXQ$zor{;3?MV}I*JFeZHOG=(<
z%k4?bpr{*okdfRyyQ4J>`~nyHYtKq}Db;;#Q?b(Tb8@RI7uNDOxKw~R(WgiCw_@o*
zoOeDo=|L1--;awd`=S$I0;XrWoQkM)jYA~v4Lw_K-*(}TqAz((_M8!JuqTUkw$s;9
z)9U!|)$0Y!pSsyoMp)cQLu!)x0~5(eb?BHRG5$mG3PXzN!t79`p;VIF;+Q3D5gf?KrL~uigMZ0Inn1#z05oZM
z-iaD$xTSH3Ls?P|*hr=!^y6{^7%huE7d41v+J9^glDM*(z;3(dGzdw!{0y>sE504bob8?@DqJUOU?T+~8CCMhBE
z=;86|C>i-hzeaY%%zz$VQl3EJ;DvZW_X$lIei`6figh5IMh?ed25z@wW%vLxGPmpg
z3YZ8&2si+IvwURu&j7#tU5t!OB_I>NO-Y7N0eJo^6&aaYTBhD9N6(k%m(mwULp{rI
zcy~kb@SvVge5`!_MP4!7<Nr5kwID`+HL`>j4m8H!2DsH2
zH|w60sq=2`?|J4B?ZhHdkq-Q%&3ZZ7>+Im
zzAi~yWe2whts=04@+%79ONmW1M8*1RIdz~9AaLR}WfdeS18+j4J<7DBLmFET0v3fH$u>x8
z%{`FXDQfLOC?g7t#z5bH4bg6Nif{Vc?Bmz{dFdR^>oj9D!e)U=oWr03n(#GFWJEQ1
zVgrmo+`3vEb-_*1*;8rgb6VA#=y?mU=dl6Ue%0-b2HbxE4EvyMDH$bH0tmf#|Adxd
z5D=PI+jJe4^sxbv#xeJ>L^a0&&B^-}H$cs%pt`0`9?q!dW5AwuZ(yMT242O!OAET{
z#w#kAHJN-{#60zlzzstYPnTZ|jt28km9X4^I_P0gNsXo;)HEZ3Y0gQaonboiz!{()
z$AN_;^MLD2E{qjGCfh)x92Q?g{kj1#lq)Pa}Tr4W_
z2@&M4$l@kch{p%^pijbIy()N*ha}hpY=`a8!mXzDrA(V52DoNKMtaI99|H;3Dr}P_
zoBcBGekz*FsxJzIzB$n7?SY%hRA
z?c0OJ1ho4=hxV97G@~Q12F%>aRf^Co>9@gX`~&zWOaJe!A!u2wje5FoW*`#$qJr2T
LaN1wBFYx>y4>4c>
literal 1166
zcmeAS@N?(olHy`uVBq!ia0y~yV7v~*OdQNWk=ZMA^MM?-0G|+7B@;Id3pW)Lx7Mx+
z*+rG9IVF9Qr>mN}K6vop@#Du{!EvWfpDC_v$jmRlbLY%Nl{rdH5
z!II^#UcK72d+*ZatA76c`TqU;`}gnv{{8#=_wSpxY;y~UPRTB6>FjT6@AU|ZS+j1#
zw{PE`J$v^0_3Qly4!(W+_S&^;mo8oY@Zm#EWBc}#HU&ke
zWaO89`SRuS=g*rrZ+`dg-Pf;Q^Gd426Ef`gl8#m9GGv7BnvAt)~
z#HlkUO`BES*#73to0l(N-oAaid%~2ow6wlS)6#NF*(KG)G)(mD0+dbNb!_}p%sdiO
zvURMzq*M(hl=b72vpA&GrPNKhWi+{EHMwLoIixjI%-r0f(m7=``pq|GGcYhKd%8G=
zR4~4|c(jz6QGn&5m@yD|r_EISUvWm^Z63qC%D?`l`hUz_TwKg%+*FjYoMTYDQ&FmN
z&xS{zosGCy5>-Xo5=1%=Md|QuJTcSb&@5%amXIl4OA>V_pRH67dCGlMsG&$TqV$3D
zTB(w&j3%>M#f~g0TXcc5j9b2n;n#dqi9W7QGnT~>53g4UY5eJOGMZJ!ZJ+kJInKc(
zYMs#Qylwy%(DF`1Y|aV2zcl+1n&$
zV)J8HyI9Koe|2+Xoq2ct{9DECs`34=DZB5BcfViDt-A2;bGGoV3$;HIKmQ16Hv97D
z)3tTA66OLe3?h3AYqu4hd$phQ`+*MTw|nj%+RgFXns>%OHP1;ZK(zIB`ZtsI*Gb<(
zo@%Xoq_r+)XVKGBp)p58V-6RJh8K!nf3ricIB4tZtiM0EXqMmgGrSQ
z(Un~bQv3SxuHY^A)>R*U_0CFD==!W3U8{Eh&6x^P3zY7Dv?}6k?9`3tEuVyMsNY&|
z`|S8sklyJab;ll`n)+IER@Lrz$t!oi7V(T(4RppMh+c?2o!L63<-NYMa?5ny
zj%z@-gubtOZnflf^Xm!g($_if(%VsVRbky)cgv4Ew#n^1_SkA`xAyf2a43LX4+;)2
z<81rRTh9xC-p-W<1`9Y0Kp_?-4+^A2pp*UACGXm|3GQ&HHn@I>ZbP}5?IbKc)I$ztaD0e0sy@hR4M=f
diff --git a/source/renderer/app/assets/images/themes/dark-cardano.png b/source/renderer/app/assets/images/themes/dark-cardano.png
new file mode 100755
index 0000000000000000000000000000000000000000..91c1c6e5a2f5b5965840be5bb4adaba896723a85
GIT binary patch
literal 4505
zcmeHLX;f3!7QP9gNub3rC{+QkB7!1Ntpy|?!7@_@rGm`XYEd+ZqJSW9Bc*69paP0Q
z0uBr!2rY9M5)@kdl%Y~U8RNqm1_|*ILO=-boSW74e!TU5bS?k9wfZ9~`{vwz_P6)`
z_ID0k^zv}}NM(%*f*>EcINR?<5P|@F)F>Z-U-sN=4Fz9>$h}Uxkp~?*;|QYe?P72D
zWej0zXenKH-)geBvdfp-^*ynSB6nW6#@OIUT~I2%waxjJliY5Jy0JCWsQ9yOo6PSz
z`1e2CowaxGmTOTB@k7i$x|>K@Wp%XZ$_(B=^N(90nfonpA
z-WVd)Q~2ppC<3)ErVHGIM5>s>cc6_i7)Uf0?gn=NyETz1wCsEQ!NI`(A4hN96YVMU
zEt|AMLkWc38OiS+s1j@4u6cXzvYhE%R^?yr-dcJXSb8{R2IW=eeb^FA;qg9-AP%zux<26z{
z{i0{q_(~WrEMx_7C-v!6|B}SjL-~Fd!jcgOYMAb3&9Wy|N5%C1iMKCPLc5by^9qI<
z^xP)NEpfupXKl%n2H&|vy}_i0e(i+Wz<%yjGu_k8EeYMVAiCJH+$$;DBMasw=r=9?
zYr4Db()H%3W*$oOV<1kPw0_E=tztpah>KZc#fgZNhMIL%LCuZX!EsY7#^;5JS42(G
z3GQq&6O$rea!b5?vFMo9hzn^0Ri+zp_h@l4!;ZMms9C;{GcGL~I5ttDGBmZqrsB1@
ztapgF?EbQ0Q;?wp=$v}d?M=jFO76~?ld+@iyh2Gq$my~{`LlIvB=cF5AGj^PO;sAd
zlfEmw;=DJtRb&4^=XVEtO4krc+chlDOh_hdtNP7l?C_P3FJ1C|=4RIPye?^EQJS^G
zR<bkMQYo2sUbHAUTi)vD0M9-^}XCwLogM@bZ8wrHKXFFzh
zqnfPbw_UuZ)8#>e)&i9&24y{HL;yefXJU3XK5HY3S@6HLgugk
zR-O7$!oM106Q*3$G#-0`Ws6T&YCaAYWO&Lm)OhiS+~aku7ClNj=1{Mj7-Gu2y|DiB
zMSe@7&YE+*GpCrSKM~11af+x^z9)6HT+8F9SONII^B7
z!cKU>%ch0O~{
z$M2R}pF>HCSEupgZ&dAqs)c4^h}vgrZBW1%AtX{n$fhz+s8AFG6#G2&^KDS9y0k%u
z{u4sBvD9l+_WEE4o4(vmUNnKh4jBv7EC+tuoC{H$S_S0A({l>?UM>Ry5p`O{5TeLc
zCPj2~d(#yjC|0SiLu4NdBmMBfe-;*g_38|R`iImDT-2_C2o?zlY-AWu&t
zOL&I2w?&5o(G_Z;Tv-U*vV#9ilCXNB=LmFu)%rf@to<3lS>a
z`}py088Il{!S~$il>o_sQ-o-K##(>HVY~zIEA`hvyr`s2AmIC4*>5qg;bXM#z%++l
zP*Z3IK>a}CE_AJr=HF3|vBP`UuSw%i`3+ozX@OOe_`*X~2p;X?08(`Jdnib;5yhOe
zg5hK#EGej6TyN9{95WC+>)T@3BtS4j6dS0l(S$bbV=%tz$=bMkz71#)r4T4fksgY{tCqm#U7{#3OG{H
zi=72oTY=`V>Oe2YF4F~d)6^_{)>;6`1TVuTeu<1!sBbpN)3a505ax+~0wztbvwa`583#6i
zfl|-A1e3$~F<>IBEqoRFdl5|MdkqxgWCPI==PqpgL=GQt*oMOF_>|50&A(CxwxEdvqd;5td8ymiw5r8p5pr
zv->E`@hb?#>n9+5XSuQZiUp$OnI>zbUyEN
Wx#6pEA^2Yl;^N?8|6uol^Zy1fb%WRd
literal 0
HcmV?d00001
diff --git a/source/renderer/app/assets/images/themes/light-blue.png b/source/renderer/app/assets/images/themes/light-blue.png
old mode 100644
new mode 100755
index d818cca910d347bf5f8f55e965be31d6753cb5c1..84a37416d180ae220004f7f1f171899a72043159
GIT binary patch
literal 4644
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
ee&XMYO@L7V
literal 1362
zcmYjRc~Fvh7$(gf#@RM%rek&8wWgX~bvHZIwN*;Tyz?MXE3CG(tq4VoJP;j^Jj#>O
zXcb#cQ~C^bD+4KStJShZ6w(A0g}4NTz$4xLKA3iz`F%6*?|Gm1d7j_<$CnoplaPS
zgQK$!N2UsdGp$_%djn&0X$^}@%gvmBoI~RG2gMauHt!20VB-p;GF9hGp678gGA!}Y
z)4qkpWtDpVVoI6+nRJ0rvb6k3Z&-ZV{njOzhzv`J&!VT7)D=}URWLZ-Sc*q@Qh7bQ
znBJU0ttVZjI|mclodX~B3llTSqZe{87xN@?O;7(wK}C~Hr5O}V_(oEEuqm%cgtHoL
z+1-|o7hI`A9f7}oD!x!KKFt+O;8SU@xMR^tH}(X?;?rpAIbBU-hg_*ix>mh6kdSqg
zF|X5Wbb6U;uC}RDK0B}0>a{wL=Hjo?X|+!%g|+*R5DrBo
zjZR4XPNn^ZzS8!b>v1gEB_y8lsGHOM259Noe
z1R-Dh(V){WoJ+jniXxR&KOTNB{-D&%$W*+ssq(s3)cNcxW_!Tt^t+86r%A<`)cQzb
zp+Y_X{PoBnUnrXXzd6U80ErxOfSIt*bSE=bu
zO2eIYjX|9j;t1z>dUhjx6TNo8In~u?5x$qOZg61Z#;Y|^YpL6}poThjQ7gAa*&%XK
zwIk;}1T{m}`MdTxgq4qPOE4p_ZH~Qj-8?Osv9`4I*or|rZ1wl=|9W?yeTF@75@@|Q
zV#^!OJXTXRs9`YJy_%m|Hz~K{Rngh&ZRnAw#>dUeN`%O&v_mUPM9s%$$Ndf8e`_Ir
zNh7D6;ffXLW!)=>2%k}jqiA}L^!o;PyzO@p$Mp+Vt!7<0!%jtw3KRmV<0Yny3)W6%
zMai|e7n|X`ou3?RpH*fM&IW5&F%Q>wm1G(kt!>?0-I7<5Q_L!hhaPILclHCgoeQ2Z
zG3wbZoi_6t-T(#df>^r-5$T(K7CZ0`ZE@%c#r=e3`;VW7vSy{XR9xx~Kk#tHlQKA;
z-+feO$DFcbn#XMl2M-g=Ce9cEZ5-vqjf;Fk(W34)C)NE`U97R!hr#wb6#=YkxF0}1
zAIUs8YR$KW6q2yL80<3Z8o<&+TF(kt#Fa=98}Obw{u~^73=P?bgGMWZLRJez!HYqs
zQDd{fq_}v{fk}aMw2;nMai#xue@U>0ES;Huzd?gBZSsI~re>)3K_nc?Y1B97^oByr^f~2%<_b~E{j@LmCW-&Gpu+ep6_oi;D6?@4hu|C5
zzc$?F{NhJfEcK9#o0zid`P>Isg;0$#MFM>Q);A^~)AT}U>--X^hL!`;j6k{(z#*Wf
gN%8=+?r=J+%y9om40#d({wraAhl9MBo~JYZ1D#*$EC2ui
diff --git a/source/renderer/app/assets/images/themes/white.png b/source/renderer/app/assets/images/themes/white.png
new file mode 100755
index 0000000000000000000000000000000000000000..4b49c4f1bb0ef04e66c6c2fc6676a21a3c0ab5e0
GIT binary patch
literal 4468
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
+
+
diff --git a/source/renderer/app/assets/images/top-bar/node-sync-synced.inline.svg b/source/renderer/app/assets/images/top-bar/node-sync-synced.inline.svg
new file mode 100644
index 0000000000..2292357252
--- /dev/null
+++ b/source/renderer/app/assets/images/top-bar/node-sync-synced.inline.svg
@@ -0,0 +1,6 @@
+
diff --git a/source/renderer/app/components/layout/TopBar.js b/source/renderer/app/components/layout/TopBar.js
index e9311dadff..d233753a26 100644
--- a/source/renderer/app/components/layout/TopBar.js
+++ b/source/renderer/app/components/layout/TopBar.js
@@ -9,6 +9,7 @@ import LegacyNotification from '../notifications/LegacyNotification';
import Wallet from '../../domains/Wallet';
import styles from './TopBar.scss';
import { formattedWalletAmount } from '../../utils/formatters';
+import headerLogo from '../../assets/images/header-logo.inline.svg';
type Props = {
onLeftIconClick?: ?Function,
@@ -54,7 +55,11 @@ export default class TopBar extends Component {
{leftIconSVG}
)}
- {topBarTitle}
+ {activeWallet ? (
+ {topBarTitle}
+ ) : (
+
+ )}
{children}
{activeWallet && activeWallet.isLegacy && (
diff --git a/source/renderer/app/components/layout/TopBar.scss b/source/renderer/app/components/layout/TopBar.scss
index 2a6a670014..2d3c7dba15 100644
--- a/source/renderer/app/components/layout/TopBar.scss
+++ b/source/renderer/app/components/layout/TopBar.scss
@@ -8,9 +8,19 @@
z-index: 100;
&.withoutWallet {
- background: var(--theme-topbar-background-color)
+ /* background: var(--theme-topbar-background-color)
url('../../assets/images/header-logo.svg') no-repeat center !important;
- background-size: 61px !important;
+ background-size: 61px !important; */
+
+ .headerLogo {
+ margin: auto;
+ width: 61px;
+ svg {
+ g {
+ fill: var(--theme-topbar-logo-color);
+ }
+ }
+ }
}
&.withWallet {
@@ -21,7 +31,6 @@
flex-direction: column;
font-family: var(--font-regular);
text-align: center;
- text-shadow: 0 2.5px 10px rgba(0, 0, 0, 0.25);
user-select: text;
.walletName {
diff --git a/source/renderer/app/components/loading/manual-update/ManualUpdate.js b/source/renderer/app/components/loading/manual-update/ManualUpdate.js
index 3c2dea3031..ccab22f1ae 100644
--- a/source/renderer/app/components/loading/manual-update/ManualUpdate.js
+++ b/source/renderer/app/components/loading/manual-update/ManualUpdate.js
@@ -94,7 +94,9 @@ export default class ManualUpdate extends Component {
svg={linkNewWindow}
className={styles.linkNewWindow}
/>
- {formatMessage(messages.actionButtonLabel)}
+
+ {formatMessage(messages.actionButtonLabel)}
+
}
onClick={() =>
diff --git a/source/renderer/app/components/loading/manual-update/ManualUpdate.scss b/source/renderer/app/components/loading/manual-update/ManualUpdate.scss
index 389e0684fe..01117360d0 100644
--- a/source/renderer/app/components/loading/manual-update/ManualUpdate.scss
+++ b/source/renderer/app/components/loading/manual-update/ManualUpdate.scss
@@ -69,6 +69,10 @@
}
}
+ .btnLabel {
+ color: var(--theme-manual-update-overlay-button-label-color);
+ }
+
&:not(.disabled):hover {
background-color: var(
--theme-manual-update-overlay-button-background-color-hover
@@ -85,6 +89,10 @@
}
}
}
+
+ .btnLabel {
+ color: var(--theme-manual-update-overlay-button-label-color-hover);
+ }
}
}
}
diff --git a/source/renderer/app/components/loading/syncing-connecting/ReportIssue.js b/source/renderer/app/components/loading/syncing-connecting/ReportIssue.js
index a86d71ccd8..829b819e79 100644
--- a/source/renderer/app/components/loading/syncing-connecting/ReportIssue.js
+++ b/source/renderer/app/components/loading/syncing-connecting/ReportIssue.js
@@ -112,33 +112,33 @@ export default class ReportIssue extends Component {
: intl.formatMessage(messages.reportSyncingIssueText)}