From 4a110ea05d0d3348dd3245b474e59da6a27b7016 Mon Sep 17 00:00:00 2001 From: 7w1 Date: Sun, 29 Mar 2026 22:25:47 -0500 Subject: [PATCH] revert extraneous changes --- .changeset/fix-youtube-url-crash.md | 5 +++++ src/app/components/url-preview/ClientPreview.tsx | 14 ++++++-------- 2 files changed, 11 insertions(+), 8 deletions(-) create mode 100644 .changeset/fix-youtube-url-crash.md diff --git a/.changeset/fix-youtube-url-crash.md b/.changeset/fix-youtube-url-crash.md new file mode 100644 index 000000000..d372ff6d5 --- /dev/null +++ b/.changeset/fix-youtube-url-crash.md @@ -0,0 +1,5 @@ +--- +default: patch +--- + +Fix crash when previewing non-video YouTube URLs (channels, @handles, etc.) that lack query parameters. diff --git a/src/app/components/url-preview/ClientPreview.tsx b/src/app/components/url-preview/ClientPreview.tsx index 948f48095..ac35059e7 100644 --- a/src/app/components/url-preview/ClientPreview.tsx +++ b/src/app/components/url-preview/ClientPreview.tsx @@ -168,21 +168,19 @@ function parseYoutubeLink(url: string): YoutubeLink | null { [videoId] = split; params = split[1]?.split('&'); } else if (url.includes('/shorts/')) { - const split = path.split('/shorts/'); + const split = path.split('?'); [videoId] = split; - params = split[1]?.split('shorts'); + params = split[1]?.split('&') ?? []; } else if (url.includes('youtube.com')) { - params = path.split('?')[1].split('&'); - videoId = params.find((s) => s.startsWith('v='), params)?.split('v=')[1]; + params = path.split('?')[1]?.split('&') ?? []; + videoId = params.find((s) => s.startsWith('v='))?.split('v=')[1]; } else return null; if (!videoId) return null; // playlist is not used for the embed, it can be appended as is - const playlist = params ? params.find((s) => s.startsWith('list='), params) : undefined; - const timestamp = params - ? params.find((s) => s.startsWith('t='), params)?.split('t=')[1] - : undefined; + const playlist = params ? params.find((s) => s.startsWith('list=')) : undefined; + const timestamp = params ? params.find((s) => s.startsWith('t='))?.split('t=')[1] : undefined; return { videoId,