From ff1555e5eeb6d8cb34468502b49181218cd898c7 Mon Sep 17 00:00:00 2001 From: yetao Date: Thu, 31 Oct 2024 13:43:24 +0800 Subject: [PATCH] =?UTF-8?q?refactor=F0=9F=8E=A8:=20=20(=E9=98=85=E8=AF=BB?= =?UTF-8?q?=E4=BB=A3=E7=A0=81)=EF=BC=9Aactions.ts=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- webview/src/view/actions.ts | 121 ++++++++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) diff --git a/webview/src/view/actions.ts b/webview/src/view/actions.ts index cd41154..a18516f 100644 --- a/webview/src/view/actions.ts +++ b/webview/src/view/actions.ts @@ -1,105 +1,226 @@ +// 导入 ConfigLocation 和 FileSystemConfig 类型,这些类型定义了文件系统配置的相关属性 import type { ConfigLocation, FileSystemConfig } from 'common/fileSystemConfig'; +/** + * 定义了一系列用于表示不同操作类型的常量 + */ export enum ActionType { // Startscreen + // 打开开始屏幕的操作 OPEN_STARTSCREEN = 'OPEN_STARTSCREEN', // NewConfig + // 打开新配置界面的操作 OPEN_NEWCONFIG = 'OPEN_NEWCONFIG', + // 设置新配置名称的操作 NEWCONFIG_SETNAME = 'NEWCONFIG_SETNAME', + // 设置新配置位置的操作 NEWCONFIG_SETLOCATION = 'NEWCONFIG_SETLOCATION', // ConfigEditor + // 打开配置编辑器的操作 OPEN_CONFIGEDITOR = 'OPEN_CONFIGEDITOR', + // 打开配置定位器的操作 OPEN_CONFIGLOCATOR = 'OPEN_CONFIGLOCATOR', + // 在配置编辑器中设置新配置的操作 CONFIGEDITOR_SETNEWCONFIG = 'CONFIGEDITOR_SETNEWCONFIG', + // 在配置编辑器中设置状态消息的操作 CONFIGEDITOR_SETSTATUSMESSAGE = 'CONFIGEDITOR_SETSTATUSMESSAGE', } export interface ActionTypes { // Startscreen + // 打开开始屏幕的操作 OPEN_STARTSCREEN: IActionOpenStartscreen; // NewConfig + // 打开新配置界面的操作 OPEN_NEWCONFIG: IActionOpenNewConfig; + // 设置新配置名称的操作 NEWCONFIG_SETNAME: IActionNewConfigSetName; + // 设置新配置位置的操作 NEWCONFIG_SETLOCATION: IActionNewConfigSetLocation; // ConfigEditor + // 打开配置编辑器的操作 OPEN_CONFIGEDITOR: IActionOpenConfigEditor; + // 打开配置定位器的操作 OPEN_CONFIGLOCATOR: IActionOpenConfigLocator; + // 在配置编辑器中设置新配置的操作 CONFIGEDITOR_SETNEWCONFIG: IActionConfigEditorSetNewConfig; + // 在配置编辑器中设置状态消息的操作 CONFIGEDITOR_SETSTATUSMESSAGE: IActionConfigEditorSetStatusMessage; } +// 定义了一个名为 `Action` 的类型别名,它表示 `ActionTypes` 接口中所有可能的操作类型 export type Action = ActionTypes[keyof ActionTypes]; +/** + * 定义了一个名为 `IAction` 的接口,它是所有操作对象的基类 + * 包含一个必需的 `type` 属性,该属性表示操作的类型 + */ interface IAction { + // 操作的类型,是 ActionType 枚举的一个值 type: ActionType; } /* Startscreen */ +/** + * 定义了一个名为 `IActionOpenStartscreen` 的接口,它继承自 `IAction` 接口 + * 并添加了一个可选的 `groupBy` 属性,用于表示打开开始屏幕的操作 + */ export interface IActionOpenStartscreen extends IAction { + // 操作的类型,是 ActionType 枚举的一个值,这里是 OPEN_STARTSCREEN type: ActionType.OPEN_STARTSCREEN; + // 一个可选的属性,用于指定开始屏幕的分组方式 groupBy?: string; } +/** + * 打开开始屏幕的操作 + * @param groupBy - 一个可选的字符串,用于指定开始屏幕的分组方式 + * @returns 一个 IActionOpenStartscreen 对象,表示打开开始屏幕的操作 + */ export function openStartScreen(groupBy?: string): IActionOpenStartscreen { return { type: ActionType.OPEN_STARTSCREEN, groupBy }; } /* NewConfig */ +/** + * 定义了一个名为 `IActionOpenNewConfig` 的接口,它继承自 `IAction` 接口 + * 并添加了一个必需的 `name` 属性,用于表示新配置的名称 + */ export interface IActionOpenNewConfig extends IAction { + // 操作的类型,是 ActionType 枚举的一个值,这里是 OPEN_NEWCONFIG type: ActionType.OPEN_NEWCONFIG; + // 新配置的名称,是一个字符串 name: string; } +/** + * 打开新配置界面的操作 + * @param name - 新配置的名称,默认为 'unnamed' + * @returns 一个 IActionOpenNewConfig 对象,表示打开新配置界面的操作 + */ export function openNewConfig(name = 'unnamed'): IActionOpenNewConfig { return { type: ActionType.OPEN_NEWCONFIG, name }; } +/** + * 定义了一个名为 `IActionNewConfigSetLocation` 的接口,它继承自 `IAction` 接口 + * 并添加了一个必需的 `location` 属性,用于表示新配置的位置 + */ export interface IActionNewConfigSetLocation extends IAction { + // 操作的类型,是 ActionType 枚举的一个值,这里是 NEWCONFIG_SETLOCATION type: ActionType.NEWCONFIG_SETLOCATION; + // 新配置的位置,是一个 ConfigLocation 对象 location: ConfigLocation; } +/** + * 创建一个表示设置新配置位置操作的动作对象 + * @param location - 新配置的位置信息 + * @returns 一个包含操作类型和位置信息的动作对象 + */ export function newConfigSetLocation(location: ConfigLocation): IActionNewConfigSetLocation { return { type: ActionType.NEWCONFIG_SETLOCATION, location }; } +/** + * 定义了一个名为 `IActionNewConfigSetName` 的接口,它继承自 `IAction` 接口 + * 并添加了一个必需的 `name` 属性,用于表示新配置的名称 + */ export interface IActionNewConfigSetName extends IAction { + // 操作的类型,是 ActionType 枚举的一个值,这里是 NEWCONFIG_SETNAME type: ActionType.NEWCONFIG_SETNAME; + // 新配置的名称,是一个字符串 name: string; } + +/** + * 创建一个表示设置新配置名称操作的动作对象 + * @param name - 新配置的名称 + * @returns 一个包含操作类型和名称的动作对象 + */ export function newConfigSetName(name: string): IActionNewConfigSetName { return { type: ActionType.NEWCONFIG_SETNAME, name }; } /* ConfigEditor */ +/** + * 定义了一个名为 `IActionOpenConfigEditor` 的接口,它继承自 `IAction` 接口 + * 并添加了一个必需的 `config` 属性,用于表示打开的配置编辑器的配置 + */ export interface IActionOpenConfigEditor extends IAction { + // 操作的类型,是 ActionType 枚举的一个值,这里是 OPEN_CONFIGEDITOR type: ActionType.OPEN_CONFIGEDITOR; + // 配置编辑器的配置,是一个 FileSystemConfig 对象 config: FileSystemConfig; } +/** + * 创建一个表示打开配置编辑器操作的动作对象 + * @param config - 要打开的配置编辑器的配置 + * @returns 一个包含操作类型和配置的动作对象 + */ export function openConfigEditor(config: FileSystemConfig): IActionOpenConfigEditor { return { type: ActionType.OPEN_CONFIGEDITOR, config }; } +/** + * 定义了一个名为 `IActionOpenConfigLocator` 的接口,它继承自 `IAction` 接口 + * 并添加了两个必需的属性:`configs` 和 `name` + * 该接口表示打开配置定位器的操作,其中 `configs` 是一个配置文件系统配置对象的数组,`name` 是要搜索的配置名称 + */ export interface IActionOpenConfigLocator extends IAction { + // 操作的类型,是 ActionType 枚举的一个值,这里是 OPEN_CONFIGLOCATOR type: ActionType.OPEN_CONFIGLOCATOR; + // 一个 FileSystemConfig 对象的数组,表示要在配置定位器中显示的配置 configs: FileSystemConfig[]; + // 一个字符串,表示要在配置定位器中搜索的配置名称 name: string; } +/** + * 创建一个表示打开配置定位器操作的动作对象 + * @param configs - 要在配置定位器中显示的配置文件系统配置对象的数组 + * @param name - 要在配置定位器中搜索的配置名称 + * @returns 一个包含操作类型、配置和名称的动作对象 + */ export function openConfigLocator(configs: FileSystemConfig[], name: string): IActionOpenConfigLocator { return { type: ActionType.OPEN_CONFIGLOCATOR, configs, name }; } + +/** + * 定义了一个名为 `IActionConfigEditorSetNewConfig` 的接口,它继承自 `IAction` 接口 + * 并添加了一个必需的 `config` 属性,用于表示打开的配置编辑器的配置 + */ export interface IActionConfigEditorSetNewConfig extends IAction { + // 操作的类型,是 ActionType 枚举的一个值,这里是 CONFIGEDITOR_SETNEWCONFIG type: ActionType.CONFIGEDITOR_SETNEWCONFIG; + // 配置编辑器的配置,是一个 FileSystemConfig 对象 config: FileSystemConfig; } +/** + * 创建一个表示设置新配置操作的动作对象 + * @param config - 要设置的新配置 + * @returns 一个包含操作类型和配置的动作对象 + */ export function configEditorSetNewConfig(config: FileSystemConfig): IActionConfigEditorSetNewConfig { return { type: ActionType.CONFIGEDITOR_SETNEWCONFIG, config }; } +/** + * 定义了一个名为 `IActionConfigEditorSetStatusMessage` 的接口,它继承自 `IAction` 接口 + * 并添加了一个必需的 `type` 属性和一个可选的 `message` 属性 + * 该接口表示设置配置编辑器状态消息的操作,其中 `type` 是操作类型,`message` 是要设置的状态消息 + */ export interface IActionConfigEditorSetStatusMessage extends IAction { + // 操作的类型,是 ActionType 枚举的一个值,这里是 CONFIGEDITOR_SETSTATUSMESSAGE type: ActionType.CONFIGEDITOR_SETSTATUSMESSAGE, + // 一个可选的字符串,表示要设置的状态消息 message?: string; } + +/** + * 创建一个表示设置配置编辑器状态消息操作的动作对象 + * @param message - 要设置的状态消息,可选参数,默认为 undefined + * @returns 一个包含操作类型和状态消息的动作对象 + */ export function configEditorSetStatusMessage(message?: string): IActionConfigEditorSetStatusMessage { return { type: ActionType.CONFIGEDITOR_SETSTATUSMESSAGE, message }; }