Decrypt all events before use

This commit is contained in:
N-Pex 2025-05-13 16:32:09 +02:00
parent 2c5b386af9
commit bf290a5cd7
10 changed files with 44 additions and 34 deletions

View file

@ -31,8 +31,8 @@
<GalleryItemsView :originalEvent="originalEvent" :items="items" :initialItem="showItem" v-if="!!showItem" v-on:close="showItem = null" />
</message-incoming>
<component v-else-if="items.length == 1" :is="componentFn(items[0].event)"
:originalEvent="items[0].event"
v-bind="{...$props, ...$attrs}"
:originalEvent="items[0].event"
/>
</template>
@ -43,6 +43,7 @@ import util, { ROOM_TYPE_CHANNEL, ROOM_TYPE_FILE_MODE } from "../../plugins/util
import GalleryItemsView from '../file_mode/GalleryItemsView.vue';
import ThumbnailView from '../file_mode/ThumbnailView.vue';
import SwipeableThumbnailsView from "./channel/SwipeableThumbnailsView.vue";
import { reactive } from "vue";
export default {
extends: MessageIncoming,
@ -61,7 +62,7 @@ export default {
this.event.on("Event.relationsCreated", this.onRelationsCreated);
}
},
beforeDestroy() {
beforeUnmount() {
this.event.off("Event.relationsCreated", this.onRelationsCreated);
},
computed: {
@ -82,19 +83,18 @@ export default {
this.items = this.timelineSet.relations.getAllChildEventsForEvent(this.event.getId())
.filter(e => !e.isRedacted() && util.downloadableTypes().includes(e.getContent().msgtype))
.map(e => {
let ret = {
let ret = reactive({
event: e,
src: null,
};
ret.promise =
util
.getThumbnail(this.$matrix.matrixClient, this.$matrix.useAuthedMedia, e, this.$config, 100, 100)
.then((url) => {
ret.src = url;
})
.catch((err) => {
console.log("Failed to fetch thumbnail: ", err);
});
});
ret.promise = this.$matrix.matrixClient.decryptEventIfNeeded(e)
.then(() => util.getThumbnail(this.$matrix.matrixClient, this.$matrix.useAuthedMedia, e, this.$config, 100, 100))
.then((url) => {
ret.src = url;
})
.catch((err) => {
console.log("Failed to fetch thumbnail: ", err);
});
return ret;
});
}, this.$el);