From 32124bb8ec13d2f05b18805481ad4fe4a7d546c1 Mon Sep 17 00:00:00 2001 From: Michel Roegl-Brunner Date: Tue, 7 Oct 2025 16:26:25 +0200 Subject: [PATCH] chore: replace emojis with Lucide icons MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Replace all emojis with Lucide React icons for better accessibility and consistency - Update page header: rocket emoji → Rocket icon - Update tab navigation: package, hard drive, folder open icons - Update terminal controls: Play, Square, Trash2, X icons - Update filter bar: Package, Monitor, Wrench, Server, FileText, Calendar icons - Update version display: Check icon for up-to-date status - Replace emoji prefixes in terminal and error messages with text labels - Remove unused icon imports --- src/app/_components/FilterBar.tsx | 105 ++++++++++++---------- src/app/_components/ScriptDetailModal.tsx | 6 +- src/app/_components/Terminal.tsx | 21 +++-- src/app/_components/VersionDisplay.tsx | 7 +- src/app/api/trpc/[trpc]/route.ts | 2 +- src/app/page.tsx | 21 +++-- 6 files changed, 93 insertions(+), 69 deletions(-) diff --git a/src/app/_components/FilterBar.tsx b/src/app/_components/FilterBar.tsx index a92e919..7574146 100644 --- a/src/app/_components/FilterBar.tsx +++ b/src/app/_components/FilterBar.tsx @@ -2,6 +2,7 @@ import React, { useState } from "react"; import { Button } from "./ui/button"; +import { Package, Monitor, Wrench, Server, FileText, Calendar } from "lucide-react"; export interface FilterState { searchQuery: string; @@ -20,10 +21,10 @@ interface FilterBarProps { } const SCRIPT_TYPES = [ - { value: "ct", label: "LXC Container", icon: "đŸ“Ļ" }, - { value: "vm", label: "Virtual Machine", icon: "đŸ’ģ" }, - { value: "addon", label: "Add-on", icon: "🔧" }, - { value: "pve", label: "PVE Host", icon: "đŸ–Ĩī¸" }, + { value: "ct", label: "LXC Container", Icon: Package }, + { value: "vm", label: "Virtual Machine", Icon: Monitor }, + { value: "addon", label: "Add-on", Icon: Wrench }, + { value: "pve", label: "PVE Host", Icon: Server }, ]; export function FilterBar({ @@ -183,38 +184,41 @@ export function FilterBar({ {isTypeDropdownOpen && (
- {SCRIPT_TYPES.map((type) => ( - - ))} + {SCRIPT_TYPES.map((type) => { + const IconComponent = type.Icon; + return ( + + ); + })}
@@ -366,7 +370,8 @@ export function Terminal({ scriptPath, onClose, mode = 'local', server, isUpdate size="sm" className="bg-gray-600 text-white hover:bg-gray-700" > - ✕ Close + + Close
diff --git a/src/app/_components/VersionDisplay.tsx b/src/app/_components/VersionDisplay.tsx index 68deef7..69ec3bc 100644 --- a/src/app/_components/VersionDisplay.tsx +++ b/src/app/_components/VersionDisplay.tsx @@ -3,7 +3,7 @@ import { api } from "~/trpc/react"; import { Badge } from "./ui/badge"; import { Button } from "./ui/button"; -import { ExternalLink, Download, RefreshCw, Loader2 } from "lucide-react"; +import { ExternalLink, Download, RefreshCw, Loader2, Check } from "lucide-react"; import { useState } from "react"; // Loading overlay component @@ -223,8 +223,9 @@ export function VersionDisplay() { )} {isUpToDate && ( - - ✓ Up to date + + + Up to date )} diff --git a/src/app/api/trpc/[trpc]/route.ts b/src/app/api/trpc/[trpc]/route.ts index 7d05596..7514490 100644 --- a/src/app/api/trpc/[trpc]/route.ts +++ b/src/app/api/trpc/[trpc]/route.ts @@ -15,7 +15,7 @@ const handler = (req: NextRequest) => env.NODE_ENV === "development" ? ({ path, error }) => { console.error( - `❌ tRPC failed on ${path ?? ""}: ${error.message}`, + `[ERROR] tRPC failed on ${path ?? ""}: ${error.message}`, ); } : undefined, diff --git a/src/app/page.tsx b/src/app/page.tsx index b1298ef..41f163c 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -10,6 +10,7 @@ import { Terminal } from './_components/Terminal'; import { SettingsButton } from './_components/SettingsButton'; import { VersionDisplay } from './_components/VersionDisplay'; import { Button } from './_components/ui/button'; +import { Rocket, Package, HardDrive, FolderOpen } from 'lucide-react'; export default function Home() { const [runningScript, setRunningScript] = useState<{ path: string; name: string; mode?: 'local' | 'ssh'; server?: any } | null>(null); @@ -28,8 +29,9 @@ export default function Home() {
{/* Header */}
-

- 🚀 PVE Scripts Management +

+ + PVE Scripts Management

Manage and execute Proxmox helper scripts locally with live output streaming @@ -59,34 +61,37 @@ export default function Home() { variant="ghost" size="null" onClick={() => setActiveTab('scripts')} - className={`px-3 py-1 text-sm ${ + className={`px-3 py-1 text-sm flex items-center gap-2 ${ activeTab === 'scripts' ? 'bg-accent text-accent-foreground' : 'hover:bg-accent hover:text-accent-foreground' }`}> - đŸ“Ļ Available Scripts + + Available Scripts