aboutsummaryrefslogtreecommitdiffstats
path: root/apps/web
diff options
context:
space:
mode:
Diffstat (limited to 'apps/web')
-rw-r--r--apps/web/app/api/assets/route.ts4
-rw-r--r--apps/web/components/dashboard/preview/LinkContentSection.tsx18
2 files changed, 20 insertions, 2 deletions
diff --git a/apps/web/app/api/assets/route.ts b/apps/web/app/api/assets/route.ts
index f1a17fc9..9028f556 100644
--- a/apps/web/app/api/assets/route.ts
+++ b/apps/web/app/api/assets/route.ts
@@ -5,7 +5,7 @@ import type { ZUploadResponse } from "@hoarder/shared/types/uploads";
import {
newAssetId,
saveAsset,
- SUPPORTED_ASSET_TYPES,
+ SUPPORTED_UPLOAD_ASSET_TYPES,
} from "@hoarder/shared/assetdb";
import serverConfig from "@hoarder/shared/config";
@@ -29,7 +29,7 @@ export async function POST(request: Request) {
let contentType;
if (data instanceof File) {
contentType = data.type;
- if (!SUPPORTED_ASSET_TYPES.has(contentType)) {
+ if (!SUPPORTED_UPLOAD_ASSET_TYPES.has(contentType)) {
return Response.json(
{ error: "Unsupported asset type" },
{ status: 400 },
diff --git a/apps/web/components/dashboard/preview/LinkContentSection.tsx b/apps/web/components/dashboard/preview/LinkContentSection.tsx
index 29001c7f..3aeacdcd 100644
--- a/apps/web/components/dashboard/preview/LinkContentSection.tsx
+++ b/apps/web/components/dashboard/preview/LinkContentSection.tsx
@@ -12,6 +12,16 @@ import { ScrollArea } from "@radix-ui/react-scroll-area";
import { ZBookmark, ZBookmarkedLink } from "@hoarder/shared/types/bookmarks";
+function FullPageArchiveSection({ link }: { link: ZBookmarkedLink }) {
+ return (
+ <iframe
+ title={link.url}
+ src={`/api/assets/${link.fullPageArchiveAssetId}`}
+ className="relative h-full min-w-full"
+ />
+ );
+}
+
function ScreenshotSection({ link }: { link: ZBookmarkedLink }) {
return (
<div className="relative h-full min-w-full">
@@ -60,6 +70,8 @@ export default function LinkContentSection({
let content;
if (section === "cached") {
content = <CachedContentSection link={bookmark.content} />;
+ } else if (section === "archive") {
+ content = <FullPageArchiveSection link={bookmark.content} />;
} else {
content = <ScreenshotSection link={bookmark.content} />;
}
@@ -79,6 +91,12 @@ export default function LinkContentSection({
>
Screenshot
</SelectItem>
+ <SelectItem
+ value="archive"
+ disabled={!bookmark.content.fullPageArchiveAssetId}
+ >
+ Archive
+ </SelectItem>
</SelectGroup>
</SelectContent>
</Select>