You've already forked Nano-Banana-AI-Image-Editor
新增 全局错误toast提示;
This commit is contained in:
@@ -3,9 +3,11 @@ import { geminiService, GenerationRequest, EditRequest } from '../services/gemin
|
||||
import { useAppStore } from '../store/useAppStore';
|
||||
import { generateId } from '../utils/imageUtils';
|
||||
import { Generation, Edit, Asset } from '../types';
|
||||
import { useToast } from '../components/ToastContext';
|
||||
|
||||
export const useImageGeneration = () => {
|
||||
const { addGeneration, setIsGenerating, setCanvasImage, setCurrentProject, currentProject } = useAppStore();
|
||||
const { addToast } = useToast();
|
||||
|
||||
const generateMutation = useMutation({
|
||||
mutationFn: async (request: GenerationRequest) => {
|
||||
@@ -35,15 +37,7 @@ export const useImageGeneration = () => {
|
||||
seed: request.seed,
|
||||
temperature: request.temperature
|
||||
},
|
||||
sourceAssets: request.referenceImage ? [{
|
||||
id: generateId(),
|
||||
type: 'original',
|
||||
url: `data:image/png;base64,${request.referenceImages[0]}`,
|
||||
mime: 'image/png',
|
||||
width: 1024,
|
||||
height: 1024,
|
||||
checksum: request.referenceImages[0].slice(0, 32)
|
||||
}] : request.referenceImages ? request.referenceImages.map((img, index) => ({
|
||||
sourceAssets: request.referenceImages ? request.referenceImages.map((img, index) => ({
|
||||
id: generateId(),
|
||||
type: 'original' as const,
|
||||
url: `data:image/png;base64,${img}`,
|
||||
@@ -77,6 +71,7 @@ export const useImageGeneration = () => {
|
||||
},
|
||||
onError: (error) => {
|
||||
console.error('生成失败:', error);
|
||||
addToast('图像生成失败,请重试', 'error');
|
||||
setIsGenerating(false);
|
||||
}
|
||||
});
|
||||
@@ -99,8 +94,11 @@ export const useImageEditing = () => {
|
||||
selectedGenerationId,
|
||||
currentProject,
|
||||
seed,
|
||||
temperature
|
||||
temperature,
|
||||
uploadedImages
|
||||
} = useAppStore();
|
||||
|
||||
const { addToast } = useToast();
|
||||
|
||||
const editMutation = useMutation({
|
||||
mutationFn: async (instruction: string) => {
|
||||
@@ -174,12 +172,12 @@ export const useImageEditing = () => {
|
||||
// 绘制带透明度的遮罩叠加
|
||||
maskedCtx.globalCompositeOperation = 'source-over';
|
||||
maskedCtx.globalAlpha = 0.4;
|
||||
maskedCtx.fillStyle = '#A855F7';
|
||||
maskedCtx.fillStyle = '#A855F7';
|
||||
|
||||
brushStrokes.forEach(stroke => {
|
||||
if (stroke.points.length >= 4) {
|
||||
maskedCtx.lineWidth = stroke.brushSize;
|
||||
maskedCtx.strokeStyle = '#A855F7';
|
||||
maskedCtx.strokeStyle = '#A855F7';
|
||||
maskedCtx.lineCap = 'round';
|
||||
maskedCtx.lineJoin = 'round';
|
||||
maskedCtx.beginPath();
|
||||
@@ -262,6 +260,7 @@ export const useImageEditing = () => {
|
||||
},
|
||||
onError: (error) => {
|
||||
console.error('编辑失败:', error);
|
||||
addToast('图像编辑失败,请重试', 'error');
|
||||
setIsGenerating(false);
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user