Browse Source

Merge pull request #27 from shrimbly/claude/fix-image-history-sOzfq

Fix image history carousel by syncing IDs with saved filenames
handoff-20260429-1057
Willie 6 months ago
committed by GitHub
parent
commit
0356094c2b
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 138
      src/store/workflowStore.ts

138
src/store/workflowStore.ts

@ -1036,9 +1036,26 @@ export const useWorkflowStore = create<WorkflowStore>((set, get) => ({
prompt: text, prompt: text,
imageId, imageId,
}), }),
}).catch((err) => { })
console.error("Failed to save generation:", err); .then((res) => res.json())
}); .then((saveResult) => {
// Update imageHistory with actual saved ID for carousel loading
if (saveResult.success && saveResult.imageId && saveResult.imageId !== imageId) {
const currentNode = get().nodes.find((n) => n.id === node.id);
if (currentNode) {
const currentData = currentNode.data as NanoBananaNodeData;
const updatedHistory = [...(currentData.imageHistory || [])];
const entryIndex = updatedHistory.findIndex((h) => h.id === imageId);
if (entryIndex !== -1) {
updatedHistory[entryIndex] = { ...updatedHistory[entryIndex], id: saveResult.imageId };
updateNodeData(node.id, { imageHistory: updatedHistory });
}
}
}
})
.catch((err) => {
console.error("Failed to save generation:", err);
});
} }
} else { } else {
logger.error('api.error', `${provider} API generation failed`, { logger.error('api.error', `${provider} API generation failed`, {
@ -1238,9 +1255,26 @@ export const useWorkflowStore = create<WorkflowStore>((set, get) => ({
prompt: text, prompt: text,
imageId: videoId, imageId: videoId,
}), }),
}).catch((err) => { })
console.error("Failed to save video generation:", err); .then((res) => res.json())
}); .then((saveResult) => {
// Update videoHistory with actual saved ID for carousel loading
if (saveResult.success && saveResult.imageId && saveResult.imageId !== videoId) {
const currentNode = get().nodes.find((n) => n.id === node.id);
if (currentNode) {
const currentData = currentNode.data as GenerateVideoNodeData;
const updatedHistory = [...(currentData.videoHistory || [])];
const entryIndex = updatedHistory.findIndex((h) => h.id === videoId);
if (entryIndex !== -1) {
updatedHistory[entryIndex] = { ...updatedHistory[entryIndex], id: saveResult.imageId };
updateNodeData(node.id, { videoHistory: updatedHistory });
}
}
}
})
.catch((err) => {
console.error("Failed to save video generation:", err);
});
} }
} else if (result.success && result.image) { } else if (result.success && result.image) {
// Some models might return an image preview; treat as video for now // Some models might return an image preview; treat as video for now
@ -1276,9 +1310,26 @@ export const useWorkflowStore = create<WorkflowStore>((set, get) => ({
prompt: text, prompt: text,
imageId: videoId, imageId: videoId,
}), }),
}).catch((err) => { })
console.error("Failed to save video generation:", err); .then((res) => res.json())
}); .then((saveResult) => {
// Update videoHistory with actual saved ID for carousel loading
if (saveResult.success && saveResult.imageId && saveResult.imageId !== videoId) {
const currentNode = get().nodes.find((n) => n.id === node.id);
if (currentNode) {
const currentData = currentNode.data as GenerateVideoNodeData;
const updatedHistory = [...(currentData.videoHistory || [])];
const entryIndex = updatedHistory.findIndex((h) => h.id === videoId);
if (entryIndex !== -1) {
updatedHistory[entryIndex] = { ...updatedHistory[entryIndex], id: saveResult.imageId };
updateNodeData(node.id, { videoHistory: updatedHistory });
}
}
}
})
.catch((err) => {
console.error("Failed to save video generation:", err);
});
} }
} else { } else {
logger.error('api.error', `${provider} API video generation failed`, { logger.error('api.error', `${provider} API video generation failed`, {
@ -1765,9 +1816,26 @@ export const useWorkflowStore = create<WorkflowStore>((set, get) => ({
prompt: text, prompt: text,
imageId, imageId,
}), }),
}).catch((err) => { })
console.error("Failed to save generation:", err); .then((res) => res.json())
}); .then((saveResult) => {
// Update imageHistory with actual saved ID for carousel loading
if (saveResult.success && saveResult.imageId && saveResult.imageId !== imageId) {
const currentNode = get().nodes.find((n) => n.id === nodeId);
if (currentNode) {
const currentData = currentNode.data as NanoBananaNodeData;
const updatedHistory = [...(currentData.imageHistory || [])];
const entryIndex = updatedHistory.findIndex((h) => h.id === imageId);
if (entryIndex !== -1) {
updatedHistory[entryIndex] = { ...updatedHistory[entryIndex], id: saveResult.imageId };
updateNodeData(nodeId, { imageHistory: updatedHistory });
}
}
}
})
.catch((err) => {
console.error("Failed to save generation:", err);
});
} }
} else { } else {
updateNodeData(nodeId, { updateNodeData(nodeId, {
@ -2021,9 +2089,26 @@ export const useWorkflowStore = create<WorkflowStore>((set, get) => ({
prompt: text, prompt: text,
imageId: videoId, imageId: videoId,
}), }),
}).catch((err) => { })
console.error("Failed to save video generation:", err); .then((res) => res.json())
}); .then((saveResult) => {
// Update videoHistory with actual saved ID for carousel loading
if (saveResult.success && saveResult.imageId && saveResult.imageId !== videoId) {
const currentNode = get().nodes.find((n) => n.id === nodeId);
if (currentNode) {
const currentData = currentNode.data as GenerateVideoNodeData;
const updatedHistory = [...(currentData.videoHistory || [])];
const entryIndex = updatedHistory.findIndex((h) => h.id === videoId);
if (entryIndex !== -1) {
updatedHistory[entryIndex] = { ...updatedHistory[entryIndex], id: saveResult.imageId };
updateNodeData(nodeId, { videoHistory: updatedHistory });
}
}
}
})
.catch((err) => {
console.error("Failed to save video generation:", err);
});
} }
} else if (result.success && result.image) { } else if (result.success && result.image) {
const timestamp = Date.now(); const timestamp = Date.now();
@ -2058,9 +2143,26 @@ export const useWorkflowStore = create<WorkflowStore>((set, get) => ({
prompt: text, prompt: text,
imageId: videoId, imageId: videoId,
}), }),
}).catch((err) => { })
console.error("Failed to save video generation:", err); .then((res) => res.json())
}); .then((saveResult) => {
// Update videoHistory with actual saved ID for carousel loading
if (saveResult.success && saveResult.imageId && saveResult.imageId !== videoId) {
const currentNode = get().nodes.find((n) => n.id === nodeId);
if (currentNode) {
const currentData = currentNode.data as GenerateVideoNodeData;
const updatedHistory = [...(currentData.videoHistory || [])];
const entryIndex = updatedHistory.findIndex((h) => h.id === videoId);
if (entryIndex !== -1) {
updatedHistory[entryIndex] = { ...updatedHistory[entryIndex], id: saveResult.imageId };
updateNodeData(nodeId, { videoHistory: updatedHistory });
}
}
}
})
.catch((err) => {
console.error("Failed to save video generation:", err);
});
} }
} else { } else {
logger.error('api.error', `${provider} API video regeneration failed`, { logger.error('api.error', `${provider} API video regeneration failed`, {

Loading…
Cancel
Save