68 lines
2.0 KiB
QML
68 lines
2.0 KiB
QML
|
import SortFilterProxyModel 0.2
|
||
|
|
||
|
import AppLayouts.Chat.helpers 1.0
|
||
|
import AppLayouts.Chat.panels.communities 1.0
|
||
|
import AppLayouts.Chat.controls.community 1.0
|
||
|
|
||
|
import StatusQ.Core.Utils 0.1
|
||
|
|
||
|
import utils 1.0
|
||
|
|
||
|
SortFilterProxyModel {
|
||
|
property var assetsModel
|
||
|
property var collectiblesModel
|
||
|
|
||
|
proxyRoles: [
|
||
|
ExpressionRole {
|
||
|
name: "text"
|
||
|
|
||
|
function getName(type, key) {
|
||
|
if (type === HoldingTypes.Type.Ens)
|
||
|
return key
|
||
|
|
||
|
const model = type === HoldingTypes.Type.Asset
|
||
|
? assetsModel
|
||
|
: collectiblesModel
|
||
|
|
||
|
const item = CommunityPermissionsHelpers.getTokenByKey(model, key)
|
||
|
|
||
|
return item ? item.name : ""
|
||
|
}
|
||
|
|
||
|
function getText(type, key, amount) {
|
||
|
const name = getName(type, key)
|
||
|
|
||
|
return CommunityPermissionsHelpers.setHoldingsTextFormat(
|
||
|
type, name, amount)
|
||
|
}
|
||
|
|
||
|
// Direct call for singleton function is not handled properly by
|
||
|
// SortFilterProxyModel that's why helper function is used instead.
|
||
|
expression: getText(model.type, model.key, model.amount)
|
||
|
},
|
||
|
ExpressionRole {
|
||
|
name: "imageSource"
|
||
|
|
||
|
function getIcon(type, key) {
|
||
|
if (type === HoldingTypes.Type.Ens)
|
||
|
return Style.svg("profile/ensUsernames")
|
||
|
|
||
|
const model = type === HoldingTypes.Type.Asset
|
||
|
? assetsModel : collectiblesModel
|
||
|
|
||
|
return CommunityPermissionsHelpers.getTokenIconByKey(model, key)
|
||
|
}
|
||
|
|
||
|
expression: getIcon(model.type, model.key)
|
||
|
},
|
||
|
ExpressionRole {
|
||
|
name: "operator"
|
||
|
|
||
|
// Direct call for singleton enum is not handled properly by SortFilterProxyModel.
|
||
|
readonly property int none: OperatorsUtils.Operators.None
|
||
|
|
||
|
expression: none
|
||
|
}
|
||
|
]
|
||
|
}
|