diff --git a/src/Makefile.qt.include b/src/Makefile.qt.include
index c36b050572..775bc28a96 100644
--- a/src/Makefile.qt.include
+++ b/src/Makefile.qt.include
@@ -444,6 +444,7 @@ QML_RES_QML = \
qml/pages/wallet/CreatePassword.qml \
qml/pages/wallet/CreateWalletWizard.qml \
qml/pages/wallet/DesktopWallets.qml \
+ qml/pages/wallet/RequestConfirmation.qml \
qml/pages/wallet/RequestPayment.qml \
qml/pages/wallet/WalletBadge.qml \
qml/pages/wallet/WalletSelect.qml
diff --git a/src/qml/bitcoin_qml.qrc b/src/qml/bitcoin_qml.qrc
index 16c2d88d9c..b82aeed18e 100644
--- a/src/qml/bitcoin_qml.qrc
+++ b/src/qml/bitcoin_qml.qrc
@@ -78,6 +78,7 @@
pages/wallet/CreatePassword.qml
pages/wallet/CreateWalletWizard.qml
pages/wallet/DesktopWallets.qml
+ pages/wallet/RequestConfirmation.qml
pages/wallet/RequestPayment.qml
pages/wallet/WalletBadge.qml
pages/wallet/WalletSelect.qml
diff --git a/src/qml/pages/wallet/RequestConfirmation.qml b/src/qml/pages/wallet/RequestConfirmation.qml
new file mode 100644
index 0000000000..aed4931ab5
--- /dev/null
+++ b/src/qml/pages/wallet/RequestConfirmation.qml
@@ -0,0 +1,167 @@
+// Copyright (c) 2024 The Bitcoin Core developers
+// Distributed under the MIT software license, see the accompanying
+// file COPYING or http://www.opensource.org/licenses/mit-license.php.
+
+import QtQuick 2.15
+import QtQuick.Controls 2.15
+import QtQuick.Layouts 1.15
+import org.bitcoincore.qt 1.0
+
+import "../../controls"
+import "../../components"
+import "../settings"
+
+Page {
+ id: root
+ background: null
+ property string label: "alice"
+ property string message: "payment for goods"
+ property string amount: "0.000"
+
+ header: NavigationBar2 {
+ id: navbar
+ leftItem: NavButton {
+ iconSource: "image://images/caret-left"
+ text: qsTr("Back")
+ onClicked: {
+ root.StackView.view.pop()
+ }
+ }
+ centerItem: Item {
+ id: header
+ Layout.fillWidth: true
+
+ CoreText {
+ anchors.left: parent.left
+ text: qsTr("Payment request")
+ font.pixelSize: 21
+ bold: true
+ }
+ }
+ }
+
+ ScrollView {
+ clip: true
+ width: parent.width
+ height: parent.height
+ contentWidth: width
+
+ ColumnLayout {
+ id: columnLayout
+ anchors.horizontalCenter: parent.horizontalCenter
+ width: Math.min(parent.width, 450)
+ spacing: 30
+
+ Image {
+ width: 60
+ height: 60
+ Layout.alignment: Qt.AlignHCenter
+ source: "image://images/pending"
+ sourceSize.width: 60
+ sourceSize.height: 60
+ }
+
+ CoreText {
+ Layout.alignment: Qt.AlignHCenter
+ text: qsTr("Created just now")
+ color: Theme.color.neutral7
+ font.pixelSize: 18
+ }
+
+ LabeledTextInput {
+ id: labelInput
+ Layout.fillWidth: true
+ labelText: qsTr("Label")
+ visible: label != ""
+ enabled: false
+ text: label
+ }
+
+ Item {
+ BitcoinAmount {
+ id: bitcoinAmount
+ }
+
+ height: 50
+ Layout.fillWidth: true
+ visible: amount != ""
+ CoreText {
+ anchors.left: parent.left
+ anchors.top: parent.top
+ color: Theme.color.neutral7
+ text: qsTr("Amount")
+ font.pixelSize: 15
+ }
+
+ TextField {
+ id: bitcoinAmountText
+ anchors.left: parent.left
+ anchors.bottom: parent.bottom
+ leftPadding: 0
+ font.family: "Inter"
+ font.styleName: "Regular"
+ font.pixelSize: 18
+ color: Theme.color.neutral9
+ placeholderTextColor: Theme.color.neutral7
+ background: Item {}
+ placeholderText: "0.00000000"
+ text: request.amount
+ enabled: false
+ onTextChanged: {
+ bitcoinAmountText.text = bitcoinAmount.sanitize(bitcoinAmountText.text)
+ }
+ }
+ }
+
+
+ LabeledTextInput {
+ id: messageInput
+ Layout.fillWidth: true
+ labelText: qsTr("Message")
+ visible: message != ""
+ enabled: false
+ text: message
+ }
+
+ Item {
+ height: addressLabel.height + addressText.height
+ Layout.fillWidth: true
+ CoreText {
+ id: addressLabel
+ anchors.left: parent.left
+ anchors.top: parent.top
+ color: Theme.color.neutral7
+ text: qsTr("Address")
+ font.pixelSize: 15
+ }
+
+ CoreText {
+ id: addressText
+ anchors.left: parent.left
+ anchors.right: copyIcon.left
+ anchors.top: addressLabel.bottom
+ leftPadding: 0
+ font.family: "Inter"
+ font.styleName: "Regular"
+ font.pixelSize: 18
+ horizontalAlignment: Text.AlignLeft
+ color: Theme.color.neutral9
+ text: "bc1q wvlv mha3 cvhy q6qz tjzu mq2d 63ff htzy xxu6 q8"
+ }
+
+ Icon {
+ id: copyIcon
+ anchors.right: parent.right
+ anchors.verticalCenter: addressText.verticalCenter
+ source: "image://images/copy"
+ color: Theme.color.neutral8
+ size: 30
+ enabled: true
+ onClicked: {
+ Clipboard.setText(addressText.text)
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/src/qml/pages/wallet/RequestPayment.qml b/src/qml/pages/wallet/RequestPayment.qml
index 317b5190c8..0b04650f25 100644
--- a/src/qml/pages/wallet/RequestPayment.qml
+++ b/src/qml/pages/wallet/RequestPayment.qml
@@ -143,9 +143,16 @@ PageStack {
Layout.rightMargin: 20
Layout.alignment: Qt.AlignCenter
text: qsTr("Continue")
+ onClicked: stackView.push(confirmationComponent)
}
}
}
}
}
+
+ Component {
+ id: confirmationComponent
+ RequestConfirmation {
+ }
+ }
}