"use client"; import { X } from "lucide-react"; import { Suspense } from "react"; import Image from "next/image"; import type { AppVersion, Script } from "@/lib/types"; import { cleanSlug } from "@/lib/utils/resource-utils"; import { Separator } from "@/components/ui/separator"; import { useVersions } from "@/hooks/use-versions"; import { basePath } from "@/config/site-config"; import { extractDate } from "@/lib/time"; import { getDisplayValueFromType } from "./script-info-blocks"; import DefaultPassword from "./script-items/default-password"; import InstallCommand from "./script-items/install-command"; import { ResourceDisplay } from "./resource-display"; import Description from "./script-items/description"; import ConfigFile from "./script-items/config-file"; import InterFaces from "./script-items/interfaces"; import Tooltips from "./script-items/tool-tips"; import Buttons from "./script-items/buttons"; import Alerts from "./script-items/alerts"; type ScriptItemProps = { item: Script; setSelectedScript: (script: string | null) => void; }; function ScriptHeader({ item }: { item: Script }) { const defaultInstallMethod = item.install_methods?.[0]; const os = defaultInstallMethod?.resources?.os || "Proxmox Node"; const version = defaultInstallMethod?.resources?.version || ""; return (
Loading versions...
; } const matchedVersion = versions.find((v: AppVersion) => { const cleanName = v.name.replace(/[^a-z0-9]/gi, "").toLowerCase(); return cleanName === cleanSlug(item.slug) || cleanName.includes(cleanSlug(item.slug)); }); if (!matchedVersion) return null; return {matchedVersion.version}; } export function ScriptItem({ item, setSelectedScript }: ScriptItemProps) { const closeScript = () => { window.history.pushState({}, document.title, window.location.pathname); setSelectedScript(null); }; return (