LFM2-WebGPU / src /tools /open_webpage.js
mlabonne's picture
Add demo source code (#1)
68185ce verified
raw
history blame
1.22 kB
/**
* Open a webpage
* @param {string} src - The URL of the webpage.
* @returns {string} The validated URL.
*/
export function open_webpage(src) {
try {
const urlObj = new URL(src);
if (!["http:", "https:"].includes(urlObj.protocol)) {
throw new Error("Only HTTP and HTTPS URLs are allowed.");
}
return urlObj.href;
} catch (error) {
throw new Error("Invalid URL provided.");
}
}
export default (input, output) => {
return React.createElement(
"div",
{ className: "bg-blue-50 border border-blue-200 rounded-lg p-4" },
React.createElement(
"div",
{ className: "flex items-center mb-2" },
React.createElement(
"div",
{
className:
"w-8 h-8 bg-blue-100 rounded-full flex items-center justify-center mr-3",
},
"🌐",
),
React.createElement(
"h3",
{ className: "text-blue-900 font-semibold" },
"Web Page",
),
),
React.createElement("iframe", {
src: output,
className: "w-full border border-blue-300 rounded",
width: 480,
height: 360,
title: "Embedded content",
allow: "autoplay",
frameBorder: "0",
}),
);
};