Skip to content

Commit 75d3cf6

Browse files
Fixed sign transactions button states (#87)
1 parent 244a1a3 commit 75d3cf6

File tree

5 files changed

+40
-12
lines changed

5 files changed

+40
-12
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
88
## [Unreleased]
99

1010
- [Added providers customization support](https://github.com/multiversx/mx-sdk-dapp-core-ui/pull/89)
11+
- [Fixed sign transactions button states](https://github.com/multiversx/mx-sdk-dapp-core-ui/pull/87)
1112

1213
## [[0.0.0-alpha.13](https://github.com/multiversx/mx-sdk-dapp-core-ui/pull/88)] - 2025-05-02
1314

src/components/functional/sign-transactions-panel/components/sign-transaction-component/sign-transaction-component.tsx

Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import type { VNode } from '@stencil/core';
2-
import { Component, h, Prop } from '@stencil/core';
2+
import { Component, h, Prop, State } from '@stencil/core';
33
import { DataTestIdsEnum } from 'constants/dataTestIds.enum';
44
import { formatAddress } from 'utils/utils';
55

@@ -12,23 +12,43 @@ import state from '../../signTransactionsPanelStore';
1212
export class SignTransaction {
1313
@Prop() header: VNode;
1414

15+
@State() isConfirming: boolean = false;
16+
17+
private previousIndex: number = -1;
18+
19+
componentWillRender() {
20+
const { currentIndex } = state.commonData;
21+
22+
if (this.previousIndex !== -1 && currentIndex !== this.previousIndex) {
23+
this.isConfirming = false;
24+
}
25+
26+
this.previousIndex = currentIndex;
27+
}
28+
29+
onConfirm() {
30+
this.isConfirming = true;
31+
state.onConfirm();
32+
}
33+
1534
getSignButtonProps() {
16-
const { needsSigning } = state.commonData;
35+
const { needsSigning, providerName } = state.commonData;
36+
const confirmText = providerName ? `Confirm on ${providerName}` : 'Confirm';
1737

1838
if (needsSigning) {
1939
return {
20-
'signText': 'Sign',
21-
'disabled': state.isWaitingForSignature,
40+
'signText': this.isConfirming ? confirmText : 'Sign',
41+
'disabled': state.isWaitingForSignature || this.isConfirming,
2242
'data-testid': DataTestIdsEnum.signTransactionBtn,
23-
'onClick': state.onConfirm,
43+
'onClick': this.onConfirm.bind(this),
2444
};
2545
}
2646

2747
return {
2848
'signText': 'Next',
2949
'disabled': false,
3050
'data-testid': DataTestIdsEnum.signNextTransactionBtn,
31-
'onClick': state.onConfirm,
51+
'onClick': this.onConfirm.bind(this),
3252
};
3353
}
3454

@@ -52,7 +72,7 @@ export class SignTransaction {
5272
'data-testid': DataTestIdsEnum.signBackBtn,
5373
'backButtonText': 'Back',
5474
'onClick': state.onBack,
55-
'disabled': state.isWaitingForSignature,
75+
'disabled': state.isWaitingForSignature || this.isConfirming,
5676
};
5777
}
5878

src/components/functional/sign-transactions-panel/sign-transactions-panel.css

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
width: 450px;
1515
max-width: 100%;
1616
padding: 0;
17-
background-color: #ffffff;
1817
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
1918
}
2019

@@ -47,3 +46,10 @@
4746
flex: 1;
4847
overflow-y: auto;
4948
}
49+
50+
51+
.sign-transactions-panel,
52+
.sign-transactions-header *,
53+
.sign-transactions-body * {
54+
color: #ffffff !important;
55+
}

src/components/functional/sign-transactions-panel/sign-transactions-panel.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ import { SignEventsEnum } from './sign-transactions-panel.types';
77
import state, { resetState } from './signTransactionsPanelStore';
88

99
const signScreens = {
10-
FungibleESDT: 'token-component',
11-
SemiFungibleESDT: 'fungible-component',
12-
NonFungibleESDT: 'fungible-component',
13-
MetaESDT: 'token-component',
10+
FungibleESDT: 'mvx-token-component',
11+
SemiFungibleESDT: 'mvx-fungible-component',
12+
NonFungibleESDT: 'mvx-fungible-component',
13+
MetaESDT: 'mvx-token-component',
1414
};
1515

1616
@Component({

src/components/functional/sign-transactions-panel/sign-transactions-panel.types.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ export interface ISignTransactionsPanelCommonData {
4040
highlight?: string | null;
4141
scCall?: string | null;
4242
nextUnsignedTxIndex?: number;
43+
providerName?: string;
4344
}
4445

4546
export interface ISignTransactionsPanelData {

0 commit comments

Comments
 (0)