status-desktop/storybook/pages/ProfileSocialLinksPanelPage.qml
dlipicar ee79b494ec
Network selection improvements (#17184)
* feat(network): implement new networks selection screen

* fix: proper handling of test network icon

* feat: changes to Network selector

* feat: implement blockchain explorers menu

* chore: move networks related properties and functions to NetworksStore

* feat: remove usage of tiny network icons

* fix: misc fixes

* chore: change exception with error
2025-02-19 12:22:45 -03:00

133 lines
3.8 KiB
QML

import QtQuick 2.14
import QtQuick.Controls 2.14
import StatusQ.Core 0.1
import StatusQ.Core.Utils 0.1 as CoreUtils
import mainui 1.0
import AppLayouts.stores 1.0 as AppLayoutStores
import AppLayouts.Profile.panels 1.0
import shared.stores 1.0 as SharedStores
import utils 1.0
import Storybook 1.0
SplitView {
id: root
Logs { id: logs }
orientation: Qt.Vertical
Popups {
popupParent: root
sharedRootStore: SharedStores.RootStore {}
rootStore: AppLayoutStores.RootStore {}
communityTokensStore: SharedStores.CommunityTokensStore {}
networksStore: SharedStores.NetworksStore {}
}
ListModel {
id: emptyModel
}
ListModel {
id: linksModel
ListElement {
uuid: "0001"
text: "__github"
url: "https://github.com/caybro"
}
ListElement {
uuid: "0002"
text: "__twitter"
url: "https://twitter.com/caybro"
}
ListElement {
uuid: "0003"
text: "__personal_site"
url: "https://status.im"
}
ListElement {
uuid: "0004"
text: "__youtube"
url: "https://www.youtube.com/@LukasTinkl"
}
ListElement { // NB: empty on purpose, for testing
uuid: ""
text: ""
url: ""
}
ListElement {
uuid: "0005"
text: "Figma design very long URL link text that should elide"
url: "https://www.figma.com/file/idUoxN7OIW2Jpp3PMJ1Rl8/%E2%9A%99%EF%B8%8F-Settings-%7C-Desktop?node-id=1223%3A124882&t=qvYeJ8grsZLyUS0V-0"
}
ListElement {
uuid: "0006"
text: "__telegram"
url: "https://t.me/ltinkl"
}
}
Connections {
target: Global
function onOpenLink(link) {
logs.logEvent("Global::openLink", ["link"], [link])
}
}
StatusScrollView { // wrapped in a ScrollView on purpose; to simulate SettingsContentBase.qml
SplitView.fillWidth: true
SplitView.preferredHeight: 300
ProfileSocialLinksPanel {
id: socialLinksPanel
property var linksModel: emptyModelCheck.checked ? emptyModel : linksModel
width: 500
onAddSocialLink: {
logs.logEvent("ProfileSocialLinksPanel::addSocialLink", ["url", "text"], arguments)
socialLinksPanel.linksModel.append({text: text, url: url})
}
onUpdateSocialLink: {
logs.logEvent("ProfileSocialLinksPanel::updateSocialLink", ["index", "url", "text"], arguments)
if (!!text)
socialLinksPanel.linksModel.setProperty(index, "text", text)
if (!!url)
socialLinksPanel.linksModel.setProperty(index, "url", url)
}
onRemoveSocialLink: {
logs.logEvent("ProfileSocialLinksPanel::removeSocialLink", ["index"], arguments)
socialLinksPanel.linksModel.remove(index, 1)
}
onChangePosition: {
logs.logEvent("ProfileSocialLinksPanel::changePosition", ["from", "to"], arguments)
socialLinksPanel.linksModel.move(from, to, 1)
}
socialLinksModel: socialLinksPanel.linksModel
}
}
LogsAndControlsPanel {
id: logsAndControlsPanel
SplitView.minimumHeight: 100
SplitView.preferredHeight: 200
logsView.logText: logs.logText
CheckBox {
id: emptyModelCheck
text: "emptyModel"
checked: false
}
}
}
// category: Panels
// https://www.figma.com/file/idUoxN7OIW2Jpp3PMJ1Rl8/%E2%9A%99%EF%B8%8F-Settings-%7C-Desktop?node-id=14588%3A308727&t=cwFGbBHsAGOP0T5R-0