diff --git a/README.md b/README.md index c8d00f26..9ec5025c 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ - [拉取远程博文内容更新本地文件](#拉取远程博文内容更新本地文件) - [图片上传](#图片上传) - [博文分类管理](#博文分类管理) - - [导出 pdf](#导出-pdf) + - [导出 PDF](#导出-PDF) - [提取图片](#提取图片) - [博文设置面板](#博文设置面板) - [闪存](#闪存) @@ -47,13 +47,13 @@ 若本地文件已经关联到一篇博客园博文,那么会直接更新这篇博文。 -也通过 vscode 的 `Command Palette`(唤起 `Command Palette` 快捷键,windows:`ctrl+shift+p`,macos:`command+shift+p`)调用 `Cnblogs: 保存到博客园`命令,将当前正在编辑的 markdown 文件保存到博客园上 +也通过 vscode 的 `Command Palette`(唤起 `Command Palette` 快捷键,windows:`ctrl+shift+p`,macos:`command+shift+p`)调用 `Cnblogs: 上传到博客园`命令,将当前正在编辑的 markdown 文件上传到博客园上 ### 博客园博文列表 -当点击列表中的博文时,会自动将博文内容下载到工作空间一个本地文件中(此时这个本地文件就关联到了这篇博文),完成编辑后可以再将本地的内容保存到博客园博文 +当点击列表中的博文时,会自动将博文内容下载到工作空间一个本地文件中(此时这个本地文件就关联到了这篇博文),完成编辑后可以再将本地的内容上传到博客园 @@ -75,23 +75,23 @@ ### 拉取远程博文内容更新本地文件 -本地文件和博文关联后,如果通过博客后台更新了这篇博文,此时本地文件是不会自动更新的,但是可以通过 `Cnblogs: 拉取远程更新`命令来更新本地博文 +本地文件和博文关联后,如果通过博客后台更新了这篇博文,此时本地文件是不会自动更新的,但是可以通过 `Cnblogs: 拉取博文`命令来更新本地博文 -可以在下面这些地方可以调用 `Cnblogs: 拉取远程更新` +可以在下面这些地方可以调用 `Cnblogs: 拉取博文` -- 博客园随笔列表视图中的博文的上下文菜单`拉取远程更新`(仅已关联本地文件的博文) +- 博客园随笔列表视图中的博文的上下文菜单`拉取博文`(仅已关联本地文件的博文) -- 编辑器上下文菜单中的`拉取远程更新`(仅针对 markdown 文件) +- 编辑器上下文菜单中的`拉取博文`(仅针对 markdown 文件) -- 文件浏览器上下文菜单中的`拉取远程更新`(仅针对 markdown 文件) +- 文件浏览器上下文菜单中的`拉取博文`(仅针对 markdown 文件) -- vscode 命令面板 `Cnblogs: 拉取远程更新`,此时会尝试去寻找当前正在编辑的文件对其进行更新 +- vscode 命令面板 `Cnblogs: 拉取博文`,此时会尝试去寻找当前正在编辑的文件对其进行更新 @@ -109,9 +109,9 @@ -### 导出 pdf +### 导出 PDF -支持将博文导出为 pdf 格式的文件到本地,此功能依赖于 [Chromium](https://www.chromium.org/chromium-projects/),vscode-cnb 默认会先从本地寻找是否有已安装的 Chrome 或基于 Chromium 的 Edge 浏览器,若有的话则会直接使用本地的 Chrome 或基于 Chromium 的 Edge; 若未找到,那么会提示用户手动选择本地的 Chromium 或其他基于 Chromium 的浏览器 +支持将博文导出为 PDF 格式的文件到本地,此功能依赖于 [Chromium](https://www.chromium.org/chromium-projects/),vscode-cnb 默认会先从本地寻找是否有已安装的 Chrome 或基于 Chromium 的 Edge 浏览器,若有的话则会直接使用本地的 Chrome 或基于 Chromium 的 Edge; 若未找到,那么会提示用户手动选择本地的 Chromium 或其他基于 Chromium 的浏览器 @@ -129,7 +129,7 @@ ![image](https://img2022.cnblogs.com/blog/1596066/202209/1596066-20220917215536822-836105648.png) -也可以在设置中配置保存到博客园时自动提取图片 +也可以在设置中配置上传到博客园时自动提取图片 ![image](https://img2022.cnblogs.com/blog/1596066/202209/1596066-20220917215650930-372126612.png) diff --git a/package.json b/package.json index 1ddb2978..9a3518ef 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "vscode-cnb", - "displayName": "博客园Cnblogs客户端", - "description": "A vscode extension used to write and publish blog post to cnblogs", + "displayName": "博客园 VSCode 扩展", + "description": "VSCode extension for CNBlogs", "version": "0.0.1", "license": "LICENSE.txt", "preview": false, @@ -148,8 +148,8 @@ "category": "Cnblogs Posts List" }, { - "command": "vscode-cnb.save-post", - "title": "保存博文", + "command": "vscode-cnb.upload-post", + "title": "上传博文", "icon": "$(cloud-upload)", "category": "Cnblogs Posts List", "enablement": "vscode-cnb.isAuthorized" @@ -199,15 +199,15 @@ "category": "Cnblogs" }, { - "command": "vscode-cnb.save-post-file-to-cnblogs", - "title": "保存到博客园", + "command": "vscode-cnb.upload-post-file-to-cnblogs", + "title": "上传到博客园", "icon": "$(vscode-cnb-cloud-upload)", "enablement": "vscode-cnb.isAuthorized", "category": "Cnblogs" }, { "command": "vscode-cnb.pull-post-remote-updates", - "title": "拉取远程更新", + "title": "拉取博文", "category": "Cnblogs", "enablement": "vscode-cnb.isAuthorized", "icon": "$(cloud-download)" @@ -274,7 +274,7 @@ }, { "command": "vscode-cnb.export-post-to-pdf", - "title": "导出PDF", + "title": "导出 PDF", "category": "Cnblogs", "enablement": "vscode-cnb.isAuthorized" }, @@ -473,17 +473,19 @@ "enum": [ "disable", "local", + "dataurl", "web", "any" ], "enumItemLabels": [ "禁用", "自动提取本地图片", + "自动提取由 Base64 编码的图片", "自动提取网络图片", "自动提取全部图片" ], "editPresentation": "singlelineText", - "markdownDescription": "提取图片, 配置保存到博客园时要自动提取上传到博客园的图片" + "markdownDescription": "提取图片, 配置上传到博客园时要自动提取上传到博客园的图片" }, "cnblogsClientForVSCode.pageSize.postsList": { "order": 7, @@ -527,11 +529,27 @@ "editPresentation": "singlelineText", "markdownDescription": "博客园 Markdown 语法扩展: 代码块指定行高亮\n\n \n\n使用示例:\n\n```markdown\n\n```typescript {1, 3-4}\nconsole.log(1)\nconsole.log(2)\nconsole.log(3)\nconsole.log(4)\nconsole.log(5)\n```\n\n```" }, + "cnblogsClientForVSCode.markdown.showConfirmMsgWhenUploadPost": { + "order": 11, + "type": "boolean", + "scope": "application", + "default": true, + "editPresentation": "singlelineText", + "markdownDescription": "在上传博文时显示确认消息" + }, + "cnblogsClientForVSCode.markdown.showConfirmMsgWhenPullPost": { + "order": 12, + "type": "boolean", + "scope": "application", + "default": true, + "editPresentation": "singlelineText", + "markdownDescription": "在拉取博文时显示确认消息" + }, "cnblogsClientForVSCode.menus.context.explorer": { "type": "object", "additionalProperties": false, "default": { - "save-post-file-to-cnblogs": true, + "upload-post-file-to-cnblogs": true, "pull-post-remote-updates": true, "modify-post-settings": true, "show-post-to-local-file-info": true, @@ -540,16 +558,16 @@ "copy-post-link": true }, "markdownDescription": "控制要在资源管理器右键菜单中显示的命令", - "order": 12, + "order": 13, "properties": { - "save-post-file-to-cnblogs": { - "description": "保存到博客园", + "upload-post-file-to-cnblogs": { + "description": "上传到博客园", "type": "boolean", "order": 0, "default": true }, "pull-post-remote-updates": { - "description": "拉取远程更新", + "description": "拉取博文", "type": "boolean", "order": 1, "default": true @@ -573,7 +591,7 @@ "default": true }, "export-post-to-pdf": { - "description": "导出pdf", + "description": "导出 PDF", "type": "boolean", "order": 5, "default": true @@ -589,7 +607,7 @@ "cnblogsClientForVSCode.menus.context.editor": { "type": "object", "default": { - "save-post-file-to-cnblogs": true, + "upload-post-file-to-cnblogs": true, "pull-post-remote-updates": true, "modify-post-settings": true, "show-post-to-local-file-info": true, @@ -602,13 +620,13 @@ "ing:publish-selection": false }, "properties": { - "save-post-file-to-cnblogs": { - "description": "保存到博客园", + "upload-post-file-to-cnblogs": { + "description": "上传到博客园", "type": "boolean", "order": 0 }, "pull-post-remote-updates": { - "description": "拉取远程更新", + "description": "拉取博文", "type": "boolean", "order": 1 }, @@ -629,7 +647,7 @@ "order": 4 }, "export-post-to-pdf": { - "description": "导出pdf", + "description": "导出 PDF", "type": "boolean", "order": 5 }, @@ -662,7 +680,7 @@ "scope": "application", "additionalProperties": false, "markdownDescription": "控制要在编辑器右键菜单中显示的命令", - "order": 13 + "order": 14 } } } @@ -826,7 +844,7 @@ "when": "false" }, { - "command": "vscode-cnb.save-post", + "command": "vscode-cnb.upload-post", "when": "false" }, { @@ -838,7 +856,7 @@ "when": "false" }, { - "command": "vscode-cnb.save-post-file-to-cnblogs", + "command": "vscode-cnb.upload-post-file-to-cnblogs", "when": "true" }, { @@ -944,7 +962,7 @@ ], "view/item/context": [ { - "command": "vscode-cnb.save-post", + "command": "vscode-cnb.upload-post", "group": "inline@1", "when": "viewItem == cnb-post-cached" }, @@ -988,7 +1006,7 @@ "group": "delete@2" }, { - "command": "vscode-cnb.save-post", + "command": "vscode-cnb.upload-post", "group": "0@1", "when": "viewItem == cnb-post-cached" }, @@ -1093,8 +1111,8 @@ "group": "cnblogs@1" }, { - "command": "vscode-cnb.save-post-file-to-cnblogs", - "when": "resourceLangId == markdown && config.cnblogsClientForVSCode.menus.context.editor.save-post-file-to-cnblogs", + "command": "vscode-cnb.upload-post-file-to-cnblogs", + "when": "resourceLangId == markdown && config.cnblogsClientForVSCode.menus.context.editor.upload-post-file-to-cnblogs", "group": "cnblogs@2" }, { @@ -1145,7 +1163,7 @@ "group": "navigation" }, { - "command": "vscode-cnb.save-post-file-to-cnblogs", + "command": "vscode-cnb.upload-post-file-to-cnblogs", "when": "resourceLangId == markdown", "group": "navigation" } @@ -1157,8 +1175,8 @@ "group": "cnblogs@1" }, { - "command": "vscode-cnb.save-post-file-to-cnblogs", - "when": "resourceLangId == markdown && config.cnblogsClientForVSCode.menus.context.explorer.save-post-file-to-cnblogs", + "command": "vscode-cnb.upload-post-file-to-cnblogs", + "when": "resourceLangId == markdown && config.cnblogsClientForVSCode.menus.context.explorer.upload-post-file-to-cnblogs", "group": "cnblogs@2" }, { @@ -1219,7 +1237,7 @@ "viewsWelcome": [ { "view": "cnblogs-authorize", - "contents": "欢迎使用博客园vscode插件! 请先登录授权!" + "contents": "欢迎使用博客园 VSCode 插件!请先登录授权!" }, { "view": "cnblogs-authorize", @@ -1231,7 +1249,7 @@ }, { "view": "vscode-cnb-workspace", - "contents": "[在vscode中打开工作空间](command:vscode-cnb.open-workspace)", + "contents": "[在 VSCode 中打开工作空间](command:vscode-cnb.open-workspace)", "when": "!vscode-cnb.isTargetWorkspace" }, { diff --git a/src/commands/commands-registration.ts b/src/commands/commands-registration.ts index 049802aa..35cb5b79 100644 --- a/src/commands/commands-registration.ts +++ b/src/commands/commands-registration.ts @@ -11,7 +11,7 @@ import { refreshPostsList, seekPostsList, } from './posts-list/refresh-posts-list' -import { savePostFileToCnblogs, savePostToCnblogs } from './posts-list/save-post' +import { uploadPostFileToCnblogs, uploadPostToCnblogs } from './posts-list/upload-post' import { createLocalDraft } from './posts-list/create-local-draft' import { deleteSelectedPosts } from './posts-list/delete-post' import { modifyPostSettings } from './posts-list/modify-post-settings' @@ -41,6 +41,8 @@ import { registerCommandsForBlogExport } from '@/commands/blog-export' export const registerCommands = () => { const context = globalContext.extensionContext const appName = globalContext.extensionName + + // TODO: simplify register const disposables = [ commands.registerCommand(`${appName}.login`, login), commands.registerCommand(`${appName}.open-my-blog`, openMyBlog), @@ -53,11 +55,11 @@ export const registerCommands = () => { commands.registerCommand(`${appName}.seek-posts-list`, seekPostsList), commands.registerCommand(`${appName}.next-posts-list`, gotoNextPostsList), commands.registerCommand(`${appName}.edit-post`, openPostInVscode), - commands.registerCommand(`${appName}.save-post`, savePostToCnblogs), + commands.registerCommand(`${appName}.upload-post`, uploadPostToCnblogs), commands.registerCommand(`${appName}.modify-post-settings`, modifyPostSettings), commands.registerCommand(`${appName}.delete-post`, deleteSelectedPosts), commands.registerCommand(`${appName}.create-local-draft`, createLocalDraft), - commands.registerCommand(`${appName}.save-post-file-to-cnblogs`, savePostFileToCnblogs), + commands.registerCommand(`${appName}.upload-post-file-to-cnblogs`, uploadPostFileToCnblogs), commands.registerCommand(`${appName}.pull-post-remote-updates`, pullPostRemoteUpdates), commands.registerCommand(`${appName}.upload-clipboard-image`, () => uploadImage(true, 'clipboard')), commands.registerCommand(`${appName}.upload-local-disk-image`, () => uploadImage(true, 'local')), @@ -88,7 +90,9 @@ export const registerCommands = () => { new PublishIngCommandHandler('selection').handle() ), ] + registerCommandsForIngsList(disposables) registerCommandsForBlogExport(disposables) + context?.subscriptions.push(...disposables) } diff --git a/src/commands/pdf/export-pdf.command.ts b/src/commands/pdf/export-pdf.command.ts index d9fdb26c..0dda77c5 100644 --- a/src/commands/pdf/export-pdf.command.ts +++ b/src/commands/pdf/export-pdf.command.ts @@ -125,7 +125,7 @@ const retrieveChromiumPath = async (): Promise => { path = op ? await op[1]() : undefined } - if (path && path !== Settings.chromiumPath) await Settings.setChromiumPath(path) + if (path !== undefined && path !== Settings.chromiumPath) await Settings.setChromiumPath(path) return path } diff --git a/src/commands/posts-list/save-post.ts b/src/commands/posts-list/upload-post.ts similarity index 87% rename from src/commands/posts-list/save-post.ts rename to src/commands/posts-list/upload-post.ts index 03aa741d..a425124b 100644 --- a/src/commands/posts-list/save-post.ts +++ b/src/commands/posts-list/upload-post.ts @@ -1,4 +1,4 @@ -import { Uri, workspace, window, ProgressLocation, MessageOptions } from 'vscode' +import vscode, { Uri, workspace, window, ProgressLocation, MessageOptions } from 'vscode' import { Post } from '@/models/post' import { LocalDraft } from '@/services/local-draft.service' import { AlertService } from '@/services/alert.service' @@ -34,14 +34,14 @@ const parseFileUri = async (fileUri: Uri | undefined): Promise return fileUri } -export const savePostFileToCnblogs = async (fileUri: Uri | undefined) => { +export const uploadPostFileToCnblogs = async (fileUri: Uri | undefined) => { fileUri = await parseFileUri(fileUri) if (!fileUri) return const { fsPath: filePath } = fileUri const postId = PostFileMapManager.getPostId(filePath) if (postId && postId >= 0) { - await savePostToCnblogs(await postService.fetchPostEditDto(postId)) + await uploadPostToCnblogs(await postService.fetchPostEditDto(postId)) } else { const options = [`新建博文`, `关联已有博文`] const selected = await window.showInformationMessage( @@ -67,7 +67,7 @@ export const savePostFileToCnblogs = async (fileUri: Uri | undefined) => { if (!fileContent) await workspace.fs.writeFile(fileUri, Buffer.from(postEditDto.post.postBody)) - await savePostToCnblogs(postEditDto.post) + await uploadPostToCnblogs(postEditDto.post) } } } @@ -124,7 +124,7 @@ export const saveLocalDraftToCnblogs = async (localDraft: LocalDraft) => { }) } -export const savePostToCnblogs = async (input: Post | PostTreeItem | PostEditDto | undefined) => { +export const uploadPostToCnblogs = async (input: Post | PostTreeItem | PostEditDto | undefined) => { input = input instanceof PostTreeItem ? input.post : input const post = input instanceof PostEditDto @@ -147,10 +147,22 @@ export const savePostToCnblogs = async (input: Post | PostTreeItem | PostEditDto if (!validatePost(post)) return false + if (Settings.showConfirmMsgWhenUploadPost) { + const answer = await vscode.window.showWarningMessage( + '确认上传博文吗?', + { + modal: true, + detail: '本地博文将保存至服务端(可通过设置关闭对话框)', + }, + '确认' + ) + if (answer !== '确认') return false + } + return window.withProgress( { location: ProgressLocation.Notification, - title: '正在保存博文', + title: '正在上传博文', cancellable: false, }, async progress => { @@ -165,11 +177,11 @@ export const savePostToCnblogs = async (input: Post | PostTreeItem | PostEditDto hasSaved = true progress.report({ increment: 100 }) - AlertService.info('保存成功') + AlertService.info('上传成功') await refreshPostsList() } catch (err) { progress.report({ increment: 100 }) - AlertService.error(`保存失败\n${err instanceof Error ? err.message : JSON.stringify(err)}`) + AlertService.error(`上传失败\n${err instanceof Error ? err.message : JSON.stringify(err)}`) console.error(err) } return hasSaved diff --git a/src/commands/pull-post-remote-updates.ts b/src/commands/pull-post-remote-updates.ts index 0488ee52..4b801403 100644 --- a/src/commands/pull-post-remote-updates.ts +++ b/src/commands/pull-post-remote-updates.ts @@ -8,6 +8,7 @@ import { AlertService } from '@/services/alert.service' import path from 'path' import { revealPostsListItem } from '@/services/posts-list-view' import { PostTreeItem } from '@/tree-view-providers/models/post-tree-item' +import { Settings } from '@/services/settings.service' const pullPostRemoteUpdates = async (input: Post | PostTreeItem | Uri | undefined | null): Promise => { const ctxs: CommandContext[] = [] @@ -16,7 +17,19 @@ const pullPostRemoteUpdates = async (input: Post | PostTreeItem | Uri | undefine if (parsePostInput(input) && input.id > 0) await handlePostInput(input, ctxs) else if ((uri = parseUriInput(input))) await handleUriInput(uri, ctxs) - if (ctxs.length <= 0 || !(await confirmOperation(ctxs))) return + if (Settings.showConfirmMsgWhenPullPost) { + const answer = await window.showWarningMessage( + '确认要拉取远程博文吗?', + { + modal: true, + detail: `本地文件 ${resolveFileNames(ctxs)} 将被覆盖(可通过设置关闭对话框)`, + } as MessageOptions, + '确认' + ) + if (answer !== '确认') return + } + + if (ctxs.length <= 0) return await update(ctxs) @@ -63,20 +76,6 @@ const handleUriInput = (fileUri: Uri, contexts: CommandContext[]): Promise return Promise.resolve() } -const confirmOperation = async (ctxs: CommandContext[]): Promise => { - const options = ['确定'] - return ( - (await window.showWarningMessage( - '确定要拉取远程博文内容更新本地文件吗?', - { - modal: true, - detail: `本地文件${resolveFileNames(ctxs)}的内容将被覆盖, 数据无价, 请谨慎操作`, - } as MessageOptions, - ...options - )) === options[0] - ) -} - const update = async (contexts: CommandContext[]) => { for (const ctx of contexts) { const { fileUri, postId } = ctx diff --git a/src/models/webview-commands.ts b/src/models/webview-commands.ts index a3c3b78c..2d8ec259 100644 --- a/src/models/webview-commands.ts +++ b/src/models/webview-commands.ts @@ -12,7 +12,7 @@ export namespace webviewCommands { } export enum ExtensionCommands { - savePost = 'savePost', + uploadPost = 'uploadPost', disposePanel = 'disposePanel', uploadImage = 'uploadImage', refreshPost = 'refreshPost', diff --git a/src/models/webview-message.ts b/src/models/webview-message.ts index 46d0db19..b0613233 100644 --- a/src/models/webview-message.ts +++ b/src/models/webview-message.ts @@ -22,7 +22,7 @@ export namespace webviewMessage { fileName: string } - export interface SavePostMessage extends Message { + export interface UploadPostMessage extends Message { post: Post } diff --git a/src/services/post-configuration-panel.service.ts b/src/services/post-configuration-panel.service.ts index a486c415..65effc89 100644 --- a/src/services/post-configuration-panel.service.ts +++ b/src/services/post-configuration-panel.service.ts @@ -174,11 +174,11 @@ export namespace postConfigurationPanel { return webview.onDidReceiveMessage(async message => { const { command } = (message ?? {}) as webviewMessage.Message switch (command) { - case webviewCommands.ExtensionCommands.savePost: + case webviewCommands.ExtensionCommands.uploadPost: try { if (!panel) return - const { post: postToUpdate } = message as webviewMessage.SavePostMessage + const { post: postToUpdate } = message as webviewMessage.UploadPostMessage if (beforeUpdate) { if (!(await beforeUpdate(postToUpdate, panel))) { panel.dispose() diff --git a/src/services/settings.service.ts b/src/services/settings.service.ts index b3a71bf7..92b66790 100644 --- a/src/services/settings.service.ts +++ b/src/services/settings.service.ts @@ -1,7 +1,7 @@ import os, { homedir } from 'os' import fs from 'fs' import { ConfigurationTarget, Uri, workspace } from 'vscode' -import { ImageSrc, MarkdownImagesExtractor } from './images-extractor.service' +import { ImageSrc } from './images-extractor.service' import { isNumber } from 'lodash-es' import { untildify } from '@/utils/untildify' @@ -41,7 +41,10 @@ export class Settings { static get platformConfiguration() { const { platformPrefix, prefix } = this - return platformPrefix ? workspace.getConfiguration(`${prefix}.${platformPrefix}`) : null + + if (platformPrefix != null) return workspace.getConfiguration(`${prefix}.${platformPrefix}`) + + return null } static get workspaceUri(): Uri { @@ -88,6 +91,14 @@ export class Settings { return isNumber(size) ? size : 30 } + static get showConfirmMsgWhenUploadPost() { + return this.configuration.get('markdown.showConfirmMsgWhenUploadPost') ?? true + } + + static get showConfirmMsgWhenPullPost() { + return this.configuration.get('markdown.showConfirmMsgWhenPullPost') ?? true + } + static get isEnableMarkdownEnhancement() { return this.configuration.get('markdown.enableEnhancement') ?? true } @@ -113,8 +124,6 @@ export class Settings { } static async setChromiumPath(value: string) { - if (!value) return - await this.platformConfiguration?.update(this.chromiumPathKey, value, ConfigurationTarget.Global) } @@ -126,15 +135,14 @@ export class Settings { const oldKey = 'ing.enablePublishSelectionToIng' const isEnablePublishSelectionToIng = this.configuration.get(oldKey) if (isEnablePublishSelectionToIng === true) { - if ( - await this.configuration - .update('menus.context.editor', { 'ing:publish-selection': true }, ConfigurationTarget.Global) - .then( - () => true, - () => false - ) - ) - await this.configuration.update(oldKey, undefined, ConfigurationTarget.Global) + const isOk = await this.configuration + .update('menus.context.editor', { 'ing:publish-selection': true }, ConfigurationTarget.Global) + .then( + () => true, + () => false + ) + + if (isOk) await this.configuration.update(oldKey, undefined, ConfigurationTarget.Global) } } diff --git a/ui/post-configuration/components/PostForm.tsx b/ui/post-configuration/components/PostForm.tsx index 86857afc..09cf004a 100644 --- a/ui/post-configuration/components/PostForm.tsx +++ b/ui/post-configuration/components/PostForm.tsx @@ -147,9 +147,9 @@ export class PostForm extends React.Component { // eslint-disable-next-line @typescript-eslint/no-unsafe-call this.context.set({ disabled: true, status: 'submitting' }) vsCodeApi.getInstance().postMessage({ - command: webviewCommands.ExtensionCommands.savePost, + command: webviewCommands.ExtensionCommands.uploadPost, post: Object.assign({}, this.props.post, this.state), - } as webviewMessage.SavePostMessage) + } as webviewMessage.UploadPostMessage) } private onCancel() {