status-desktop/ui/app/AppLayouts/Profile/panels/ProfileShowcaseCommunitiesP...

42 lines
1.5 KiB
QML

import QtQuick 2.15
import utils 1.0
import AppLayouts.Profile.controls 1.0
ProfileShowcasePanel {
id: root
keyRole: "id"
roleNames: ["id", "name", "memberRole", "image", "color"].concat(showcaseRoles)
filterFunc: (modelData) => modelData.joined && !showcaseModel.hasItemInShowcase(modelData.id)
hiddenPlaceholderBanner: qsTr("Communities here will show on your profile")
showcasePlaceholderBanner: qsTr("Communities here will be hidden from your profile")
draggableDelegateComponent: CommunityShowcaseDelegate {
Drag.keys: ["x-status-draggable-showcase-item-hidden"]
showcaseObj: modelData
dragParent: dragParentData
visualIndex: visualIndexData
onShowcaseVisibilityRequested: {
var tmpObj = Object()
root.roleNames.forEach(role => tmpObj[role] = showcaseObj[role])
tmpObj.showcaseVisibility = value
showcaseModel.upsertItemJson(JSON.stringify(tmpObj))
root.showcaseEntryChanged()
}
}
showcaseDraggableDelegateComponent: CommunityShowcaseDelegate {
Drag.keys: ["x-status-draggable-showcase-item"]
showcaseObj: modelData
dragParent: dragParentData
visualIndex: visualIndexData
dragAxis: Drag.YAxis
showcaseVisibility: !!modelData ? modelData.showcaseVisibility : Constants.ShowcaseVisibility.NoOne
onShowcaseVisibilityRequested: {
showcaseModel.setVisibility(showcaseObj.id, value)
root.showcaseEntryChanged()
}
}
}