From e3f7f1758f226111c167e7f91790f79c655d81c9 Mon Sep 17 00:00:00 2001 From: N-Pex Date: Wed, 18 Jun 2025 17:39:09 +0200 Subject: [PATCH] Support "mirrors" array in the config file for link sharing For issue #642 --- package-lock.json | 18 +++++++------- package.json | 4 +-- package.json.bak | 4 +-- src/assets/config.json | 3 ++- src/components/CopyLink.vue | 44 ++++++++++++++++++++++++++++++--- src/components/Profile.vue | 8 +++--- src/components/RoomInfo.vue | 6 +++-- src/components/roomInfoMixin.js | 4 ++- src/router/index.js | 8 +++--- 9 files changed, 72 insertions(+), 27 deletions(-) diff --git a/package-lock.json b/package-lock.json index 14088e7..a1c3344 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,14 +1,14 @@ { "name": "keanuapp-weblite", - "version": "0.1.49", + "version": "0.1.51", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "keanuapp-weblite", - "version": "0.1.49", + "version": "0.1.51", "dependencies": { - "@guardianproject/proofmode": "^0.3.2", + "@guardianproject/proofmode": "^0.4.0", "@matrix-org/olm": "^3.2.12", "@vitejs/plugin-vue": "^5.2.3", "aes-js": "^3.1.2", @@ -942,9 +942,9 @@ } }, "node_modules/@guardianproject/proofmode": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@guardianproject/proofmode/-/proofmode-0.3.2.tgz", - "integrity": "sha512-p71l7hheUoAWYbq/t1WoP94n6Ug9PUnapNtUKytvY688+NgeFHjL7Uc8X/K+Li3ikztfm0kM30q5nbAOJU14Fw==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@guardianproject/proofmode/-/proofmode-0.4.0.tgz", + "integrity": "sha512-k/zf7DoSF8ijoJ5QUpEA/O9/85P6sRUlTGAK/wHsZYwFkJiAWdDpy9D7muC9X5OtSeCUMFhaMo56lmyoetg6iA==", "license": "Apache-2.0" }, "node_modules/@humanwhocodes/config-array": { @@ -8523,9 +8523,9 @@ } }, "@guardianproject/proofmode": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@guardianproject/proofmode/-/proofmode-0.3.2.tgz", - "integrity": "sha512-p71l7hheUoAWYbq/t1WoP94n6Ug9PUnapNtUKytvY688+NgeFHjL7Uc8X/K+Li3ikztfm0kM30q5nbAOJU14Fw==" + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@guardianproject/proofmode/-/proofmode-0.4.0.tgz", + "integrity": "sha512-k/zf7DoSF8ijoJ5QUpEA/O9/85P6sRUlTGAK/wHsZYwFkJiAWdDpy9D7muC9X5OtSeCUMFhaMo56lmyoetg6iA==" }, "@humanwhocodes/config-array": { "version": "0.5.0", diff --git a/package.json b/package.json index cfe134d..a5df1cc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "keanuapp-weblite", - "version": "0.1.51", + "version": "0.1.52", "private": true, "scripts": { "dev": "vite", @@ -9,7 +9,7 @@ "create-sticker-config": "node ./create_sticker_config.js $1" }, "dependencies": { - "@guardianproject/proofmode": "^0.3.2", + "@guardianproject/proofmode": "^0.4.0", "@matrix-org/olm": "^3.2.12", "@vitejs/plugin-vue": "^5.2.3", "aes-js": "^3.1.2", diff --git a/package.json.bak b/package.json.bak index dadc434..fb49975 100644 --- a/package.json.bak +++ b/package.json.bak @@ -1,6 +1,6 @@ { "name": "keanuapp-weblite", - "version": "0.1.50", + "version": "0.1.51", "private": true, "scripts": { "dev": "vite", @@ -9,7 +9,7 @@ "create-sticker-config": "node ./create_sticker_config.js $1" }, "dependencies": { - "@guardianproject/proofmode": "^0.3.2", + "@guardianproject/proofmode": "^0.4.0", "@matrix-org/olm": "^3.2.12", "@vitejs/plugin-vue": "^5.2.3", "aes-js": "^3.1.2", diff --git a/src/assets/config.json b/src/assets/config.json index f5cb5d7..07e1429 100644 --- a/src/assets/config.json +++ b/src/assets/config.json @@ -53,5 +53,6 @@ "experimental_read_only_room": true, "experimental_public_room": true, "show_status_messages": "never", - "hide_add_room_on_home": false + "hide_add_room_on_home": false, + "mirrors": [] } \ No newline at end of file diff --git a/src/components/CopyLink.vue b/src/components/CopyLink.vue index acf1a4a..412d296 100644 --- a/src/components/CopyLink.vue +++ b/src/components/CopyLink.vue @@ -4,7 +4,7 @@ - + {{ locationLink }} - + + + + + + + + 0) { + return m; + } + } + return []; + } }, methods: { copyRoomLink() { @@ -118,6 +151,11 @@ export default { handler() { this.updateQRCode(); } + }, + currentMirror: { + handler(newVal) { + this.$emit("mirror-change", newVal); + } } }, mounted() { diff --git a/src/components/Profile.vue b/src/components/Profile.vue index 59b9252..77c0f48 100644 --- a/src/components/Profile.vue +++ b/src/components/Profile.vue @@ -65,7 +65,7 @@ - + {{ $t("room_info.direct_link") }} {{ $t("room_info.direct_link_desc") }} @@ -297,7 +297,8 @@ export default { isAvatarLoaded: true, loadValue: 0, newPasswordHasError: false, - notificationDialog: false + notificationDialog: false, + currentMirror: null }; }, @@ -306,7 +307,7 @@ export default { return this.$matrix.currentUser.user_id }, directMessageLink() { - return this.$router.getDMLink(this.$matrix.currentUser, this.$config); + return this.$router.getDMLink(this.$matrix.currentUser, this.$config, this.currentMirror); }, passwordsMatch() { return ( @@ -425,6 +426,7 @@ export default { if(this.globalNotification && this.windowNotificationPermission() !== 'granted') { this.onUpdateGlobalNotification(false); } + this.currentMirror = null; } }; diff --git a/src/components/RoomInfo.vue b/src/components/RoomInfo.vue index 183b2e7..c4cfcd8 100644 --- a/src/components/RoomInfo.vue +++ b/src/components/RoomInfo.vue @@ -89,7 +89,7 @@ {{ $t("room_info.created_by", { user: creator }) }} - +