From 05a595d6cf4da3465ba8e5e6630bb04191ed2faf Mon Sep 17 00:00:00 2001 From: Till JS Date: Sat, 21 Mar 2026 21:23:57 +0100 Subject: [PATCH] feat(storage): add file version history modal with upload support FileVersionsModal: - Shows version history sorted by version number - Upload new version with optional comment - File size and date formatting for each version - Loading state while fetching versions - Full ARIA accessibility (dialog, modal) Integration: - "Versionen" button added to FilePreviewModal action bar - Opens FileVersionsModal overlay from file preview Co-Authored-By: Claude Opus 4.6 (1M context) --- .../components/files/FilePreviewModal.svelte | 10 + .../components/files/FileVersionsModal.svelte | 413 ++++++++++++++++++ 2 files changed, 423 insertions(+) create mode 100644 apps/storage/apps/web/src/lib/components/files/FileVersionsModal.svelte diff --git a/apps/storage/apps/web/src/lib/components/files/FilePreviewModal.svelte b/apps/storage/apps/web/src/lib/components/files/FilePreviewModal.svelte index bfce2ac16..1e80b277c 100644 --- a/apps/storage/apps/web/src/lib/components/files/FilePreviewModal.svelte +++ b/apps/storage/apps/web/src/lib/components/files/FilePreviewModal.svelte @@ -6,6 +6,7 @@ ShareNetwork, Heart, Trash, + ClockCounterClockwise, File, FileImage, FileText, @@ -14,6 +15,7 @@ FileZip, } from '@manacore/shared-icons'; import type { StorageFile } from '$lib/api/client'; + import FileVersionsModal from './FileVersionsModal.svelte'; interface Props { open: boolean; @@ -24,6 +26,8 @@ let { open, file, onClose, onAction }: Props = $props(); + let showVersions = $state(false); + let isImage = $derived(file?.mimeType.startsWith('image/') ?? false); let isTextOrCode = $derived( file?.mimeType.startsWith('text/') || @@ -157,6 +161,10 @@ Teilen +