73 lines
1.7 KiB
QML
73 lines
1.7 KiB
QML
import QtQuick 2.15
|
|
import QtQuick.Controls 2.15
|
|
|
|
import StatusQ.Controls 0.1
|
|
import StatusQ.Core.Utils 0.1
|
|
|
|
import AppLayouts.Wallet.panels 1.0
|
|
|
|
import utils 1.0
|
|
|
|
Control {
|
|
id: root
|
|
|
|
/** Expected model structure: see SearchableAssetsPanel::model **/
|
|
property alias assetsModel: searchableAssetsPanel.model
|
|
|
|
readonly property bool isTokenSelected: d.isTokenSelected
|
|
|
|
signal assetSelected(string key)
|
|
|
|
function setCustom(name: string, icon: url, key: string) {
|
|
d.isTokenSelected = true
|
|
tokenSelectorButton.name = name
|
|
tokenSelectorButton.icon = icon
|
|
searchableAssetsPanel.highlightedKey = key ?? ""
|
|
}
|
|
|
|
QtObject {
|
|
id: d
|
|
|
|
property bool isTokenSelected: false
|
|
}
|
|
|
|
contentItem: TokenSelectorButton {
|
|
id: tokenSelectorButton
|
|
|
|
selected: d.isTokenSelected
|
|
forceHovered: dropdown.opened
|
|
|
|
text: qsTr("Select asset")
|
|
|
|
onClicked: dropdown.opened ? dropdown.close() : dropdown.open()
|
|
}
|
|
|
|
StatusDropdown {
|
|
id: dropdown
|
|
|
|
y: parent.height + 4
|
|
|
|
closePolicy: Popup.CloseOnPressOutsideParent
|
|
padding: 0
|
|
|
|
contentItem: SearchableAssetsPanel {
|
|
id: searchableAssetsPanel
|
|
|
|
function setCurrentAndClose(name, icon) {
|
|
tokenSelectorButton.name = name
|
|
tokenSelectorButton.icon = icon
|
|
d.isTokenSelected = true
|
|
dropdown.close()
|
|
}
|
|
|
|
onSelected: {
|
|
const entry = ModelUtils.getByKey(assetsModel, "tokensKey", key)
|
|
highlightedKey = key
|
|
|
|
setCurrentAndClose(entry.symbol, entry.iconSource)
|
|
root.assetSelected(key)
|
|
}
|
|
}
|
|
}
|
|
}
|