feat: integrate luckysheet inline and fullscreen
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
import { NextResponse } from "next/server";
|
||||
import { createSupabaseRouteClient } from "@/lib/supabase/server";
|
||||
|
||||
interface RouteContext {
|
||||
params: {
|
||||
tableId: string;
|
||||
};
|
||||
}
|
||||
|
||||
export async function GET(request: Request, context: RouteContext) {
|
||||
const supabase = await createSupabaseRouteClient();
|
||||
|
||||
const { data: { user } } = await supabase.auth.getUser();
|
||||
|
||||
if (!user) {
|
||||
return NextResponse.json({ error: "Unauthorized" }, { status: 401 });
|
||||
}
|
||||
|
||||
// 强制 await params,以解决 Next.js 16/Turbopack 错误。
|
||||
// 必须忽略类型检查,因为 Next.js 16/Turbopack 在运行时将 params 视为 Promise。
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
const tableId = (await (context as any).params).tableId;
|
||||
|
||||
if (!tableId) {
|
||||
return NextResponse.json({ error: "Missing tableId" }, { status: 400 });
|
||||
}
|
||||
|
||||
try {
|
||||
// 假设 RLS 确保了用户只能访问其有权限的表格
|
||||
const { data: tableData, error } = await supabase
|
||||
.from("document_tables")
|
||||
.select("*")
|
||||
.eq("id", tableId)
|
||||
.single();
|
||||
|
||||
if (error) {
|
||||
console.error("Error fetching table:", error);
|
||||
return NextResponse.json({ error: "Failed to fetch table data" }, { status: 500 });
|
||||
}
|
||||
|
||||
if (!tableData) {
|
||||
return NextResponse.json({ error: "Table not found" }, { status: 404 });
|
||||
}
|
||||
|
||||
return NextResponse.json(tableData, { status: 200 });
|
||||
|
||||
} catch (error) {
|
||||
console.error("API error:", error);
|
||||
return NextResponse.json({ error: "Internal Server Error" }, { status: 500 });
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user