diff --git a/src/components/image-editor/ImageCanvasSpecGenerationPanelView.tsx b/src/components/image-editor/ImageCanvasSpecGenerationPanelView.tsx
index 93198069e..2842e7496 100644
--- a/src/components/image-editor/ImageCanvasSpecGenerationPanelView.tsx
+++ b/src/components/image-editor/ImageCanvasSpecGenerationPanelView.tsx
@@ -1,4 +1,11 @@
-import { ClipboardList, Cpu, ImagePlus } from 'lucide-react';
+import {
+ ClipboardList,
+ Cpu,
+ ImagePlus,
+ Loader2,
+ Sparkles,
+ Undo2,
+} from 'lucide-react';
import {
type CSSProperties,
type Dispatch,
@@ -466,61 +473,71 @@ export function ImageCanvasSpecGenerationPanelView({
>
{item.title}
-
-
- onUpdateSpecFormValue(
- item.key,
- limitIconSpecPrompt(event.target.value),
- )
+
+ onUpdateSpecFormValue(
+ item.key,
+ limitIconSpecPrompt(event.target.value),
+ )
+ }
+ />
+
+
-
+ onClick={() => optimizeIconSpecField(item.field)}
+ >
+ {item.optimization.optimizing ? (
+ <>
+
+ 正在优化
+ >
+ ) : (
+ <>
+
+ 一键优化
+ >
+ )}
+
+ {item.optimization.undoValue !== null &&
+ !item.optimization.optimizing ? (
optimizeIconSpecField(item.field)}
+ className="!gap-1 !px-2 !py-0.5 !text-[9px] !leading-3"
+ aria-label={`撤销${item.title}优化`}
+ disabled={isGenerating}
+ onClick={() => undoIconSpecOptimization(item.field)}
>
- {item.optimization.optimizing
- ? '正在优化'
- : '✦ 一键优化'}
+
+ 撤销
- {item.optimization.undoValue !== null &&
- !item.optimization.optimizing ? (
- <>
-
|
-
- undoIconSpecOptimization(item.field)
- }
- >
- ↺ 撤销
-
- >
- ) : null}
-
+ ) : null}
);