From adfbff63bc56fb35942af314c7e9c3be5197900f Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Mon, 27 Jan 2025 14:15:42 +0100 Subject: [PATCH] Update page.tsx --- frontend/src/app/category-view/page.tsx | 46 +++++++++++++------------ 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/frontend/src/app/category-view/page.tsx b/frontend/src/app/category-view/page.tsx index 4797f74a0..0b5ffa15f 100644 --- a/frontend/src/app/category-view/page.tsx +++ b/frontend/src/app/category-view/page.tsx @@ -67,12 +67,12 @@ const CategoryView = () => { const cpu = script.install_methods[0]?.resources.cpu; const ram = script.install_methods[0]?.resources.ram; const hdd = script.install_methods[0]?.resources.hdd; - + const resourceParts = []; if (cpu) resourceParts.push(<span key="cpu"><b>CPU:</b> {cpu}vCPU</span>); if (ram) resourceParts.push(<span key="ram"><b>RAM:</b> {ram}MB</span>); if (hdd) resourceParts.push(<span key="hdd"><b>HDD:</b> {hdd}GB</span>); - + return resourceParts.length > 0 ? ( <div className="text-sm text-gray-400"> {resourceParts.map((part, index) => ( @@ -85,6 +85,14 @@ const CategoryView = () => { ) : null; }; + const renderType = (type: string) => { + return ( + <span className="text-xs font-semibold text-blue-500 bg-gray-200 px-2 py-1 rounded-full"> + {type.toUpperCase()} + </span> + ); + }; + return ( <div className="p-6 mt-20"> {categories.length === 0 && ( @@ -122,25 +130,19 @@ const CategoryView = () => { onClick={() => handleScriptClick(script.slug)} > <CardContent className="flex flex-col gap-4"> - <div className="flex items-center gap-4"> - <img - src={script.logo || defaultLogo} - alt={script.name} - className="h-12 w-12 object-contain" - /> - <div> - <h3 className="text-lg font-bold">{script.name}</h3> - <p className="text-sm text-gray-500"> - <b>Created at:</b> {script.date_created || "No date available"} - </p> - <p - className="text-sm text-gray-700" - title={script.description || "No description available."} - > - {truncateDescription(script.description || "No description available.")} - </p> - </div> + <div className="flex justify-between"> + <h3 className="text-lg font-bold">{script.name}</h3> + {renderType(script.type || "MISC")} </div> + <p className="text-sm text-gray-500"> + <b>Created at:</b> {script.date_created || "No date available"} + </p> + <p + className="text-sm text-gray-700 hover:text-gray-900" + title={script.description || "No description available."} + > + {truncateDescription(script.description || "No description available.")} + </p> {renderResources(script)} </CardContent> </Card> @@ -162,9 +164,9 @@ const CategoryView = () => { <div> {/* Categories Grid */} <div className="flex justify-between items-center mb-8"> - <h1 className="text-4xl font-bold">Categories</h1> + <h1 className="text-3xl font-semibold mb-4">Categories</h1> <p className="text-sm text-gray-500"> - {categories.reduce((acc, cat) => acc + (cat.scripts?.length || 0), 0)} Total scripts + {new Set(categories.flatMap((cat) => cat.scripts.map((s) => s.slug))).size} Total scripts </p> </div> <div className="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-8">