import { FileSystem } from "../Common/FileSystem"; import { ConfigUrls } from "../Common/HostUrl"; import { PostJson } from "../Common/Request"; import { Command } from "../Editor/CommandMachine"; import { BoardModalType } from "../UI/Components/Board/BoardModal"; import { AppToaster } from "../UI/Components/Toaster"; import { userConfigStore } from "../UI/Store/UserConfigStore"; export class DownLoadDConfig implements Command { async exec() { let keys = Object.values(BoardModalType); let allConfigs = {}; for (let key of keys) { allConfigs[key] = await userConfigStore.GetAllConfigs(key, false); } FileSystem.WriteFile("userconfig.json", JSON.stringify(allConfigs)); } } export class UpLoadConfig implements Command { async exec() { FileSystem.ChooseFile({ filter: ".json", callback: async (files) => { let f = files[0]; let fileData = JSON.parse(await FileSystem.ReadFileAsText(f)); for (let i in fileData) { if (fileData.hasOwnProperty(i) && fileData[i]) { let configs = (await userConfigStore.GetAllConfigs(i as BoardModalType)) || {}; Object.assign(configs, fileData[i]); await PostJson(ConfigUrls.Edit, { key: i, value: JSON.stringify(configs) }); } } AppToaster.show({ message: "上传完成", timeout: 1000, }); } }); } }