Skip to content

Commit d27a555

Browse files
committed
fix(#16): fix lost post config after save post from posts list
1 parent cb23569 commit d27a555

File tree

2 files changed

+9
-6
lines changed

2 files changed

+9
-6
lines changed

src/commands/posts-list/save-post.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { inputPostSettings } from '../../utils/input-post-settings';
1111
import { searchPostsByTitle } from '../../services/search-post-by-title';
1212
import * as path from 'path';
1313
import { refreshPostsList } from './refresh-posts-list';
14+
import { PostEditDto } from '../../models/post-edit-dto';
1415

1516
export const savePostFileToCnblogs = async (fileUri: Uri) => {
1617
if (!fileUri || fileUri.scheme !== 'file') {
@@ -21,7 +22,7 @@ export const savePostFileToCnblogs = async (fileUri: Uri) => {
2122
// const fileNameWithoutExt = path.basename(fileName, path.extname(fileName));
2223
const postId = PostFileMapManager.getPostId(filePath);
2324
if (postId && postId >= 0) {
24-
await savePostToCnblogs((await postService.fetchPostEditDto(postId)).post);
25+
await savePostToCnblogs(await postService.fetchPostEditDto(postId));
2526
} else {
2627
const options = [`新建博文`, `关联已有博文`];
2728
const selected = await window.showInformationMessage(
@@ -84,15 +85,16 @@ export const saveLocalDraftToCnblogs = async (localDraft: LocalDraftFile) => {
8485
}
8586
Object.assign(post, userInputPostConfig);
8687

87-
if (!(await savePostToCnblogs(post, true))) {
88+
if (!(await savePostToCnblogs(editDto, true))) {
8889
return;
8990
}
9091
await PostFileMapManager.updateOrCreate(post.id, localDraft.filePath);
9192
postsDataProvider.fireTreeDataChangedEvent(undefined);
9293
await openPostFile(localDraft);
9394
};
9495

95-
export const savePostToCnblogs = async (post: Post, isNewPost = false) => {
96+
export const savePostToCnblogs = async (input: Post | PostEditDto, isNewPost = false) => {
97+
const post = input instanceof PostEditDto ? input.post : (await postService.fetchPostEditDto(input.id)).post;
9698
if (!post) {
9799
return;
98100
}

src/services/post.service.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -121,9 +121,10 @@ export class PostService {
121121
newPostTemplate = await this.fetchPostEditDto(-1);
122122
}
123123

124-
return Object.assign({}, newPostTemplate, {
125-
post: Object.assign({}, newPostTemplate.post),
126-
} as PostEditDto);
124+
return new PostEditDto(
125+
Object.assign(new Post(), newPostTemplate.post),
126+
Object.assign({}, newPostTemplate.config)
127+
);
127128
}
128129
}
129130

0 commit comments

Comments
 (0)