debug: 添加图片处理按钮状态调试日志
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled

- 在 chat.tsx 中添加状态重置日志
- 在 image-preview.tsx 中添加按钮状态监控
- 帮助定位按钮变灰问题
This commit is contained in:
Your Name 2026-01-18 11:30:10 +08:00
parent 59eff93109
commit c674e7e861
2 changed files with 21 additions and 1 deletions

View File

@ -648,11 +648,13 @@ export function Chat({
// 移除加载消息 // 移除加载消息
setMessages((prev) => prev.filter((msg) => msg.id !== messageId)); setMessages((prev) => prev.filter((msg) => msg.id !== messageId));
} finally { } finally {
console.log("[变清晰] finally 块执行,重置 isProcessingEnhance");
setIsProcessingEnhance(false); setIsProcessingEnhance(false);
} }
}; };
reader.onerror = () => { reader.onerror = () => {
console.log("[变清晰] reader.onerror 执行,重置 isProcessingEnhance");
toast.error("图片读取失败"); toast.error("图片读取失败");
setMessages((prev) => prev.filter((msg) => msg.id !== messageId)); setMessages((prev) => prev.filter((msg) => msg.id !== messageId));
setIsProcessingEnhance(false); setIsProcessingEnhance(false);
@ -661,6 +663,7 @@ export function Chat({
reader.readAsDataURL(blob); reader.readAsDataURL(blob);
} catch (error) { } catch (error) {
console.error("[变清晰] 错误:", error); console.error("[变清晰] 错误:", error);
console.log("[变清晰] 外层 catch 执行,重置 isProcessingEnhance");
toast.error(error instanceof Error ? error.message : "变清晰失败,请稍后重试"); toast.error(error instanceof Error ? error.message : "变清晰失败,请稍后重试");
setMessages((prev) => prev.filter((msg) => msg.id !== messageId)); setMessages((prev) => prev.filter((msg) => msg.id !== messageId));
setIsProcessingEnhance(false); setIsProcessingEnhance(false);
@ -790,11 +793,13 @@ export function Chat({
// 移除加载消息 // 移除加载消息
setMessages((prev) => prev.filter((msg) => msg.id !== messageId)); setMessages((prev) => prev.filter((msg) => msg.id !== messageId));
} finally { } finally {
console.log("[抠图] finally 块执行,重置 isProcessingRmbg");
setIsProcessingRmbg(false); setIsProcessingRmbg(false);
} }
}; };
reader.onerror = () => { reader.onerror = () => {
console.log("[抠图] reader.onerror 执行,重置 isProcessingRmbg");
toast.error("图片读取失败"); toast.error("图片读取失败");
setMessages((prev) => prev.filter((msg) => msg.id !== messageId)); setMessages((prev) => prev.filter((msg) => msg.id !== messageId));
setIsProcessingRmbg(false); setIsProcessingRmbg(false);
@ -803,6 +808,7 @@ export function Chat({
reader.readAsDataURL(blob); reader.readAsDataURL(blob);
} catch (error) { } catch (error) {
console.error("[抠图] 错误:", error); console.error("[抠图] 错误:", error);
console.log("[抠图] 外层 catch 执行,重置 isProcessingRmbg");
toast.error(error instanceof Error ? error.message : "抠图失败,请稍后重试"); toast.error(error instanceof Error ? error.message : "抠图失败,请稍后重试");
setMessages((prev) => prev.filter((msg) => msg.id !== messageId)); setMessages((prev) => prev.filter((msg) => msg.id !== messageId));
setIsProcessingRmbg(false); setIsProcessingRmbg(false);
@ -934,11 +940,13 @@ export function Chat({
// 移除加载消息 // 移除加载消息
setMessages((prev) => prev.filter((msg) => msg.id !== messageId)); setMessages((prev) => prev.filter((msg) => msg.id !== messageId));
} finally { } finally {
console.log("[图像拓展] finally 块执行,重置 isProcessingExtend");
setIsProcessingExtend(false); setIsProcessingExtend(false);
} }
}; };
reader.onerror = () => { reader.onerror = () => {
console.log("[图像拓展] reader.onerror 执行,重置 isProcessingExtend");
toast.error("图片读取失败"); toast.error("图片读取失败");
setMessages((prev) => prev.filter((msg) => msg.id !== messageId)); setMessages((prev) => prev.filter((msg) => msg.id !== messageId));
setIsProcessingExtend(false); setIsProcessingExtend(false);
@ -947,6 +955,7 @@ export function Chat({
reader.readAsDataURL(blob); reader.readAsDataURL(blob);
} catch (error) { } catch (error) {
console.error("[图像拓展] 错误:", error); console.error("[图像拓展] 错误:", error);
console.log("[图像拓展] 外层 catch 执行,重置 isProcessingExtend");
toast.error(error instanceof Error ? error.message : "图像拓展失败,请稍后重试"); toast.error(error instanceof Error ? error.message : "图像拓展失败,请稍后重试");
setMessages((prev) => prev.filter((msg) => msg.id !== messageId)); setMessages((prev) => prev.filter((msg) => msg.id !== messageId));
setIsProcessingExtend(false); setIsProcessingExtend(false);

View File

@ -1,6 +1,6 @@
"use client"; "use client";
import React, { useState } from "react"; import React, { useState, useEffect } from "react";
import { X, Download, Edit, Target, Paintbrush, Sparkles, Scissors, Expand, Maximize2, Move3D } from "lucide-react"; import { X, Download, Edit, Target, Paintbrush, Sparkles, Scissors, Expand, Maximize2, Move3D } from "lucide-react";
import { toast } from "sonner"; import { toast } from "sonner";
import { ImageAnnotator } from "./image-annotator"; import { ImageAnnotator } from "./image-annotator";
@ -48,6 +48,17 @@ export function ImagePreview({
const [showResizeEditor, setShowResizeEditor] = useState(false); const [showResizeEditor, setShowResizeEditor] = useState(false);
const [showAngleEditDialog, setShowAngleEditDialog] = useState(false); const [showAngleEditDialog, setShowAngleEditDialog] = useState(false);
// 调试日志:监控按钮状态变化
useEffect(() => {
console.log("[ImagePreview] 按钮状态更新:", {
isProcessingEnhance,
isProcessingRmbg,
isProcessingExtend,
isProcessingAngleEdit,
src: src?.substring(0, 50)
});
}, [isProcessingEnhance, isProcessingRmbg, isProcessingExtend, isProcessingAngleEdit, src]);
// 解析 alt 文本,提取原图 URL 和宽度 // 解析 alt 文本,提取原图 URL 和宽度
// 格式优先级: // 格式优先级:
// 1. thumb|||原图URL|||imageSize (最新格式,推荐,不会与 LaTeX/Markdown 冲突) // 1. thumb|||原图URL|||imageSize (最新格式,推荐,不会与 LaTeX/Markdown 冲突)