import * as React from "react";
import * as loader from "tc-loader";
import {BBCodeHandlerContext, rendererReact, rendererText} from "tc-shared/text/bbcode/renderer";
import {ElementRenderer} from "vendor/xbbcode/renderer/base";
import {BBCodeTagElement} from "vendor/xbbcode/elements";
import {BBCodeRenderer} from "tc-shared/text/bbcode";
import {spawn_context_menu} from "tc-shared/ui/elements/ContextMenu";
import {copyToClipboard} from "tc-shared/utils/helpers";
import {getIpcInstance, IPCChannel} from "tc-shared/ipc/BrowserIPC";
import {useContext} from "react";
import * as contextmenu from "tc-shared/ui/elements/ContextMenu";
import IconPlay from "./YoutubePlayButton.svg";
import {tra} from "tc-shared/i18n/localize";
const cssStyle = require("./YoutubeRenderer.scss");
const patternYtVideoId = /^(?:http(?:s)?:\/\/)?(?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com\/(?:(?:watch)?\?(?:.*&)?v(?:i)?=|(?:embed|v|vi|user)\/))([^?&"'>]{10,11})$/;
let reactId = 0;
export const isYoutubeLink = (text: string) => {
const result = text.match(patternYtVideoId);
return !(!result || !result[1]);
}
export const YoutubeRenderer = (props: { children?: React.ReactElement | React.ReactElement[], url: string }) => {
const result = props.url.match(patternYtVideoId);
if(!result || !result[1]) {
if(props.children) {
return (