mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2025-09-13 07:10:51 +02:00
* Enhance Tooltip component by adding CircleHelp icon and adjusting layout. Updated TooltipContent max width for better display. * Refactor ScriptItem and InstallCommand components to improve conditional rendering based on item type. Updated text to clarify usage instructions for 'misc' type scripts.
86 lines
2.8 KiB
TypeScript
86 lines
2.8 KiB
TypeScript
import CodeCopyButton from "@/components/ui/code-copy-button";
|
|
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";
|
|
import { basePath } from "@/config/siteConfig";
|
|
import { Script } from "@/lib/types";
|
|
import { getDisplayValueFromType } from "../ScriptInfoBlocks";
|
|
|
|
const getInstallCommand = (scriptPath?: string, isAlpine = false) => {
|
|
return `bash -c "$(wget -q${isAlpine ? "" : "L"}O - https://github.com/community-scripts/${basePath}/raw/main/${scriptPath})"`;
|
|
};
|
|
|
|
export default function InstallCommand({ item }: { item: Script }) {
|
|
const alpineScript = item.install_methods.find(
|
|
(method) => method.type === "alpine",
|
|
);
|
|
|
|
const defaultScript = item.install_methods.find(
|
|
(method) => method.type === "default",
|
|
);
|
|
|
|
const renderInstructions = (isAlpine = false) => (
|
|
<>
|
|
<p className="text-sm mt-2">
|
|
{isAlpine ? (
|
|
<>
|
|
As an alternative option, you can use Alpine Linux and the{" "}
|
|
{item.name} package to create a {item.name}{" "}
|
|
{getDisplayValueFromType(item.type)} container with faster creation
|
|
time and minimal system resource usage. You are also obliged to
|
|
adhere to updates provided by the package maintainer.
|
|
</>
|
|
) : item.type == "misc" ? (
|
|
<>
|
|
To use the {item.name} script, run the command below in the shell.
|
|
</>
|
|
) : (
|
|
<>
|
|
{" "}
|
|
To create a new Proxmox VE {item.name}{" "}
|
|
{getDisplayValueFromType(item.type)}, run the command below in the
|
|
Proxmox VE Shell.
|
|
</>
|
|
)}
|
|
</p>
|
|
{isAlpine && (
|
|
<p className="mt-2 text-sm">
|
|
To create a new Proxmox VE Alpine-{item.name}{" "}
|
|
{getDisplayValueFromType(item.type)}, run the command below in the
|
|
Proxmox VE Shell
|
|
</p>
|
|
)}
|
|
</>
|
|
);
|
|
|
|
return (
|
|
<div className="p-4">
|
|
{alpineScript ? (
|
|
<Tabs defaultValue="default" className="mt-2 w-full max-w-4xl">
|
|
<TabsList>
|
|
<TabsTrigger value="default">Default</TabsTrigger>
|
|
<TabsTrigger value="alpine">Alpine Linux</TabsTrigger>
|
|
</TabsList>
|
|
<TabsContent value="default">
|
|
{renderInstructions()}
|
|
<CodeCopyButton>
|
|
{getInstallCommand(defaultScript?.script)}
|
|
</CodeCopyButton>
|
|
</TabsContent>
|
|
<TabsContent value="alpine">
|
|
{renderInstructions(true)}
|
|
<CodeCopyButton>
|
|
{getInstallCommand(alpineScript.script, true)}
|
|
</CodeCopyButton>
|
|
</TabsContent>
|
|
</Tabs>
|
|
) : defaultScript?.script ? (
|
|
<>
|
|
{renderInstructions()}
|
|
<CodeCopyButton>
|
|
{getInstallCommand(defaultScript.script)}
|
|
</CodeCopyButton>
|
|
</>
|
|
) : null}
|
|
</div>
|
|
);
|
|
}
|