status-desktop/ui/app/AppLayouts/Communities/panels/FeesPanel.qml

84 lines
2.0 KiB
QML

import QtQuick 2.15
import QtQuick.Controls 2.15
import QtQuick.Layouts 1.15
import StatusQ.Core 0.1
import StatusQ.Core.Theme 0.1
import AppLayouts.Communities.controls 1.0
import utils 1.0
Control {
id: root
// expected roles:
//
// title (string) - e.g. ""Airdropping 2 on Optimism"
// feeText (string) - e.g. "0.0015 ($75.54)
// error (bool), optional
property alias model: repeater.model
readonly property alias count: repeater.count
property alias placeholderText: placeholderText.text
property bool highlightFees: count === 1
property Item footer
states: State {
// Setting condition on root.footer doesn't work for some configurations (macOS or specific qt version)
// Setting when directly to true seems to be relable option because ParentChange and PropertyChanges tolerate target set to null
// when: root.footer
when: true
ParentChange {
target: root.footer
parent: contentItem
}
PropertyChanges {
target: root.footer
Layout.fillWidth: true
Layout.topMargin: -Theme.padding
}
}
QtObject {
id: d
readonly property int placeholderHeight: 24
}
contentItem: ColumnLayout {
spacing: Theme.padding
StatusBaseText {
id: placeholderText
Layout.fillWidth: true
Layout.preferredHeight: Math.max(implicitHeight,
d.placeholderHeight)
visible: repeater.count === 0
font.pixelSize: Theme.primaryTextFontSize
wrapMode: Text.Wrap
color: Theme.palette.baseColor1
verticalAlignment: Text.AlignVCenter
}
Repeater {
id: repeater
FeeRow {
Layout.fillWidth: true
title: model.title
feeText: model.feeText
errorFee: !!model.error
highlightFee: root.highlightFees
}
}
}
}