This commit is contained in:
Timothy Jaeryang Baek 2025-09-24 11:36:17 -05:00
parent 316f1d6ff0
commit 05732de898
3 changed files with 14 additions and 8 deletions

View File

@ -7,7 +7,7 @@
import Modal from '$lib/components/common/Modal.svelte'; import Modal from '$lib/components/common/Modal.svelte';
import XMark from '$lib/components/icons/XMark.svelte'; import XMark from '$lib/components/icons/XMark.svelte';
import { isValidHttpUrl } from '$lib/utils'; import { isValidHttpUrl, isYoutubeUrl } from '$lib/utils';
export let show = false; export let show = false;
export let onSubmit: (e) => void; export let onSubmit: (e) => void;
@ -17,10 +17,7 @@
const submitHandler = () => { const submitHandler = () => {
if (isValidHttpUrl(url)) { if (isValidHttpUrl(url)) {
onSubmit({ onSubmit({
type: type: isYoutubeUrl(url) ? 'youtube' : 'web',
url.startsWith('https://www.youtube.com') || url.startsWith('https://youtu.be') || url.startsWith('https://youtube.com') || url.startsWith('https://m.youtube.com')
? 'youtube'
: 'web',
data: url data: url
}); });

View File

@ -7,7 +7,7 @@
dayjs.extend(relativeTime); dayjs.extend(relativeTime);
import { tick, getContext, onMount, onDestroy } from 'svelte'; import { tick, getContext, onMount, onDestroy } from 'svelte';
import { removeLastWordFromString, isValidHttpUrl } from '$lib/utils'; import { removeLastWordFromString, isValidHttpUrl, isYoutubeUrl } from '$lib/utils';
import Tooltip from '$lib/components/common/Tooltip.svelte'; import Tooltip from '$lib/components/common/Tooltip.svelte';
import DocumentPage from '$lib/components/icons/DocumentPage.svelte'; import DocumentPage from '$lib/components/icons/DocumentPage.svelte';
import Database from '$lib/components/icons/Database.svelte'; import Database from '$lib/components/icons/Database.svelte';
@ -36,7 +36,7 @@
: items), : items),
...(query.startsWith('http') ...(query.startsWith('http')
? query.startsWith('https://www.youtube.com') || query.startsWith('https://youtu.be') ? isYoutubeUrl(query)
? [{ type: 'youtube', name: query, description: query }] ? [{ type: 'youtube', name: query, description: query }]
: [ : [
{ {
@ -228,7 +228,7 @@
{/if} {/if}
{/each} {/each}
{#if query.startsWith('https://www.youtube.com') || query.startsWith('https://youtu.be')} {#if isYoutubeUrl(query)}
<button <button
class="px-2 py-1 rounded-xl w-full text-left bg-gray-50 dark:bg-gray-800 dark:text-gray-100 selected-command-option-button" class="px-2 py-1 rounded-xl w-full text-left bg-gray-50 dark:bg-gray-800 dark:text-gray-100 selected-command-option-button"
type="button" type="button"

View File

@ -799,6 +799,15 @@ export const isValidHttpUrl = (string: string) => {
return url.protocol === 'http:' || url.protocol === 'https:'; return url.protocol === 'http:' || url.protocol === 'https:';
}; };
export const isYoutubeUrl = (url: string) => {
return (
url.startsWith('https://www.youtube.com') ||
url.startsWith('https://youtu.be') ||
url.startsWith('https://youtube.com') ||
url.startsWith('https://m.youtube.com')
);
};
export const removeEmojis = (str: string) => { export const removeEmojis = (str: string) => {
// Regular expression to match emojis // Regular expression to match emojis
const emojiRegex = /[\uD800-\uDBFF][\uDC00-\uDFFF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDE4F]/g; const emojiRegex = /[\uD800-\uDBFF][\uDC00-\uDFFF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDE4F]/g;