Skip to content

Commit 2b1cfd7

Browse files
authored
Fixing export file path in schema designer (#19476)
* Enhance export functionality by using a unique file path based on the current workspace folder * clean up code
1 parent 09fa393 commit 2b1cfd7

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

src/schemaDesigner/schemaDesignerWebviewController.ts

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ import VscodeWrapper from "../controllers/vscodeWrapper";
1010
import * as LocConstants from "../constants/locConstants";
1111
import { TreeNodeInfo } from "../objectExplorer/nodes/treeNodeInfo";
1212
import MainController from "../controllers/mainController";
13+
import { homedir } from "os";
14+
import { getUniqueFilePath } from "../utils/utils";
1315

1416
export class SchemaDesignerWebviewController extends ReactWebviewPanelController<
1517
SchemaDesigner.SchemaDesignerWebviewState,
@@ -62,11 +64,18 @@ export class SchemaDesignerWebviewController extends ReactWebviewPanelController
6264

6365
private registerReducers() {
6466
this.registerRequestHandler("exportToFile", async (payload) => {
67+
// Determine the base folder for saving the file
68+
const baseFolder =
69+
vscode.workspace.workspaceFolders?.[0]?.uri ?? vscode.Uri.file(homedir());
70+
71+
// Prompt the user with a Save dialog
6572
const outputPath = await vscode.window.showSaveDialog({
66-
filters: {
67-
[payload.format]: [payload.format],
68-
},
69-
defaultUri: vscode.Uri.file(`${this.databaseName}.${payload.format}`),
73+
filters: { [payload.format]: [payload.format] },
74+
defaultUri: await getUniqueFilePath(
75+
baseFolder,
76+
`schema-${this.databaseName}`,
77+
payload.format,
78+
),
7079
saveLabel: LocConstants.SchemaDesigner.Save,
7180
title: LocConstants.SchemaDesigner.SaveAs,
7281
});

0 commit comments

Comments
 (0)