diff --git a/meshchatx/src/frontend/components/contacts/ContactsPage.vue b/meshchatx/src/frontend/components/contacts/ContactsPage.vue
index d6786e0..a76864a 100644
--- a/meshchatx/src/frontend/components/contacts/ContactsPage.vue
+++ b/meshchatx/src/frontend/components/contacts/ContactsPage.vue
@@ -140,42 +140,39 @@
-
-
-
-
-
-
-
-
-
-
+
+
diff --git a/meshchatx/src/frontend/components/contextmenu/ContextMenuDivider.vue b/meshchatx/src/frontend/components/contextmenu/ContextMenuDivider.vue
new file mode 100644
index 0000000..ecc0fb7
--- /dev/null
+++ b/meshchatx/src/frontend/components/contextmenu/ContextMenuDivider.vue
@@ -0,0 +1,9 @@
+
+
+
+
+
diff --git a/meshchatx/src/frontend/components/contextmenu/ContextMenuItem.vue b/meshchatx/src/frontend/components/contextmenu/ContextMenuItem.vue
new file mode 100644
index 0000000..a7ff899
--- /dev/null
+++ b/meshchatx/src/frontend/components/contextmenu/ContextMenuItem.vue
@@ -0,0 +1,22 @@
+
+
+
+
+
diff --git a/meshchatx/src/frontend/components/contextmenu/ContextMenuPanel.vue b/meshchatx/src/frontend/components/contextmenu/ContextMenuPanel.vue
new file mode 100644
index 0000000..118558b
--- /dev/null
+++ b/meshchatx/src/frontend/components/contextmenu/ContextMenuPanel.vue
@@ -0,0 +1,37 @@
+
+
+
+
+
diff --git a/meshchatx/src/frontend/components/contextmenu/ContextMenuSectionLabel.vue b/meshchatx/src/frontend/components/contextmenu/ContextMenuSectionLabel.vue
new file mode 100644
index 0000000..0a30f71
--- /dev/null
+++ b/meshchatx/src/frontend/components/contextmenu/ContextMenuSectionLabel.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
diff --git a/meshchatx/src/frontend/components/map/MapPage.vue b/meshchatx/src/frontend/components/map/MapPage.vue
index eddaa29..f24e374 100644
--- a/meshchatx/src/frontend/components/map/MapPage.vue
+++ b/meshchatx/src/frontend/components/map/MapPage.vue
@@ -300,56 +300,44 @@
-
-
- {{ contextMenuFeature ? "Feature actions" : "Map actions" }}
-
-
-
+ {{ contextMenuFeature ? "Feature actions" : "Map actions" }}
+
+
+
+
+ Select / Move
+
+
+
+ Add / Edit Note
+
+
+
+ Delete
+
+
+
+ Copy coords
+
+
+
+ Clear drawings
+
+
@@ -1325,6 +1313,8 @@ import Overlay from "ol/Overlay";
import GeoJSON from "ol/format/GeoJSON";
import { extend as extendExtent, createEmpty as createEmptyExtent, isEmpty as isExtentEmpty } from "ol/extent";
import MaterialDesignIcon from "../MaterialDesignIcon.vue";
+import ContextMenuItem from "../contextmenu/ContextMenuItem.vue";
+import ContextMenuPanel from "../contextmenu/ContextMenuPanel.vue";
import ToastUtils from "../../js/ToastUtils";
import TileCache from "../../js/TileCache";
import Toggle from "../forms/Toggle.vue";
@@ -1334,6 +1324,8 @@ import MiniChat from "./MiniChat.vue";
export default {
name: "MapPage",
components: {
+ ContextMenuItem,
+ ContextMenuPanel,
MaterialDesignIcon,
Toggle,
MiniChat,
diff --git a/meshchatx/src/frontend/components/messages/MessagesSidebar.vue b/meshchatx/src/frontend/components/messages/MessagesSidebar.vue
index 2434dd1..627c8bf 100644
--- a/meshchatx/src/frontend/components/messages/MessagesSidebar.vue
+++ b/meshchatx/src/frontend/components/messages/MessagesSidebar.vue
@@ -518,58 +518,43 @@
-
-
+
- Mark as Read
-
-
+ Mark as Read
+
+
- {{
+ {{
isContextTargetPinned
? $t("messages.unpin_conversation")
: $t("messages.pin_conversation")
- }}
-
-
+ }}
+
+
- {{ $t("messages.ingest_paper_message") }}
-
-
+
- {{ $t("banishment.lift_banishment") }}
-
-
-
+
+
- {{
+ {{
contextMenu.targetContact?.is_telemetry_trusted
? "Revoke Telemetry Trust"
: "Trust for Telemetry"
- }}
-
-
-
- Move to Folder
-
-
+ }}
+
+
+ Move to Folder
+
- Uncategorized
-
+ Uncategorized
+
-
{{ folder.name }}
-
+
-
-
+
+
- Delete
-
-
+ Delete
+
+
@@ -802,13 +769,24 @@ import Utils from "../../js/Utils";
import DialogUtils from "../../js/DialogUtils";
import MaterialDesignIcon from "../MaterialDesignIcon.vue";
import LxmfUserIcon from "../LxmfUserIcon.vue";
+import ContextMenuDivider from "../contextmenu/ContextMenuDivider.vue";
+import ContextMenuItem from "../contextmenu/ContextMenuItem.vue";
+import ContextMenuPanel from "../contextmenu/ContextMenuPanel.vue";
+import ContextMenuSectionLabel from "../contextmenu/ContextMenuSectionLabel.vue";
import GlobalState from "../../js/GlobalState";
import GlobalEmitter from "../../js/GlobalEmitter";
import MarkdownRenderer from "../../js/MarkdownRenderer";
export default {
name: "MessagesSidebar",
- components: { MaterialDesignIcon, LxmfUserIcon },
+ components: {
+ MaterialDesignIcon,
+ LxmfUserIcon,
+ ContextMenuDivider,
+ ContextMenuItem,
+ ContextMenuPanel,
+ ContextMenuSectionLabel,
+ },
props: {
peers: {
type: Object,
diff --git a/meshchatx/src/frontend/components/nomadnetwork/NomadNetworkSidebar.vue b/meshchatx/src/frontend/components/nomadnetwork/NomadNetworkSidebar.vue
index 2d67451..0493c42 100644
--- a/meshchatx/src/frontend/components/nomadnetwork/NomadNetworkSidebar.vue
+++ b/meshchatx/src/frontend/components/nomadnetwork/NomadNetworkSidebar.vue
@@ -277,101 +277,84 @@
-
-
+
- {{ $t("nomadnet.rename") }}
-
-
+
- {{ $t("nomadnet.block_node") }}
-
-
+
-
- {{ $t("nomadnet.lift_banishment") }}
-
-
+
+ {{ $t("nomadnet.lift_banishment") }}
+
+
- {{ $t("nomadnet.remove") }}
-
-
-
- Move to Section
-
+ {{ $t("nomadnet.remove") }}
+
+
+
Move to Section
-
{{ section.name }}
-
+
-
+
-
-
+
- Rename Section
-
-
- Delete Section
-
-
+ Delete Section
+
+
@@ -478,45 +461,42 @@
-
-
- {{ $t("nomadnet.add_favourite") }}
-
-
+
- {{ $t("nomadnet.block_node") }}
-
-
+
-
- {{ $t("nomadnet.lift_banishment") }}
-
-
+
+ {{ $t("nomadnet.lift_banishment") }}
+
+
@@ -526,6 +506,10 @@