diff --git a/frontend/src/components/PostEmbed.tsx b/frontend/src/components/PostEmbed.tsx index c375ca1..e229666 100644 --- a/frontend/src/components/PostEmbed.tsx +++ b/frontend/src/components/PostEmbed.tsx @@ -18,17 +18,35 @@ export default (({ post }: Props) => { { case 'nicovideo.jp': { - const [videoId] = url.pathname.match (/(?<=\/watch\/)[a-zA-Z0-9]+?(?=\/|$)/)! + const mVideoId = url.pathname.match (/(?<=\/watch\/)[a-zA-Z0-9]+?(?=\/|$)/) + if (!(mVideoId)) + break + + const [videoId] = mVideoId + return } + case 'twitter.com': case 'x.com': - const [userId] = url.pathname.match (/(?<=\/)[^\/]+?(?=\/|$|\?)/)! - const [statusId] = url.pathname.match (/(?<=\/status\/)\d+?(?=\/|$|\?)/)! - return + { + const mUserId = url.pathname.match (/(?<=\/)[^\/]+?(?=\/|$|\?)/) + const mStatusId = url.pathname.match (/(?<=\/status\/)\d+?(?=\/|$|\?)/) + if (!(mUserId) || !(mStatusId)) + break + + const [userId] = mUserId + const [statusId] = mStatusId + + return + } + case 'youtube.com': { - const videoId = url.searchParams.get ('v')! + const videoId = url.searchParams.get ('v') + if (!(videoId)) + break + return (