[#1548] added PDF preview

This commit is contained in:
mjadobson
2023-01-09 19:41:27 +00:00
committed by GitHub
parent c1ff1c6155
commit 7459c9208f
36 changed files with 175 additions and 132 deletions

View File

@@ -0,0 +1,43 @@
<script>
import ApiClient from "@/utils/ApiClient";
import CommonHelper from "@/utils/CommonHelper";
import PreviewPopup from "@/components/base/PreviewPopup.svelte";
export let record;
export let filename;
export let size;
let previewPopup;
let thumbUrl = "";
let originalUrl = ApiClient.getFileUrl(record, `${filename}`);
$: type = CommonHelper.getFileType(filename);
$: hasPreview = ["image", "pdf"].includes(type);
$: thumbUrl = originalUrl ? originalUrl + "?thumb=100x100" : "";
function onError() {
thumbUrl = "";
}
</script>
<a
class="thumb thumb-{size} link-fade"
href={originalUrl}
target="_blank"
rel="noreferrer"
on:click|stopPropagation={(e) => {
if (!hasPreview) return;
e.preventDefault();
previewPopup?.show(originalUrl);
}}
>
{#if type === "image"}
<img src={thumbUrl} alt={filename} title="Preview {filename}" on:error={onError} />
{:else if type === "pdf"}
<i class="ri-file-pdf-line" />
{:else}
<i class="ri-file-3-line" />
{/if}
</a>
<PreviewPopup bind:this={previewPopup} {type} />