mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2025-06-28 18:17:37 +00:00
* Update ScriptAccordion and ScriptItem components for improved styling * Add README.md for Proxmox VE Helper-Scripts Frontend * Remove testing dependencies and related test files from the frontend project * Update analytics URL in siteConfig to point to community-scripts.org * Refactor ESLint configuration to have one source of truth and run "npm lint" to apply new changes * Update lint script in package.json to remove npm * Add 'next' option to ESLint configuration for improved compatibility * Update package dependencies and versions in package.json and package-lock.json * Refactor theme provider import and enhance calendar component for dynamic icon rendering * rename sidebar, alerts and buttons * rename description and interfaces files * rename more files * change folder name * Refactor tooltip logic to improve updateable condition handling * Enhance CommandMenu to prevent duplicate scripts across categories * Remove test step from frontend CI/CD workflow
41 lines
1.4 KiB
TypeScript
41 lines
1.4 KiB
TypeScript
import type { Script } from "@/lib/types";
|
|
|
|
export default function DefaultSettings({ item }: { item: Script }) {
|
|
const getDisplayValueFromRAM = (ram: number) => (ram >= 1024 ? `${Math.floor(ram / 1024)}GB` : `${ram}MB`);
|
|
|
|
const ResourceDisplay = ({ settings, title }: { settings: (typeof item.install_methods)[0]; title: string }) => {
|
|
const { cpu, ram, hdd } = settings.resources;
|
|
return (
|
|
<div>
|
|
<h2 className="text-md font-semibold">{title}</h2>
|
|
<p className="text-sm text-muted-foreground">
|
|
CPU:
|
|
{cpu}
|
|
vCPU
|
|
</p>
|
|
<p className="text-sm text-muted-foreground">
|
|
RAM:
|
|
{getDisplayValueFromRAM(ram ?? 0)}
|
|
</p>
|
|
<p className="text-sm text-muted-foreground">
|
|
HDD:
|
|
{hdd}
|
|
GB
|
|
</p>
|
|
</div>
|
|
);
|
|
};
|
|
|
|
const defaultSettings = item.install_methods.find(method => method.type === "default");
|
|
const defaultAlpineSettings = item.install_methods.find(method => method.type === "alpine");
|
|
|
|
const hasDefaultSettings = defaultSettings?.resources && Object.values(defaultSettings.resources).some(Boolean);
|
|
|
|
return (
|
|
<div className="space-y-4 flex-col flex">
|
|
{hasDefaultSettings && <ResourceDisplay settings={defaultSettings} title="Default settings" />}
|
|
{defaultAlpineSettings && <ResourceDisplay settings={defaultAlpineSettings} title="Default Alpine settings" />}
|
|
</div>
|
|
);
|
|
}
|