diff --git a/ui/StatusQ/sandbox/StatusAddressPage.qml b/ui/StatusQ/sandbox/StatusAddressPage.qml
new file mode 100644
index 0000000000..544e298549
--- /dev/null
+++ b/ui/StatusQ/sandbox/StatusAddressPage.qml
@@ -0,0 +1,25 @@
+import QtQuick 2.14
+import QtQuick.Controls 2.14
+import QtQuick.Layouts 1.14
+
+import StatusQ.Components 0.1
+
+import Sandbox 0.1
+
+Column {
+ spacing: 8
+
+ StatusAddress {
+ text: "0x9ce0056c5fc6bb9459a4dcfa35eaad8c1fee5ce9"
+ }
+
+ Item {
+ width: 200
+ height: childrenRect.height
+ StatusAddress {
+ text: "0x9ce0056c5fc6bb9459a4dcfa35eaad8c1fee5ce9"
+ expandable: true
+ width: parent.width
+ }
+ }
+}
diff --git a/ui/StatusQ/sandbox/main.qml b/ui/StatusQ/sandbox/main.qml
index 01a44de999..acc724bbe6 100644
--- a/ui/StatusQ/sandbox/main.qml
+++ b/ui/StatusQ/sandbox/main.qml
@@ -164,6 +164,11 @@ StatusWindow {
onClicked: page.sourceComponent = statusAccountSelectorPageComponent
}
StatusListSectionHeadline { text: "StatusQ.Components" }
+ StatusNavigationListItem {
+ title: "StatusAddress"
+ selected: page.sourceComponent == statusAddressPageComponent
+ onClicked: page.sourceComponent = statusAddressPageComponent
+ }
StatusNavigationListItem {
title: "List Items"
selected: page.sourceComponent == listItemsComponent
@@ -281,6 +286,11 @@ StatusWindow {
ListItems {}
}
+ Component {
+ id: statusAddressPageComponent
+ StatusAddressPage {}
+ }
+
Component {
id: layoutComponent
Layout {}
diff --git a/ui/StatusQ/src/StatusQ/Components/StatusAddress.qml b/ui/StatusQ/src/StatusQ/Components/StatusAddress.qml
new file mode 100644
index 0000000000..4918859e41
--- /dev/null
+++ b/ui/StatusQ/src/StatusQ/Components/StatusAddress.qml
@@ -0,0 +1,39 @@
+import QtQuick 2.14
+
+import StatusQ.Core 0.1
+import StatusQ.Core.Theme 0.1
+import StatusQ.Controls 0.1
+
+StatusBaseText {
+ id: root
+
+ property bool expandable: false
+ property bool expanded: false
+ readonly property real actualWidth: implicitWidth
+ property real maxWidth: width
+
+ font.family: Theme.palette.monoFont.name
+ font.pixelSize: 13
+ elide: Text.ElideMiddle
+ color: Theme.palette.baseColor1
+
+ Component.onCompleted: {
+ maxWidth = width
+ expanded = actualWidth <= maxWidth
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ cursorShape: root.expandable ? Qt.PointingHandCursor : Qt.arrowCursor
+ enabled: root.expandable
+
+ onClicked: {
+ if (root.expanded) {
+ width = root.width = root.maxWidth
+ } else {
+ width = root.width = root.actualWidth
+ }
+ root.expanded = !root.expanded
+ }
+ }
+}
diff --git a/ui/StatusQ/src/StatusQ/Components/qmldir b/ui/StatusQ/src/StatusQ/Components/qmldir
index 78e2b2038b..003e8003b6 100644
--- a/ui/StatusQ/src/StatusQ/Components/qmldir
+++ b/ui/StatusQ/src/StatusQ/Components/qmldir
@@ -1,5 +1,6 @@
module StatusQ.Components
+StatusAddress 0.1 StatusAddress.qml
StatusBadge 0.1 StatusBadge.qml
StatusChatInfoToolBar 0.1 StatusChatInfoToolBar.qml
StatusChatList 0.1 StatusChatList.qml
diff --git a/ui/StatusQ/statusq.qrc b/ui/StatusQ/statusq.qrc
index 2cd257f1f0..d3392e92c3 100644
--- a/ui/StatusQ/statusq.qrc
+++ b/ui/StatusQ/statusq.qrc
@@ -21,6 +21,7 @@
src/StatusQ/Popups/StatusMenuItemDelegate.qml
src/StatusQ/Popups/StatusModalDivider.qml
src/StatusQ/Components/qmldir
+ src/StatusQ/Components/StatusAddress.qml
src/StatusQ/Components/StatusChatListItem.qml
src/StatusQ/Components/StatusChatListAndCategories.qml
src/StatusQ/Components/StatusChatInfoToolBar.qml