diff --git a/src/components/Chat.vue b/src/components/Chat.vue index e03c595..3ea47df 100644 --- a/src/components/Chat.vue +++ b/src/components/Chat.vue @@ -41,7 +41,9 @@ v-on:download="download(selectedEvent)" v-on:more=" isEmojiQuickReaction= true showMoreMessageOperations({event: selectedEvent, anchor: $event.anchor}) - " :originalEvent="selectedEvent" :timelineSet="timelineSet" /> + " :originalEvent="selectedEvent" :timelineSet="timelineSet" + :readOnlyRoom="$matrix.currentRoomIsReadOnlyForUser" + />
diff --git a/src/components/CreateRoom.vue b/src/components/CreateRoom.vue index 7825678..7835d2d 100644 --- a/src/components/CreateRoom.vue +++ b/src/components/CreateRoom.vue @@ -477,14 +477,25 @@ export default { // Set power level event. Need to do that here, because we might not have the userId when the options object is created. const powerLevels = {}; powerLevels[this.$matrix.currentUserId] = 100; + let powerLevelContent = { + users: powerLevels, + events_default: this.readOnlyRoom ? 50 : 0 + } + if (this.readOnlyRoom) { + powerLevelContent.events = { + "m.room.encrypted": 0, // NOTE! Since practically all events in encrypted rooms get sent as "m.room.encrypted" we need to set + // power to 0 here. Otherwise we would not be able to send quick reactions or poll responses... + "m.poll.response": 0, + "org.matrix.msc3381.poll.response": 0, + "m.reaction": 0, + "m.room.redaction": 0, + }; + } createRoomOptions.initial_state.push( { type: "m.room.power_levels", state_key: "", - content: { - users: powerLevels, - events_default: this.readOnlyRoom ? 50 : 0 - } + content: powerLevelContent }); return this.$matrix.matrixClient diff --git a/src/components/messages/MessageIncoming.vue b/src/components/messages/MessageIncoming.vue index 456b1f9..6e945be 100644 --- a/src/components/messages/MessageIncoming.vue +++ b/src/components/messages/MessageIncoming.vue @@ -15,7 +15,7 @@ -
+
more_vert diff --git a/src/components/messages/MessageOperations.vue b/src/components/messages/MessageOperations.vue index 20d53a6..41e12b9 100644 --- a/src/components/messages/MessageOperations.vue +++ b/src/components/messages/MessageOperations.vue @@ -8,7 +8,7 @@ $vuetify.icons.addReaction - + reply @@ -40,6 +40,12 @@ export default { default: function () { return [] } + }, + readOnlyRoom: { + type: Boolean, + default: function () { + return false; + } } }, computed: {