import { type YoutubePlayerVars, escapeHtml, safeNumber, validateVideoId, } from '@react-native-youtube-bridge/core'; import { useCallback } from 'react'; import { youtubeIframeScripts } from './youtubeIframeScripts'; const useCreateLocalPlayerHtml = ({ videoId, origin, startTime, endTime, autoplay, controls, loop, muted, playsinline, rel, useInlineHtml, }: YoutubePlayerVars & { videoId: string | null | undefined; useInlineHtml: boolean }) => { const createPlayerHTML = useCallback(() => { if (!useInlineHtml || videoId === undefined) { return ''; } if (!validateVideoId(videoId)) { return '
Invalid YouTube ID
'; } const safeOrigin = escapeHtml(origin) || 'https://localhost'; const safeStartTime = safeNumber(startTime); const safeEndTime = endTime ? safeNumber(endTime) : undefined; // NOTE - https://marketplace.visualstudio.com/items?itemName=Tobermory.es6-string-html return /* html */ `
`; }, [ videoId, origin, startTime, endTime, autoplay, controls, loop, muted, playsinline, rel, useInlineHtml, ]); return createPlayerHTML; }; export default useCreateLocalPlayerHtml;