Skip to content

Commit e598c48

Browse files
chore: installed libs
1 parent ecd5912 commit e598c48

File tree

3 files changed

+290
-92
lines changed

3 files changed

+290
-92
lines changed

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
"@nextui-org/link": "2.0.35",
1717
"@nextui-org/listbox": "2.1.27",
1818
"@nextui-org/navbar": "2.0.37",
19+
"@nextui-org/select": "^2.2.7",
1920
"@nextui-org/snippet": "2.0.43",
2021
"@nextui-org/switch": "2.0.34",
2122
"@nextui-org/system": "2.2.6",
@@ -30,7 +31,8 @@
3031
"next": "14.2.4",
3132
"next-themes": "^0.2.1",
3233
"react": "18.3.1",
33-
"react-dom": "18.3.1"
34+
"react-dom": "18.3.1",
35+
"react-icons": "^5.3.0"
3436
},
3537
"devDependencies": {
3638
"@types/node": "20.5.7",

pages/index.tsx

Lines changed: 56 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -1,108 +1,75 @@
1+
import { Select, SelectItem } from "@nextui-org/select";
2+
import { Button } from "@nextui-org/button";
3+
import { Input } from "@nextui-org/input";
4+
15
import useIndex, { LICENSE_TYPES } from "@/hooks/useIndex";
26

37
export default function IndexPage() {
48
const { formData, setFormData, handleSubmit } = useIndex();
59

610
return (
7-
<div className="min-h-screen bg-gray-100 py-12 px-4 sm:px-6 lg:px-8">
8-
<div className="max-w-md mx-auto bg-white rounded-lg shadow-lg p-8">
9-
<h1 className="text-3xl font-bold text-center text-gray-900 mb-8">
11+
<div className="min-h-screen py-12">
12+
<div className="max-w-md mx-auto p-8">
13+
<h1 className="text-3xl font-bold text-center mb-8">
1014
MobaXterm Keygen
1115
</h1>
1216

1317
<form className="space-y-6" onSubmit={handleSubmit}>
14-
<div>
15-
<label
16-
className="block text-sm font-medium text-gray-700"
17-
htmlFor="licenseType"
18-
>
19-
License Type:
20-
</label>
21-
<select
22-
className="mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500"
23-
id="licenseType"
24-
value={formData.licenseType}
25-
onChange={(e) =>
26-
setFormData({ ...formData, licenseType: e.target.value })
27-
}
28-
>
29-
{Object.entries(LICENSE_TYPES).map(([key, value]) => (
30-
<option key={value} value={value}>
31-
{key}
32-
</option>
33-
))}
34-
</select>
35-
</div>
18+
<Select
19+
label="License Type"
20+
value={formData.licenseType}
21+
onChange={(e) =>
22+
setFormData({ ...formData, licenseType: e.target.value })
23+
}
24+
>
25+
{Object.entries(LICENSE_TYPES).map(([key, value]) => (
26+
<SelectItem key={value} value={value}>
27+
{key}
28+
</SelectItem>
29+
))}
30+
</Select>
3631

37-
<div>
38-
<label
39-
className="block text-sm font-medium text-gray-700"
40-
htmlFor="userName"
41-
>
42-
Username:
43-
</label>
44-
<input
45-
className="mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500"
46-
id="userName"
47-
pattern="[a-zA-Z]+"
48-
placeholder="Example: mobaXterm"
49-
title="Only letters are allowed"
50-
type="text"
51-
value={formData.userName}
52-
onChange={(e) =>
53-
setFormData({ ...formData, userName: e.target.value })
54-
}
55-
/>
56-
</div>
32+
<Input
33+
label="Username"
34+
placeholder="Example: mobaXterm"
35+
value={formData.userName}
36+
onChange={(e) =>
37+
setFormData({ ...formData, userName: e.target.value })
38+
}
39+
pattern="[a-zA-Z]+"
40+
description="Only letters are allowed"
41+
/>
5742

58-
<div>
59-
<label
60-
className="block text-sm font-medium text-gray-700"
61-
htmlFor="versionName"
62-
>
63-
Version:
64-
</label>
65-
<input
66-
className="mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500"
67-
id="versionName"
68-
pattern="^[1-9][0-9]*\.?\d{0,1}$"
69-
placeholder="Example: 24.3"
70-
title="Decimal number, and only one digit after the decimal point is allowed"
71-
value={formData.versionName}
72-
onChange={(e) =>
73-
setFormData({ ...formData, versionName: e.target.value })
74-
}
75-
/>
76-
</div>
43+
<Input
44+
label="Version"
45+
placeholder="Example: 24.3"
46+
value={formData.versionName}
47+
onChange={(e) =>
48+
setFormData({ ...formData, versionName: e.target.value })
49+
}
50+
pattern="^[1-9][0-9]*\.?\d{0,1}$"
51+
description="Decimal number, and only one digit after the decimal point is allowed"
52+
/>
7753

78-
<div>
79-
<label
80-
className="block text-sm font-medium text-gray-700"
81-
htmlFor="userNum"
82-
>
83-
Number of Users:
84-
</label>
85-
<input
86-
className="mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500"
87-
id="userNum"
88-
max="214783647"
89-
pattern="^[1-9]+\d*$"
90-
placeholder="Example: 1"
91-
title="Number must be between 1 and 214783647"
92-
type="text"
93-
value={formData.userNum}
94-
onChange={(e) =>
95-
setFormData({ ...formData, userNum: e.target.value })
96-
}
97-
/>
98-
</div>
54+
<Input
55+
description="Number must be between 1 and 214783647"
56+
label="Number of Users"
57+
placeholder="Example: 1"
58+
value={formData.userNum}
59+
pattern="^[1-9]+\d*$"
60+
onChange={(e) =>
61+
setFormData({ ...formData, userNum: e.target.value })
62+
}
63+
/>
9964

100-
<button
101-
className="w-full flex justify-center py-2 px-4 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500"
65+
<Button
66+
color="secondary"
67+
variant="shadow"
10268
type="submit"
69+
className="w-full"
10370
>
104-
Generate
105-
</button>
71+
Download Key
72+
</Button>
10673
</form>
10774
</div>
10875
</div>

0 commit comments

Comments
 (0)