Skip to content

Commit 8c3b6ce

Browse files
[DDW-952] Move Hardware Wallet error message into the message box as a grayed text
1 parent 3c981a7 commit 8c3b6ce

File tree

2 files changed

+69
-52
lines changed

2 files changed

+69
-52
lines changed

source/renderer/app/components/hardware-wallet/HardwareWalletStatus.scss

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
font-size: 16px;
2424
}
2525
}
26-
.passphraseLabel {
26+
.secondaryMessage {
2727
color: var(--theme-hardware-wallet-status-passphrase-label-color);
2828
line-height: 1.38;
2929
}
@@ -75,11 +75,3 @@
7575
}
7676
}
7777
}
78-
79-
.errorText {
80-
color: var(--rp-theme-color-error);
81-
font-family: var(--font-regular);
82-
font-size: 16px;
83-
margin-top: 20px;
84-
text-align: center;
85-
}

source/renderer/app/components/hardware-wallet/HardwareWalletStatus.tsx

Lines changed: 68 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -160,12 +160,53 @@ const messages = defineMessages({
160160
description: '"Address verified" device state',
161161
},
162162
});
163+
164+
const hwDeviceLoadingStatuses = [
165+
HwDeviceStatuses.CONNECTING,
166+
HwDeviceStatuses.LAUNCHING_CARDANO_APP,
167+
HwDeviceStatuses.EXPORTING_PUBLIC_KEY,
168+
HwDeviceStatuses.VERIFYING_TRANSACTION,
169+
HwDeviceStatuses.VERIFYING_ADDRESS,
170+
HwDeviceStatuses.VERIFYING_ADDRESS_CONFIRMATION,
171+
];
172+
173+
const hwDeviceReadyStatuses = [
174+
HwDeviceStatuses.READY,
175+
HwDeviceStatuses.VERIFYING_TRANSACTION_SUCCEEDED,
176+
HwDeviceStatuses.VERIFYING_ADDRESS_SUCCEEDED,
177+
];
178+
179+
const hwDeviceErrorStatuses = [
180+
HwDeviceStatuses.EXPORTING_PUBLIC_KEY_FAILED,
181+
HwDeviceStatuses.CONNECTING_FAILED,
182+
HwDeviceStatuses.TREZOR_BRIDGE_FAILURE,
183+
HwDeviceStatuses.WRONG_FIRMWARE,
184+
HwDeviceStatuses.WRONG_CARDANO_APP_VERSION,
185+
HwDeviceStatuses.UNSUPPORTED_DEVICE,
186+
HwDeviceStatuses.VERIFYING_TRANSACTION_FAILED,
187+
HwDeviceStatuses.VERIFYING_ADDRESS_FAILED,
188+
HwDeviceStatuses.VERIFYING_ADDRESS_ABORTED,
189+
];
190+
191+
const hwDevicePassphraseRelatedStatuses = [
192+
HwDeviceStatuses.EXPORTING_PUBLIC_KEY,
193+
HwDeviceStatuses.VERIFYING_TRANSACTION,
194+
HwDeviceStatuses.VERIFYING_ADDRESS,
195+
];
196+
197+
const hwDeviceInstructionsLinkRelatedStatuses = [
198+
HwDeviceStatuses.TREZOR_BRIDGE_FAILURE,
199+
HwDeviceStatuses.WRONG_CARDANO_APP_VERSION,
200+
HwDeviceStatuses.WRONG_FIRMWARE,
201+
];
202+
163203
type Props = {
164204
hwDeviceStatus: HwDeviceStatus;
165205
onExternalLinkClick?: (...args: Array<any>) => any;
166206
walletName?: string;
167207
isTrezor: boolean;
168208
};
209+
169210
type State = {
170211
hwDeviceStatus: HwDeviceStatus;
171212
};
@@ -207,40 +248,29 @@ class HardwareWalletStatus extends Component<Props, State> {
207248
const { intl } = this.context;
208249
const { onExternalLinkClick, walletName, isTrezor } = this.props;
209250
const { hwDeviceStatus } = this.state;
210-
const isLoading =
211-
hwDeviceStatus === HwDeviceStatuses.CONNECTING ||
212-
hwDeviceStatus === HwDeviceStatuses.LAUNCHING_CARDANO_APP ||
213-
hwDeviceStatus === HwDeviceStatuses.EXPORTING_PUBLIC_KEY ||
214-
hwDeviceStatus === HwDeviceStatuses.VERIFYING_TRANSACTION ||
215-
hwDeviceStatus === HwDeviceStatuses.VERIFYING_ADDRESS ||
216-
hwDeviceStatus === HwDeviceStatuses.VERIFYING_ADDRESS_CONFIRMATION;
217-
const isReady =
218-
hwDeviceStatus === HwDeviceStatuses.READY ||
219-
hwDeviceStatus === HwDeviceStatuses.VERIFYING_TRANSACTION_SUCCEEDED ||
220-
hwDeviceStatus === HwDeviceStatuses.VERIFYING_ADDRESS_SUCCEEDED;
221-
const hasErrored =
222-
hwDeviceStatus === HwDeviceStatuses.EXPORTING_PUBLIC_KEY_FAILED ||
223-
hwDeviceStatus === HwDeviceStatuses.CONNECTING_FAILED ||
224-
hwDeviceStatus === HwDeviceStatuses.TREZOR_BRIDGE_FAILURE ||
225-
hwDeviceStatus === HwDeviceStatuses.WRONG_FIRMWARE ||
226-
hwDeviceStatus === HwDeviceStatuses.WRONG_CARDANO_APP_VERSION ||
227-
hwDeviceStatus === HwDeviceStatuses.UNSUPPORTED_DEVICE ||
228-
hwDeviceStatus === HwDeviceStatuses.VERIFYING_TRANSACTION_FAILED ||
229-
hwDeviceStatus === HwDeviceStatuses.VERIFYING_ADDRESS_FAILED ||
230-
hwDeviceStatus === HwDeviceStatuses.VERIFYING_ADDRESS_ABORTED;
231-
const hasPassphraseLabel =
232-
hwDeviceStatus === HwDeviceStatuses.EXPORTING_PUBLIC_KEY ||
233-
hwDeviceStatus === HwDeviceStatuses.VERIFYING_TRANSACTION ||
234-
hwDeviceStatus === HwDeviceStatuses.VERIFYING_ADDRESS;
235-
const componentClasses = classnames([
236-
styles.component,
237-
isReady ? styles.isReady : null,
238-
hasErrored ? styles.isError : null,
239-
]);
240-
const hasInstructionsLink =
241-
hwDeviceStatus === HwDeviceStatuses.TREZOR_BRIDGE_FAILURE ||
242-
hwDeviceStatus === HwDeviceStatuses.WRONG_CARDANO_APP_VERSION ||
243-
hwDeviceStatus === HwDeviceStatuses.WRONG_FIRMWARE;
251+
const isLoading = hwDeviceLoadingStatuses.includes(hwDeviceStatus);
252+
const isReady = hwDeviceReadyStatuses.includes(hwDeviceStatus);
253+
const isError = hwDeviceErrorStatuses.includes(hwDeviceStatus);
254+
const hasInstructionsLink = hwDeviceInstructionsLinkRelatedStatuses.includes(
255+
hwDeviceStatus
256+
);
257+
258+
const passphraseLabelVisible =
259+
isTrezor && hwDevicePassphraseRelatedStatuses.includes(hwDeviceStatus);
260+
let secondaryMessage = null;
261+
if (passphraseLabelVisible) {
262+
secondaryMessage = messages.enterPassphrase;
263+
} else if (
264+
hwDeviceStatus === HwDeviceStatuses.EXPORTING_PUBLIC_KEY_FAILED
265+
) {
266+
secondaryMessage = messages.exportingPublicKeyError;
267+
}
268+
269+
const componentClasses = classnames(styles.component, {
270+
[styles.isReady]: isReady,
271+
[styles.isError]: isError,
272+
});
273+
244274
let instructionsLink;
245275
let label;
246276

@@ -298,9 +328,9 @@ class HardwareWalletStatus extends Component<Props, State> {
298328
label
299329
)}
300330
</div>
301-
{hasPassphraseLabel && isTrezor && (
302-
<div className={styles.passphraseLabel}>
303-
{intl.formatMessage(messages.enterPassphrase)}
331+
{secondaryMessage && (
332+
<div className={styles.secondaryMessage}>
333+
{intl.formatMessage(secondaryMessage)}
304334
</div>
305335
)}
306336
</div>
@@ -310,15 +340,10 @@ class HardwareWalletStatus extends Component<Props, State> {
310340
{isReady && (
311341
<SVGInline svg={checkIcon} className={styles.checkIcon} />
312342
)}
313-
{hasErrored && (
343+
{isError && (
314344
<SVGInline svg={clearIcon} className={styles.clearIcon} />
315345
)}
316346
</div>
317-
{hwDeviceStatus === HwDeviceStatuses.EXPORTING_PUBLIC_KEY_FAILED && (
318-
<div className={styles.errorText}>
319-
{intl.formatMessage(messages.exportingPublicKeyError)}
320-
</div>
321-
)}
322347
</>
323348
);
324349
}

0 commit comments

Comments
 (0)