ref: restructure

This commit is contained in:
Derock 2023-11-14 20:05:30 -05:00
parent a6139f3d07
commit 8ab2e2f630
No known key found for this signature in database
12 changed files with 51 additions and 68 deletions

View file

@ -10,7 +10,6 @@ import {
FaEthernet,
} from "react-icons/fa6";
import { useMemo, useState } from "react";
import { AnimatePresence, motion } from "framer-motion";
type StatData = RouterOutputs["system"]["currentStats"];
type HistoricalStatData = RouterOutputs["system"]["history"];

View file

@ -1,7 +1,5 @@
import { api } from "~/trpc/server";
import Test from "./RSC";
import { StatCard } from "./StatCard";
import { SystemStatistics } from "./SystemStatistics";
import { SystemStatistics } from "./_components/SystemStatistics";
import { Project } from "./_components/Project";
export default async function DashboardHome() {
@ -12,7 +10,6 @@ export default async function DashboardHome() {
return (
<div className="mx-auto max-w-[1500px]">
<Test />
<SystemStatistics
initialData={initialStats}
historicalData={historicalData}

View file

@ -1,11 +0,0 @@
import { api } from "~/trpc/server";
export default async function Test() {
const user = await api.auth.me.query();
return (
<div>
Logged in as {user.username} ({user.id})
</div>
);
}

View file

@ -1,17 +0,0 @@
import { api } from "~/trpc/server";
import LoginForm from "./Login";
import { redirect } from "next/navigation";
export default async function Home() {
// if logged in already, redirect to dashboard
const userData = await api.auth.me.query().catch((err) => null);
if (userData) {
redirect("/home");
}
return (
<div className="flex h-screen flex-col justify-center align-middle">
<LoginForm />
</div>
);
}

View file

@ -25,7 +25,7 @@ export function SetupForm() {
const [toastLoading, setToastLoading] = useState<
string | number | undefined
>();
const setupInstance = api.setup.useMutation({
const setupInstance = api.setup.setup.useMutation({
onSuccess: () => {
router.push("/dashboard");
toast.success("Successfully setup instance!", { id: toastLoading });

View file

@ -1,5 +1,5 @@
import { createTRPCRouter } from "~/server/api/trpc";
import { setupProcedure } from "./routers/setup";
import { setupRouter } from "./routers/setup";
import { authRouter } from "./routers/auth";
import { systemRouter } from "./routers/system";
@ -9,7 +9,7 @@ import { systemRouter } from "./routers/system";
* All routers added in /api/routers should be manually added here.
*/
export const appRouter = createTRPCRouter({
setup: setupProcedure,
setup: setupRouter,
auth: authRouter,
system: systemRouter,
});

View file

@ -1,5 +1,5 @@
import { z } from "zod";
import { publicProcedure } from "../trpc";
import { createTRPCRouter, publicProcedure } from "../trpc";
import { sql } from "drizzle-orm";
import { users } from "~/server/db/schema";
import { TRPCError } from "@trpc/server";
@ -7,7 +7,8 @@ import assert from "assert";
import { Session } from "~/server/auth/Session";
import { hash } from "argon2";
export const setupProcedure = publicProcedure
export const setupRouter = createTRPCRouter({
setup: publicProcedure
.input(
z.object({
username: z.string(),
@ -47,4 +48,18 @@ export const setupProcedure = publicProcedure
return {
success: true,
};
});
}),
status: publicProcedure.query(async ({ ctx }) => {
const [userCount] = await ctx.db
.select({
count: sql<number>`count(*)`,
})
.from(users)
.limit(1);
return {
setup: userCount && userCount.count > 0,
};
}),
});