From d1c9112648342225ead649368a3d3370f8abe5b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B5=B7=E9=BE=99?= Date: Sun, 31 Aug 2025 14:17:55 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=BE=E7=89=87=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Interaction/templateStoryService.ts | 106 ++++++++++-------- app/signup/page.tsx | 2 +- lib/auth.ts | 2 +- 3 files changed, 61 insertions(+), 49 deletions(-) diff --git a/app/service/Interaction/templateStoryService.ts b/app/service/Interaction/templateStoryService.ts index 1514009..99f8a13 100644 --- a/app/service/Interaction/templateStoryService.ts +++ b/app/service/Interaction/templateStoryService.ts @@ -80,6 +80,64 @@ export const useTemplateStoryServiceHook = (): UseTemplateStoryService => { } }, [templateStoryUseCase]); + /** + * 更新指定角色的图片 + * @param {string} roleName - 角色名称 + * @param {string} imageUrl - 新的图片URL + */ + const updateRoleImage = useCallback( + (roleName: string, imageUrl: string): void => { + if (!selectedTemplate) { + console.warn("updateRoleImage: selectedTemplate 为空"); + return; + } + + console.log(`更新角色 ${roleName} 的图片:`, imageUrl); + + const updatedTemplate = { + ...selectedTemplate, + storyRole: selectedTemplate.storyRole.map((role) => + role.role_name === roleName + ? { ...role, photo_url: imageUrl } + : role + ), + }; + + console.log("更新后的模板:", updatedTemplate); + setSelectedTemplate(updatedTemplate); + }, + [selectedTemplate] + ); + + /** + * 更新指定道具的图片 + * @param {string} itemName - 道具名称 + * @param {string} imageUrl - 新的图片URL + */ + const updateItemImage = useCallback( + (itemName: string, imageUrl: string): void => { + if (!selectedTemplate) { + console.warn("updateItemImage: selectedTemplate 为空"); + return; + } + + console.log(`更新道具 ${itemName} 的图片:`, imageUrl); + + const updatedTemplate = { + ...selectedTemplate, + storyItem: selectedTemplate.storyItem.map((item) => + item.item_name === itemName + ? { ...item, photo_url: imageUrl } + : item + ), + }; + + console.log("更新后的模板:", updatedTemplate); + setSelectedTemplate(updatedTemplate); + }, + [selectedTemplate] + ); + /** * 上传人物头像并分析特征,替换旧的角色数据 * @param {string} imageUrl - 图片URL @@ -98,53 +156,7 @@ export const useTemplateStoryServiceHook = (): UseTemplateStoryService => { setIsLoading(false); } }, - [] - ); - - /** - * 更新指定角色的图片 - * @param {string} roleName - 角色名称 - * @param {string} imageUrl - 新的图片URL - */ - const updateRoleImage = useCallback( - (roleName: string, imageUrl: string): void => { - if (!selectedTemplate) return; - - const updatedTemplate = { - ...selectedTemplate, - storyRole: selectedTemplate.storyRole.map((role) => - role.role_name === roleName - ? { ...role, photo_url: imageUrl } - : role - ), - }; - - setSelectedTemplate(updatedTemplate); - }, - [selectedTemplate] - ); - - /** - * 更新指定道具的图片 - * @param {string} itemName - 道具名称 - * @param {string} imageUrl - 新的图片URL - */ - const updateItemImage = useCallback( - (itemName: string, imageUrl: string): void => { - if (!selectedTemplate) return; - - const updatedTemplate = { - ...selectedTemplate, - storyItem: selectedTemplate.storyItem.map((item) => - item.item_name === itemName - ? { ...item, photo_url: imageUrl } - : item - ), - }; - - setSelectedTemplate(updatedTemplate); - }, - [selectedTemplate] + [updateRoleImage] ); /** diff --git a/app/signup/page.tsx b/app/signup/page.tsx index dd6506e..247756f 100644 --- a/app/signup/page.tsx +++ b/app/signup/page.tsx @@ -124,7 +124,7 @@ export default function SignupPage() { router.push("/login?registered=true"); } catch (error: any) { console.error("Signup error:", error); - setFormError(error.message || "Registration failed, please try again"); + setFormError(error.message||error.msg || "Registration failed, please try again"); } finally { setIsSubmitting(false); } diff --git a/lib/auth.ts b/lib/auth.ts index 55945ba..733482c 100644 --- a/lib/auth.ts +++ b/lib/auth.ts @@ -393,7 +393,7 @@ export const registerUser = async ({ const data = await response.json(); console.log('data', data) if(!data.success){ - throw new Error(data.message) + throw new Error(data.message||data.msg) } return data as { success: boolean;