From 95b70221f57e2625e2184eb15bec6388d17f2534 Mon Sep 17 00:00:00 2001 From: headlesdev Date: Sat, 17 May 2025 16:17:35 +0200 Subject: [PATCH] Setup UI --- app/setup/SetupPage.tsx | 126 ++++++++++++++++++++++++++++++++++++++++ app/setup/page.tsx | 41 +++++++------ 2 files changed, 149 insertions(+), 18 deletions(-) create mode 100644 app/setup/SetupPage.tsx diff --git a/app/setup/SetupPage.tsx b/app/setup/SetupPage.tsx new file mode 100644 index 0000000..694a75b --- /dev/null +++ b/app/setup/SetupPage.tsx @@ -0,0 +1,126 @@ +"use client" + +import { useState } from "react" +import { Mail, User, Lock } from "lucide-react" + +export default function SetupPage() { + const [step, setStep] = useState(1) + + const handleNextStep = () => { + setStep(2) + } + + const handlePreviousStep = () => { + setStep(1) + } + + return ( +
+
+
+
    +
  • Create account
  • +
  • Next Steps
  • +
+
+ +
+
+ {step === 1 && ( +
+
+

Create account

+

Please create an account to get started

+
+ +
+
+ Email + +
Enter valid email address
+
+ +
+
+ Username + +
Enter valid username
+
+ +
+ Full Name + +
Enter valid full name
+
+
+ +
+ +
+
+ Password + +
Enter valid password
+
+ +
+ Repeat Password + +
Enter valid repeat password
+
+
+
+ +
+ +
+
+ )} + + {step === 2 && ( +
+
+

Next Steps

+

Here are some next steps to get you started

+ +
+

1. Click Complete to finish the setup & create the user

+

2. Create a site with a network

+

3. Add your first server to the network

+

4. Add all your self-hosted applications to the server

+

5. Setup notifications to be notified about any issues

+

6. Leave a star on GitHub if you like it

+
+
+ +
+ + +
+
+ )} +
+
+
+
+ ) +} diff --git a/app/setup/page.tsx b/app/setup/page.tsx index c058d30..77902f5 100644 --- a/app/setup/page.tsx +++ b/app/setup/page.tsx @@ -1,26 +1,31 @@ "use client"; -import { useEffect } from "react"; +import SetupPage from "./SetupPage"; +import Loading from "@/components/Loading"; + +import { useState, useEffect } from "react"; import { useRouter } from "next/navigation"; import axios from "axios"; +export default function Setup() { + const router = useRouter(); + const [loading, setLoading] = useState(true); -export default function SetupPage() { - const router = useRouter(); + useEffect(() => { + const init = async () => { + const response = await axios.get("/api/user/init"); + if (response.data.message !== "No users found") { + router.push("/"); + } else { + setLoading(false); + } + }; + init(); + }, []); - useEffect(() => { - const init = async () => { - const response = await axios.get("/api/user/init"); - if (response.data.message !== "No users found") { - router.push("/"); - } - }; - init(); - }, []); - - return ( -
-

Setup

-
- ); + if (loading) { + return ; + } else { + return ; + } } \ No newline at end of file