Skip to content
This repository was archived by the owner on Oct 20, 2025. It is now read-only.

Commit 6e033b5

Browse files
refactor(layout): update layout components and improve button styles
docs(README): enhance project description and add version badges
1 parent e8e692f commit 6e033b5

File tree

5 files changed

+55
-33
lines changed

5 files changed

+55
-33
lines changed

README.md

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,34 @@
11
# KnoxKit 🧟 - Project Zomboid Instance Manager
22

3+
<div align="center">
4+
<img src="./docs/assets/knoxkit-preview.png" alt="KnoxKit in action" width="800" />
5+
</div>
6+
37
> Outsmart the apocalypse, one instance at a time.
48
5-
> 🚀 **Version 0.1.0 Released**: Basic functionality available. More features coming soon!
9+
<div align="center">
10+
<p>
11+
<a href="https://github.com/valeriko777/KnoxKit/releases/tag/v1.0.0">
12+
<img src="https://img.shields.io/badge/Version-1.0.0-brightgreen" alt="Version 1.0.0">
13+
</a>
14+
<a href="https://github.com/valeriko777/KnoxKit/issues">
15+
<img src="https://img.shields.io/github/issues/valeriko777/KnoxKit" alt="Issues">
16+
</a>
17+
<a href="https://github.com/valeriko777/KnoxKit/blob/main/LICENSE.md">
18+
<img src="https://img.shields.io/badge/License-Custom%20Apache%202.0-blue" alt="License">
19+
</a>
20+
</p>
21+
<h3>🚀 Version 1.0.0 Now Available!</h3>
22+
<p>Basic functionality released. More features coming soon!</p>
23+
</div>
624

725
[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/nozzdev)
826

927
## 🎯 Overview
1028
KnoxKit is a powerful and user-friendly instance manager for Project Zomboid that helps you manage multiple game configurations, mod collections, and system resources efficiently.
1129

1230
## ✨ Key Features
13-
- **Instance Management**: Create, clone, and manage multiple game instances
31+
- **Instance Management**: Create, and manage multiple game instances
1432
- **Steam Workshop Integration**: Seamless mod collection synchronization
1533
- **Resource Optimization**: Smart resource allocation per instance
1634
- **Modern UI**: Clean and intuitive interface with dark/light themes

docs/assets/knoxkit-preview.png

94.4 KB
Loading

package.json

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,20 @@
33
"version": "1.0.0",
44
"description": "🧟 Outsmart the apocalypse, one instance at a time.",
55
"main": "./out/main/index.js",
6-
"author": "example.com",
7-
"homepage": "https://electron-vite.org",
6+
"author": {
7+
"name": "Valentin Marquez",
8+
"email": "me@nozz.dev"
9+
},
10+
"license": "SEE LICENSE IN LICENSE.md",
11+
"copyright": "Copyright © 2025 Valentin Marquez",
12+
"homepage": "https://github.com/valentin-marquez/KnoxKit",
13+
"repository": {
14+
"type": "git",
15+
"url": "https://github.com/valentin-marquez/KnoxKit.git"
16+
},
17+
"bugs": {
18+
"url": "https://github.com/valentin-marquez/KnoxKit/issues"
19+
},
820
"scripts": {
921
"format": "biome format --write .",
1022
"lint": "biome lint .",

src/renderer/src/components/instances/launch-button.tsx

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import { ArrowPathIcon, PlayIcon } from "@heroicons/react/24/outline"
1+
import { ArrowPathIcon } from "@heroicons/react/24/outline"
2+
import { PlayCircleIcon } from "@heroicons/react/24/solid"
23
import { useStore } from "@nanostores/react"
34
import { Button } from "@renderer/components/ui/button"
45
import { useTranslation } from "@renderer/hooks/useTranslation"
@@ -49,19 +50,29 @@ export function LaunchButton({
4950

5051
const showSpinner = isLaunching || status === "Downloading" || status === "Updating"
5152

53+
// Get the button variant based on status
54+
const getButtonVariant = () => {
55+
if (status === "Ready") return "default"
56+
if (status === "Error") return "destructive"
57+
if (status === "Running") return "secondary"
58+
return "outline"
59+
}
60+
5261
return (
5362
<Button
54-
variant={status === "Ready" ? "default" : "secondary"}
55-
className={`min-w-24 px-3 ${className}`}
63+
variant={getButtonVariant()}
64+
className={`min-w-28 px-3 py-1.5 font-medium transition-all duration-300 ${status === "Ready" ? "hover:scale-105" : ""} ${className}`}
5665
onClick={handleLaunch}
5766
disabled={isDisabled}
5867
>
59-
{showSpinner ? (
60-
<ArrowPathIcon className="mr-2 h-4 w-4 animate-spin" />
61-
) : (
62-
<PlayIcon className="mr-2 h-4 w-4" />
63-
)}
64-
<span className="truncate">{buttonText}</span>
68+
<div className="flex items-center justify-center space-x-1">
69+
{showSpinner ? (
70+
<ArrowPathIcon className="h-5 w-5 animate-spin" />
71+
) : (
72+
<PlayCircleIcon className="h-5 w-5" />
73+
)}
74+
<span className="truncate">{buttonText}</span>
75+
</div>
6576
</Button>
6677
)
6778
}

src/renderer/src/layouts/Layout.tsx

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ export default function Layout({ children }: { children: React.ReactNode }): JSX
6868
const bTime = b.createdAt ? new Date(b.createdAt).getTime() : 0
6969
return bTime - aTime
7070
})
71-
.slice(0, 3)
71+
.slice(0, 2) // Changed from 3 to 2 to only show the last two instances
7272

7373
setRecentInstances(instances)
7474
}
@@ -337,25 +337,6 @@ export default function Layout({ children }: { children: React.ReactNode }): JSX
337337
{t("layout.utilities")}
338338
</h3>
339339
{renderDownloadButton()}
340-
341-
{activeDownloadItems.length > 0 && (
342-
<div className="mt-2 mx-1 px-3 py-2 rounded-md bg-primary/5 border border-primary/10">
343-
<div className="flex items-center justify-between mb-1">
344-
<span className="text-xs font-medium text-primary">
345-
{t("layout.activeDownloads")}
346-
</span>
347-
<span className="text-xs text-muted-foreground">
348-
{activeDownloadItems.length}
349-
</span>
350-
</div>
351-
<div className="h-1.5 bg-muted rounded-full overflow-hidden">
352-
<div
353-
className="h-full bg-primary rounded-full animate-pulse"
354-
style={{ width: "35%" }}
355-
/>
356-
</div>
357-
</div>
358-
)}
359340
</div>
360341
</div>
361342
</div>

0 commit comments

Comments
 (0)