Extracted some pages to their own assembly and finished the artifact display page code

This commit is contained in:
Vincent Allen
2025-10-08 13:08:12 -04:00
parent fd0e6290fe
commit 02c2660b09
626 changed files with 39989 additions and 1553 deletions

View File

@@ -0,0 +1,38 @@
namespace OpenArchival.Blazor.FileViewer;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
public static class FileViewerFactory
{
private static Dictionary<string, Type> _extensionMapping = [];
static FileViewerFactory() {
// Image types taken from https://developer.mozilla.org/en-US/docs/Web/Media/Guides/Formats/Image_types
RegisterViewerComponent<ImageViewer>([".apng", ".png", ".avif", ".gif", ".jpg", ".jpeg", ".jfif", ".pjpeg", ".pjp", ".svg", ".webp"]);
}
public static void RegisterViewerComponent<ComponentType>(IEnumerable<string> extensions) where ComponentType : IFileViewer
{
foreach (var extension in extensions)
{
_extensionMapping.Add(extension, typeof(ComponentType));
}
}
public static Type GetViewerComponent(string filename)
{
if (_extensionMapping.TryGetValue(Path.GetExtension(filename).ToLowerInvariant(), out var componentType))
{
return componentType;
}
else
{
return typeof(UnsupportedFileViewer);
}
}
}