Skip to content

Commit d0877f0

Browse files
xiunengmumiao
xiuneng
authored andcommitted
fix: location render incorrect after editing
1 parent 3b8db4c commit d0877f0

File tree

3 files changed

+18
-5
lines changed

3 files changed

+18
-5
lines changed

src/controller/editor.tsx

+4-1
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,10 @@ export class EditorController extends Controller implements IEditorController {
225225
const { current } = this.editorService.getState();
226226
const tab = current?.tab;
227227
if (!tab) return;
228-
const updatedTab = { ...tab, data: { value: newValue } };
228+
const updatedTab = {
229+
...tab,
230+
data: { ...tab.data, value: newValue },
231+
};
229232
this.editorService.updateTab(updatedTab, groupId);
230233
this.emit(EditorEvent.OnUpdateTab, updatedTab);
231234
this.updateStatusBar(editorInstance);

src/extensions/folderTree/index.tsx

+10-4
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ export const ExtendsFolderTree: IExtension = {
3737
new TreeNodeModel({
3838
id,
3939
name: 'molecule',
40+
location: 'molecule',
4041
fileType: FileTypes.RootFolder,
4142
})
4243
);
@@ -74,18 +75,20 @@ export const ExtendsFolderTree: IExtension = {
7475

7576
molecule.folderTree.onSelectFile(
7677
(file: ITreeNodeItemProps, isUpdate?: boolean) => {
77-
const { fileType, isEditable } = file;
78+
const { fileType, name, isEditable } = file;
7879
const isFile = fileType === FileTypes.File;
7980
molecule.folderTree.setActive(file?.id);
8081
if (!isFile || isEditable) return;
82+
const nameArr = name?.split('.') || [];
83+
const extName = nameArr[nameArr.length - 1] || '';
8184
const tabData = {
8285
...file,
8386
id: `${file.id}`?.split('_')?.[0],
8487
modified: false,
8588
data: {
8689
value: file.content,
87-
path: 'desktop/moslecule/editor1',
88-
language: 'sql',
90+
path: file.location,
91+
language: extName,
8992
},
9093
};
9194

@@ -108,19 +111,22 @@ export const ExtendsFolderTree: IExtension = {
108111

109112
molecule.folderTree.onUpdateFileName((file: ITreeNodeItemProps) => {
110113
const { folderTree } = molecule.folderTree.getState();
111-
const { id, name, fileType } = file as any;
114+
const { id, name, fileType, location } = file as any;
112115
const cloneData: ITreeNodeItemProps[] = folderTree?.data || [];
113116
const {
114117
tree,
115118
index,
116119
} = molecule.folderTree.getCurrentRootFolderInfo(id);
117120
if (name) {
121+
const newLoc = location.split('/');
122+
newLoc[newLoc.length - 1] = name;
118123
tree.update(id, {
119124
...file,
120125
icon: molecule.folderTree.getFileIconByExtensionName(
121126
name,
122127
fileType
123128
),
129+
location: newLoc.join('/'),
124130
isEditable: false,
125131
});
126132
} else {

src/services/workbench/explorer/folderTreeService.ts

+4
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,12 @@ export class FolderTreeService
8181
// TODO: this function has incorrect return type
8282
const currentIndex: any = tree.getIndex(id);
8383
if (currentIndex?.node?.fileType === FileTypes.File) {
84+
const locations = currentIndex.node.location.split('/');
85+
locations[locations.length - 1] = data.name;
86+
data.location = locations.join('/');
8487
tree.prepend(data, currentIndex.parent);
8588
} else {
89+
data.location = `${currentIndex.node.location}/${data.name}`;
8690
tree.append(data, id);
8791
}
8892
cloneData[index] = tree.obj;

0 commit comments

Comments
 (0)