From ec2308223f839650f7bc785293f9bb064173a0f2 Mon Sep 17 00:00:00 2001
From: 10G Meow <10gmeow@gmail.com>
Date: Sun, 26 Oct 2025 23:03:44 +0200
Subject: [PATCH] pdf inline improvements
---
src/components/file_mode/GalleryItemsView.vue | 2 +-
src/components/file_mode/ThumbnailView.vue | 106 +++++++++++++++--
.../messages/composition/MessageFile.vue | 108 +-----------------
.../messages/composition/MessageThread.vue | 8 +-
.../messages/composition/useThumbnail.ts | 1 +
5 files changed, 103 insertions(+), 122 deletions(-)
diff --git a/src/components/file_mode/GalleryItemsView.vue b/src/components/file_mode/GalleryItemsView.vue
index 1cabd3d..6727f1d 100644
--- a/src/components/file_mode/GalleryItemsView.vue
+++ b/src/components/file_mode/GalleryItemsView.vue
@@ -15,7 +15,7 @@
-
+
-
-
{{ fileTypeIcon }}
-
{{ $$sanitize(fileName) }}
-
{{ fileSize }}
+
+
+
+ {{ fileTypeIcon }}
+ {{ $$sanitize(fileName) }}
+ {{ fileSize }}
+
@@ -163,6 +228,10 @@ onBeforeUnmount(() => {
height: 100%;
margin: 0;
padding: 0;
+
+ &.pdf-file {
+ overflow-y: auto;
+ }
}
.file-item {
@@ -177,4 +246,19 @@ onBeforeUnmount(() => {
color: currentColor;
}
}
+
+.pdf-container {
+ padding: 24px 16px;
+ margin-top: 200px;
+
+ & > * {
+ margin: 30px auto 0 auto;
+ min-height: 400px;
+ }
+
+ .vue-pdf-embed {
+ border: 1px solid #ccc;
+ width: 100%;
+ }
+}
diff --git a/src/components/messages/composition/MessageFile.vue b/src/components/messages/composition/MessageFile.vue
index 0e7c4bd..ad5a58d 100644
--- a/src/components/messages/composition/MessageFile.vue
+++ b/src/components/messages/composition/MessageFile.vue
@@ -7,48 +7,21 @@
-
+
{{ $t("message.edited") }}
-
-
-
-
-
-
diff --git a/src/components/messages/composition/MessageThread.vue b/src/components/messages/composition/MessageThread.vue
index b39aea4..1c3e6eb 100644
--- a/src/components/messages/composition/MessageThread.vue
+++ b/src/components/messages/composition/MessageThread.vue
@@ -161,6 +161,8 @@ const showMessageText = computed((): boolean => {
return true;
});
+const isSinglePDF = computed(() => items.value.length === 1 && util.isFileTypePDF(items.value[0].event))
+
const showMultiview = computed((): boolean => {
if (["m.image", "m.video"].includes(event.value?.getContent().msgtype ?? "")) {
return true;
@@ -169,10 +171,8 @@ const showMultiview = computed((): boolean => {
(isIncoming.value && props.room.displayType == ROOM_TYPE_FILE_MODE) ||
items.value?.length > 1 ||
(event.value && event.value.isRedacted()) ||
- (props.room.displayType == ROOM_TYPE_CHANNEL &&
- items.value.length == 1 &&
- util.isFileTypePDF(items.value[0].event)) ||
- messageText.value?.length > 0
+ (props.room.displayType == ROOM_TYPE_CHANNEL && isSinglePDF.value) ||
+ messageText.value?.length > 0 || isSinglePDF.value
);
});
diff --git a/src/components/messages/composition/useThumbnail.ts b/src/components/messages/composition/useThumbnail.ts
index 2bf0d4b..73d0c8a 100644
--- a/src/components/messages/composition/useThumbnail.ts
+++ b/src/components/messages/composition/useThumbnail.ts
@@ -70,5 +70,6 @@ export const useThumbnail = (source: KeanuEvent | File | undefined) => {
fileTypeIconClass,
fileName,
fileSize,
+ isPDF
};
};