mirror of
https://github.com/status-im/status-desktop.git
synced 2025-01-09 22:06:25 +00:00
aa8d9a7f48
A `StatusIcon` that rotates infinitely and can be used for indicating pending states. Usage: ``` StatusLoadingIndicator { width: 24 // default: 17 height: 24 // default: 17 color: "red" // default: loading asset color } ``` This also removes `LoadingImage` component from `ui/shared`. Closes #2360
54 lines
1.3 KiB
QML
54 lines
1.3 KiB
QML
import QtQuick 2.13
|
|
import QtQuick.Controls 2.13
|
|
import QtQuick.Layouts 1.13
|
|
import QtGraphicalEffects 1.13
|
|
import "../imports"
|
|
import "./status/core"
|
|
import "./status"
|
|
|
|
Item {
|
|
id: root
|
|
property bool isPending: false
|
|
readonly property string uuid: Utils.uuid()
|
|
property int debounceDelay: 600
|
|
readonly property var validateAsync: Backpressure.debounce(inpAddress, debounceDelay, function (inputValue) {
|
|
root.isPending = true
|
|
var name = inputValue.startsWith("@") ? inputValue.substring(1) : inputValue
|
|
walletModel.resolveENS(name, uuid)
|
|
});
|
|
signal resolved(string resolvedAddress)
|
|
|
|
function resolveEns(name) {
|
|
if (Utils.isValidEns(name)) {
|
|
root.validateAsync(name)
|
|
}
|
|
}
|
|
width: 12
|
|
height: 12
|
|
|
|
Loader {
|
|
anchors.fill: parent
|
|
sourceComponent: loadingIndicator
|
|
active: root.isPending
|
|
}
|
|
|
|
Component {
|
|
id: loadingIndicator
|
|
StatusLoadingIndicator {
|
|
width: root.width
|
|
height: root.height
|
|
}
|
|
}
|
|
|
|
Connections {
|
|
target: walletModel
|
|
onEnsWasResolved: {
|
|
if (uuid !== root.uuid) {
|
|
return
|
|
}
|
|
root.isPending = false
|
|
root.resolved(resolvedAddress)
|
|
}
|
|
}
|
|
}
|