From 14bd1dc39b9f2d8ff0713a42538d921fd2eb2ac3 Mon Sep 17 00:00:00 2001 From: Mahesh Sanikommmu Date: Fri, 7 Nov 2025 11:39:35 -0800 Subject: [PATCH] added memory card improvements --- .../new/document-cards/note-preview.tsx | 12 +++- .../new/document-cards/youtube-preview.tsx | 49 +++++++++++++++ .../new/document-cards/youtube-utils.ts | 63 +++++++++++++++++++ apps/web/components/new/memories-grid.tsx | 54 +++++++++++++--- 4 files changed, 167 insertions(+), 11 deletions(-) create mode 100644 apps/web/components/new/document-cards/youtube-preview.tsx create mode 100644 apps/web/components/new/document-cards/youtube-utils.ts diff --git a/apps/web/components/new/document-cards/note-preview.tsx b/apps/web/components/new/document-cards/note-preview.tsx index 14a77d34..ef4a0030 100644 --- a/apps/web/components/new/document-cards/note-preview.tsx +++ b/apps/web/components/new/document-cards/note-preview.tsx @@ -79,18 +79,28 @@ function NoteIcon() { export function NotePreview({ document }: { document: DocumentWithMemories }) { return ( -
+

Note

+
+ + { + document.title && ( +

+ {document.title} +

+ ) + } {document.content && (

{document.content}

)} +
) } diff --git a/apps/web/components/new/document-cards/youtube-preview.tsx b/apps/web/components/new/document-cards/youtube-preview.tsx new file mode 100644 index 00000000..698a8faf --- /dev/null +++ b/apps/web/components/new/document-cards/youtube-preview.tsx @@ -0,0 +1,49 @@ +"use client" + +import type { DocumentsWithMemoriesResponseSchema } from "@repo/validation/api" +import type { z } from "zod" +import { dmSansClassName } from "@/utils/fonts" +import { cn } from "@lib/utils" +import { extractYouTubeVideoId } from "./youtube-utils" + +type DocumentsResponse = z.infer +type DocumentWithMemories = DocumentsResponse["documents"][0] + +export function YoutubePreview({ document }: { document: DocumentWithMemories }) { + const videoId = extractYouTubeVideoId(document.url) + + if (!videoId) { + return ( +
+ {document.title && ( +

+ {document.title} +

+ )} + {document.content && ( +

+ {document.content} +

+ )} +
+ ) + } + + const embedUrl = `https://www.youtube.com/embed/${videoId}` + + return ( +
+
+