import { Button } from "@/components/ui/button"; import { Script } from "@/lib/types"; import { BookOpenText, Code, ExternalLink, Globe } from "lucide-react"; import Link from "next/link"; import { useMemo } from "react"; export default function Buttons({ item }: { item: Script }) { const pattern = useMemo( () => /(https:\/\/github\.com\/community-scripts\/ProxmoxVE\/raw\/main\/(ct|misc|vm)\/([^\/]+)\.sh)/, [], ); const transformUrlToInstallScript = (url: string): string => { if (url.includes("/pve/")) { return url; } else if (url.includes("/ct/")) { return url.replace("/ct/", "/install/").replace(/\.sh$/, "-install.sh"); } return url; }; const sourceUrl = useMemo(() => { if (item.installCommand) { const match = item.installCommand.match(pattern); return match ? transformUrlToInstallScript(match[0]) : null; } return null; }, [item.installCommand, pattern]); return (
{item.website && ( )} {item.documentation && ( )} {item.post_install && ( )} {item.installCommand && sourceUrl && ( )}
); }