diff --git a/src/components/Header.tsx b/src/components/Header.tsx
index aeb28f80..3e03b062 100644
--- a/src/components/Header.tsx
+++ b/src/components/Header.tsx
@@ -67,6 +67,7 @@ export function Header() {
isSaving,
setWorkflowMetadata,
saveToFile,
+ saveAsFile,
loadWorkflow,
previousWorkflowSnapshot,
revertToSnapshot,
@@ -162,6 +163,32 @@ export function Header() {
}
};
+ const handleSaveAs = async () => {
+ if (!workflowName || !saveDirectoryPath) {
+ handleOpenSettings();
+ return;
+ }
+
+ const value = window.prompt("Save project as", workflowName);
+ if (value === null) return;
+
+ const newName = value.trim();
+ if (!newName) {
+ alert("Project name cannot be empty.");
+ return;
+ }
+
+ try {
+ const success = await saveAsFile(newName);
+ if (!success) {
+ alert("Save As failed. Please try again.");
+ }
+ } catch (error) {
+ console.error("Failed to save project as:", error);
+ alert("Save As failed. Please try again.");
+ }
+ };
+
const handleRevertAIChanges = useCallback(() => {
const confirmed = window.confirm(
"Are you sure? This will restore your previous workflow."
@@ -254,6 +281,24 @@ export function Header() {
)}
+ {canSave && (
+
+ )}
{saveDirectoryPath && (