@@ -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+
163203type Props = {
164204 hwDeviceStatus : HwDeviceStatus ;
165205 onExternalLinkClick ?: ( ...args : Array < any > ) => any ;
166206 walletName ?: string ;
167207 isTrezor : boolean ;
168208} ;
209+
169210type 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