-
+
- {{ content.file.name }}
+ {{ content.filename }}
@@ -137,9 +137,12 @@ type Rect = Size & {
export type Content = {
id: string;
type: 'image' | 'video';
- width?: number;
- height?: number;
- file: Misskey.entities.DriveFile;
+ url: string;
+ thumbnailUrl?: string | null;
+ width?: number | null;
+ height?: number | null;
+ filename?: string | null;
+ file?: Misskey.entities.DriveFile;
sourceElement?: HTMLElement | null;
};
@@ -265,6 +268,7 @@ const hiddenStyle = computed(() => {
});
function shouldHideInGallery(content: Content): boolean {
+ if (content.file == null) return false;
const hiddenByDefault = shouldHideFileByDefault(content.file, true);
if (!hiddenByDefault) return false;
@@ -656,6 +660,7 @@ function onClick() {
}
async function onHiddenClick() {
+ if (props.content.file == null) return;
if (hide.value) {
if (await canRevealFile(props.content.file)) {
hide.value = false;
@@ -679,6 +684,7 @@ function onVideoClick() {
}
function openMenu(ev: PointerEvent) {
+ if (props.content.file == null) return;
os.popupMenu(getFileMenu(props.content.file), (ev.currentTarget ?? ev.target ?? undefined) as HTMLElement | undefined);
}
diff --git a/packages/frontend/src/components/MkImageGallery.vue b/packages/frontend/src/components/MkImageGallery.vue
index 7dbdf79d81..52c45908f9 100644
--- a/packages/frontend/src/components/MkImageGallery.vue
+++ b/packages/frontend/src/components/MkImageGallery.vue
@@ -25,7 +25,7 @@ SPDX-License-Identifier: AGPL-3.0-only
@transitionend.self="onSlideTransitionFinished"
@transitioncancel.self="onSlideTransitionFinished"
>
-
+
previewable(media)).map(media => ({
id: media.id,
type: media.type.startsWith('video') ? 'video' : 'image',
+ url: media.url,
+ thumbnailUrl: media.thumbnailUrl,
width: media.properties.width ?? 0,
height: media.properties.height ?? 0,
+ filename: media.name,
file: media,
sourceElement: getElementByMarker(`${markerId}:${media.id}`),
}));