From 81dfc1bfcb30996c4ce1932dfefc814d4bad217c Mon Sep 17 00:00:00 2001
From: KevinWh0 <45321184+KevinWh0@users.noreply.github.com>
Date: Tue, 27 Feb 2024 01:05:10 +0100
Subject: [PATCH] Cleaning up some old comments

---
 .../src/components/MkDriveFileThumbnail.vue   | 59 +++++++++++++++----
 1 file changed, 49 insertions(+), 10 deletions(-)

diff --git a/packages/frontend/src/components/MkDriveFileThumbnail.vue b/packages/frontend/src/components/MkDriveFileThumbnail.vue
index 2f1fef4ea6..a2bf68691d 100644
--- a/packages/frontend/src/components/MkDriveFileThumbnail.vue
+++ b/packages/frontend/src/components/MkDriveFileThumbnail.vue
@@ -5,17 +5,25 @@ SPDX-License-Identifier: AGPL-3.0-only
 
 <template>
 <div ref="thumbnail" :class="$style.root">
-	<ImgWithBlurhash v-if="isThumbnailAvailable" :hash="file.blurhash" :src="file.thumbnailUrl" :alt="file.name" :title="file.name" :cover="fit !== 'contain'"/>
-	<i v-else-if="is === 'image'" class="ph-image-square ph-bold ph-lg" :class="$style.icon"></i>
-	<i v-else-if="is === 'video'" class="ph-video ph-bold ph-lg" :class="$style.icon"></i>
-	<i v-else-if="is === 'audio' || is === 'midi'" class="ph-file-audio ph-bold ph-lg" :class="$style.icon"></i>
-	<i v-else-if="is === 'csv'" class="ph-file-text ph-bold ph-lg" :class="$style.icon"></i>
-	<i v-else-if="is === 'pdf'" class="ph-file-text ph-bold ph-lg" :class="$style.icon"></i>
-	<i v-else-if="is === 'textfile'" class="ph-file-text ph-bold ph-lg" :class="$style.icon"></i>
-	<i v-else-if="is === 'archive'" class="ph-file-zip ph-bold ph-lg" :class="$style.icon"></i>
-	<i v-else class="ph-file ph-bold ph-lg" :class="$style.icon"></i>
+	<template v-if="isThumbnailAvailable && is === 'image'">
+		<div class="relative">
+			<ImgWithBlurhash :hash="file.blurhash" :src="file.thumbnailUrl" :alt="file.name" :title="file.name" :cover="fit !== 'contain'"/>
 
-	<i v-if="isThumbnailAvailable && is === 'video'" class="ph-video ph-bold ph-lg" :class="$style.iconSub"></i>
+			<div v-if="props.file.comment" v-tooltip="getTrimmedAltText()" :class="$style.hasAltText">ALT</div>
+		</div>
+	</template>
+	<template v-else>
+		<i v-if="is === 'image'" class="ph-image-square ph-bold ph-lg" :class="$style.icon"></i>
+		<i v-else-if="is === 'video'" class="ph-video ph-bold ph-lg" :class="$style.icon"></i>
+		<i v-else-if="is === 'audio' || is === 'midi'" class="ph-file-audio ph-bold ph-lg" :class="$style.icon"></i>
+		<i v-else-if="is === 'csv'" class="ph-file-text ph-bold ph-lg" :class="$style.icon"></i>
+		<i v-else-if="is === 'pdf'" class="ph-file-text ph-bold ph-lg" :class="$style.icon"></i>
+		<i v-else-if="is === 'textfile'" class="ph-file-text ph-bold ph-lg" :class="$style.icon"></i>
+		<i v-else-if="is === 'archive'" class="ph-file-zip ph-bold ph-lg" :class="$style.icon"></i>
+		<i v-else class="ph-file ph-bold ph-lg" :class="$style.icon"></i>
+
+		<i v-if="isThumbnailAvailable && is === 'video'" class="ph-video ph-bold ph-lg" :class="$style.iconSub"></i>
+	</template>
 </div>
 </template>
 
@@ -56,6 +64,20 @@ const isThumbnailAvailable = computed(() => {
 		? (is.value === 'image' as const || is.value === 'video')
 		: false;
 });
+
+const getTrimmedAltText = () => {
+	if (props.file.comment == null) {
+		return '';
+	}
+	const maxCharacters = 40;
+
+	const alt = props.file.comment as unknown as string;
+	if (alt.length > maxCharacters) {
+		return alt.substring(0, maxCharacters) + '...';
+	}
+
+	return alt;
+};
 </script>
 
 <style lang="scss" module>
@@ -82,4 +104,21 @@ const isThumbnailAvailable = computed(() => {
 	font-size: 32px;
 	color: #777;
 }
+
+.hasAltText {
+	position: absolute;
+	bottom: 0px;
+	right: 0px;
+	z-index: 3;
+	margin: 5px;
+	cursor: help;
+
+	background-color: black;
+	border-radius: var(--radius-sm);
+	color: var(--accentLighten);
+	display: inline-block;
+	font-weight: bold;
+	font-size: 0.8em;
+	padding: 2px 5px;
+}
 </style>
-- 
GitLab