diff --git a/src/app/actions/getProblem.ts b/src/app/actions/getProblem.ts index 7fd776c..223f2eb 100644 --- a/src/app/actions/getProblem.ts +++ b/src/app/actions/getProblem.ts @@ -2,11 +2,11 @@ 'use server'; import prisma from '@/lib/prisma'; -import { Locale } from '@/generated/client'; // ✅ 导入 enum Locale +import { Locale } from '@/generated/client'; import { serialize } from 'next-mdx-remote/serialize'; -export async function getProblemData(problemId: string, locale: string) { - const selectedLocale = locale as Locale; // ✅ 强制转换 string 为 Prisma enum +export async function getProblemData(problemId: string, locale?: string) { + const selectedLocale = locale as Locale; const problem = await prisma.problem.findUnique({ where: { id: problemId }, @@ -17,7 +17,7 @@ export async function getProblemData(problemId: string, locale: string) { }, localizations: { where: { - locale: selectedLocale, // ✅ 这里使用枚举 + locale: selectedLocale, }, }, }, diff --git a/src/components/creater/edit-code-panel.tsx b/src/components/creater/edit-code-panel.tsx index 5479e92..8b73b59 100644 --- a/src/components/creater/edit-code-panel.tsx +++ b/src/components/creater/edit-code-panel.tsx @@ -1,11 +1,14 @@ -'use client'; +"use client" -import { useEffect, useState } from 'react'; +import React, { useEffect, useState } from 'react'; import { getProblemData } from '@/app/actions/getProblem'; +import { updateProblemTemplate } from '@/components/creater/problem-maintain'; import { Label } from '@/components/ui/label'; import { Button } from '@/components/ui/button'; -import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; -import { CoreEditor } from "@/components/core-editor"; +import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; +import { CoreEditor } from '@/components/core-editor'; +import { Language } from '@/generated/client'; +import { toast } from 'sonner'; interface Template { language: string; @@ -14,65 +17,50 @@ interface Template { interface EditCodePanelProps { problemId: string; - onUpdate?: (data: Template) => Promise<{ success: boolean }>; } -// 模拟保存函数 -async function saveTemplate(data: Template): Promise<{ success: boolean }> { - try { - console.log('保存模板数据:', data); - await new Promise(resolve => setTimeout(resolve, 500)); - return { success: true }; - } catch { - return { success: false }; - } -} - -export default function EditCodePanel({ problemId, onUpdate = saveTemplate }: EditCodePanelProps) { +export default function EditCodePanel({ problemId }: EditCodePanelProps) { const [codeTemplate, setCodeTemplate] = useState