Files
mnote/wolai-frontend/src/app/page.tsx
T

52 lines
1.3 KiB
TypeScript
Raw Normal View History

2025-11-23 10:55:04 +08:00
import { redirect } from "next/navigation";
import { createSupabaseServerClient } from "@/lib/supabase/server";
2025-11-29 05:16:23 +08:00
import { ensureDefaultWorkspace, resolveActiveWorkspaceId } from "@/lib/workspaces";
2025-11-23 10:55:04 +08:00
export default async function Home() {
const supabase = await createSupabaseServerClient();
const {
data: { session },
} = await supabase.auth.getSession();
if (!session) {
redirect("/login");
}
2025-11-29 05:16:23 +08:00
await ensureDefaultWorkspace(supabase, session.user.id, session.user.email ?? "我的空间");
const workspaceId = await resolveActiveWorkspaceId(supabase, session.user.id);
if (!workspaceId) {
redirect("/login");
}
2025-11-23 10:55:04 +08:00
const { data: firstDoc } = await supabase
.from("documents")
.select("id")
.eq("user_id", session.user.id)
2025-11-29 05:16:23 +08:00
.eq("workspace_id", workspaceId)
2025-11-23 10:55:04 +08:00
.order("created_at", { ascending: true })
.limit(1)
.maybeSingle();
if (firstDoc?.id) {
redirect(`/documents/${firstDoc.id}`);
}
const { data: createdDoc, error } = await supabase
.from("documents")
.insert({
user_id: session.user.id,
2025-11-29 05:16:23 +08:00
workspace_id: workspaceId,
2025-11-23 10:55:04 +08:00
title: "新页面",
content: {},
})
.select("id")
.single();
if (error || !createdDoc) {
redirect("/login");
}
redirect(`/documents/${createdDoc.id}`);
}